{
(set:_chance to (floor:(($card_game's "points" / $card_game's "points to win") * 100)))
(if:(twist:1,100) >= $chance)[Lose(live:0.5s)[(set:$next to $card_game's "defeat passage")(display:"next")(stop:)]](else:)[Win(live:0.5s)[(set:$next to $card_game's "victory passage")(display:"next")(stop:)]]
}{=
(set:_pickup_lines to (a:
"You’re so hot...","My zipper is falling for you.",
"I’m on top of things.","Would you like to be one of them?",
"Hey! My name is Microsoft.","Can I crash at your place tonight?",
"Is your name winter?","Because you’ll be coming soon.",
"I’m not into watching sunsets...","But I’d love to see you go down.",
"Are you an exam?","Because I have been studying you like crazy.",
"Are you a haunted house?","I’m going to scream when I’m in you.",
"Is it hot in here?","Or is it just you?",
"Are you butt dialing me?","I thought I heard your ass calling me.",
"Are those pants from space?","Because your ass is out of this world.",
"Are you a sea lion?","Cause I can see you lyin’ in my bed tonight.",
"You remind me of a championship bass.","I don’t know whether to mount, or eat you.",
"Is your name homework?","Cause I’m not doing you but I should be.",
"Roses are red, violets are blue.","I like spaghetti, let’s go screw.",
"So how do you like your eggs in the morning?","Scrambled, or fertilized?",
"Need a pillow to sit on?","I can be yours if you want.",
"Want to come over and watch porn all night...","On my new mirror?",
"There’s a big sale in my bedroom right now.","Clothes are 100% off!",
"Is that a keg in your pants?","Cause I wanna tap that ass.",
"Let’s play house!","You’ll be the door and I’ll slam you.",
"Are you a stack of dirty dishes?","’Cause I want to get you wet and do you all night long.",
"Do you have pet insurance? No?","That’s too bad, because your pussy is going to get pounded tonight.",
"Those are some nice legs.","What time do they open?",
"Is your name Medusa?","Cause I’m rock hard.",
"Hey girl, are you an escalator?","Because I wanna go down on you.",
"If you were a washing machine...","I’d put my dirty load inside you.",
"Hey girl, you ever had...","Your belly button tickled from inside?",
"Baby, are you feeling down?","Because I can feel you up.",
"Do you live on a chicken farm?","Cause you sure know how to raise a cock.",
"Do you like flowers? Yes?","Well get your tulips round this.",
"If I could rearrange the alphabet...","I’d put my dick in your ass.",
"I see you like fitness.","How about fitness dick in your mouth?",
"I see you like dragons...","How about me dragon this dick on your face?",
"Are you a single mom? No?","Would you like to be?",
"I wish you were my big toe...","So I could bang you on my coffee table.",
"My dick just died.","Would you mind if I buried it in your ass?",
"That outfit is very becoming on you. Then again, if I were on your chest...","I’d be cumming on you too.",
"Do you have home insurance?","Because I’m gonna smash your backdoors in.",
"Your face is like a wrench.","When I see it, my nuts tighten up.",
"Are you a termite?","Because I’ll give you a mouthful of wood.",
"Won’t you sit on my lap?","We can talk about the first thing that pops up!",
"Hey baby, would you like to sixty eight?","That’s where you blow me, and I owe you one.",
"Hey baby, your legs remind me of peanut butter...","Smooth, tasty, and easy to spread.",
"I could've called heaven and asked for an angel...","But I was hoping you’re a slut instead.",
"Are you a drill sergeant?","Because you have my privates standing at attention.",
"One of my friends told me girls hate oral.","Do you wanna help me prove him wrong?",
"Do you like to draw?","Because I put the D in Raw.",
"The FBI wants to steal my penis.","Can I hide it inside you?",
"I’m not into watching sunsets...","But I’d love to see you go down.",
"Let’s play carpenter.","First we’ll get hammered, then I’ll nail you.",
"Your smile is almost as big, warm and lovely...","As my penis.",
"Are you a raisin?","Because you’re raisin my dick.",
"I’d love to kiss those beautiful, luscious lips.","And the ones on your face.",
"Do you run track?","Because I heard you Relay want this dick.",
"Are you a pirate?","Because I have a lot of semen waiting for you.",
"Was your dad a baker?","Because you’ve got a nice set of buns.",
"Are you a shark?","Cause I’ve got swimmers for you to swallow.",
"Are you an archaeologist?","Because I’ve got a bone for you to examine.",
"Fuck me if I’m wrong...","But dinosaurs still exist, right?",
"Are you a racehorse?","When I ride, you’ll always finish first.",
"Are you flappy bird?","Because I could tap you all night.",
"Do you work for UPS?","I saw you checking out my package.",
"Hey, you wanna do a 68?","You go down on me, and I’ll owe you one.",
"You know what I like in a girl?","My dick.",
"I may not go down in history...","But I’ll go down on you.",
"The only reason I would kick you out of bed...","Would be to fuck you on the floor.",
"There will only be 7 planets left...","After I destroy Uranus.",
"Your place or mine? Tell you what? I’ll flip a coin.","Head at my place, tail at yours.",
"Do you work at Subway?","Because you just gave me a footlong.",
"Are you hungry?","Because omelette you suck this dick.",
"If we were both squirrels...","Would you let me bust a nut in your hole?",
"Do you go to church often?","Because you’re gonna be on your knees tonight.",
"My dick’s been feeling a little dead lately.","Wanna give it some mouth-to-mouth?",
"If I was a watermelon...","Would you spit or swallow my seed?",
"Are your legs made of nutella?","Cause I’d love to spread them.",
"Are you a sea lion?","Cause I wanna sea you lion on my bed tonight.",
"I may not be a windshield repairman...","But I can still fill your crack in.",
"That outfit looks great on you...","As a matter of fact, so would I!",
"This may seem corny...","But you make me really horny.",
"If I flip a coin...","What are my chances of getting head?",
"Don’t ever change.","Just get naked.",
"we should play strip poker.","You can strip and I’ll poke you.",
"If I was your teacher...","I’d give you the D.",
"Treat me like a pirate...","And give me that booty.",
"Sit on my face...","And I’ll eat my way to your heart."))
($word_game_setup:_pickup_lines){=
(set:_pickup_lines to (a:
"On a scale of 1 to 10, you're a 9.","I’m the 1 you need.",
"I thought happiness started with an H...","But mine starts with U.",
"Can I give you a kiss?","If you don’t like it, you can return it.",
"I’d say God Bless you...","But it looks like he already did.",
"Hey, tie your shoes!","I don’t want you falling for anyone else.",
"Forget about Spiderman, Superman, and Batman.","I’ll be Yourman.",
"Roses are red, my face is too...","That only happens when I see you.",
"I should charge you rent...","For all the time you spend in my mind.",
"Are you a minecraft fence?","Cause I can’t get over you.",
"You know what’s on the menu?","ME N U.",
"Let’s play a game.","Winner dates loser.",
"If your heart was a prison...","I would like to be sentenced for life.",
"If you were my homework...","I’d do you everyday.",
"See those gaps between your fingers...","They’re for my fingers to slip in.",
"Did it hurt when you fell from the vending machine?","Cause you look like a snack!",
"If kisses were snowflakes...","I’d send you a blizzard.",
"Are you Harambe’s enclosure?","Cause I’d drop a kid inside you!",
"Are you a bank loan?","Because you got my interest.",
"Your body is 75% water...","And I’m thirsty.",
"Well, here I am.","What are your other two wishes?",
"You are hotter...","Than the bottom of my laptop.",
"Kissing is a language of love...","So how about a conversation?",
"I’m learning about important dates in history class.","Wanna be one of them?",
"Are you my self-esteem?","Cause I’ve been looking for you everywhere.",
"Mario is red, Sonic is blue.","Will you be my player 2?",
"I’m going to ask you to leave.","You’re making the other girls look bad.",
"This is the police! You’re under arrest for being too cute.","Now put your hands where I can hold them.",
"What time...","Do you have to be back in heaven?",
"If you were a Youtube ad...","I wouldn’t skip you.",
"Is your face McDonalds?","Cause I’m lovin it!",
"There are so many types of art...","But you are my favorite.",
"Are you made of grapes?","Cause you’re fine as wine?",
"Are you the square root of -1?","Cause you can’t be real.",
"Are you religious?","Cause you’re the answer to all my prayers.",
"I’m not drunk...","I’m just intoxicated by you.",
"Congratulations! You’ve been voted 'Most Beautiful Girl in This Room...'","And the grand prize is a night with me!",
"Are you a door?","Because you are adorable.",
"Apart from being so sexy...","What do you do for a living?",
"I may not be what you want...","But I am what you need.",
"Would you like Gin and platonic...","Or do you prefer Scotch and sofa?",
"Are you Luke?","Cause I’m your daddy."))
($word_game_setup:_pickup_lines){(display:"location and time")}{(set:("id" of $npc) of $npcs to $npc)}{(set:$npc to $select of $npcs)}{(set:("id" of $npc) of $npcs_men to $npc)}(set:$npc_to_load to (trimmed:"npc ", (text:$npc_to_load)))(if:(datanames:$npcs_men) contains (text:$npc_to_load))[(set:$npc to $npc_to_load of $npcs_men)(set:$found to "true")](else:)[(set:$found to "false")]<div class='options'>(set:$minigame to (dm:
"difficulty",7,
"babe type","clothed",
"cock type","nsfw",
"masculinity level",65,
"reason 1","You just sucked a guy's cock off for a *discount*.",
"reason 2","Did you ENJOY sucking the pharmacist's cock?",
"reason 3","You'll do anything for a little price reduction, you slut.",
"afterwards","event shop deal post masculinity"))(display:"masculinity crisis link")</div>{(display:"sex doggy transactional " + $character's "id")
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/" + $character's "id" + "/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/" + $character's "id" + "/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$backdrop_img to "scenes/characters/" + $img + ".mp4")
(set:$doggy_img to "scenes/characters/" + $img + ".mp4")
(set:$img to "<video src='img/scenes/characters/" + $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(if:(twist:1,4) is 1)[(set:$sex_loop to (twirl:"sex loop","sex loop 2"))(set:$doggy_loop to (twirl:"sex loop","sex loop 2"))](else:)[(display:"doggy sounds")]
(set:$doggy_text to $text)
}{(set:$img to "alina/sex/doggy/transactional " + (text:(twist:1,4)))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/alina/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/alina/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_rhythm to $img of
(dm:
"alina/sex/doggy/transactional 1",492,
"alina/sex/doggy/transactional 2",483,
"alina/sex/doggy/transactional 3",504,
"alina/sex/doggy/transactional 4",444))
(set:$text to $img of
(dm:
"alina/sex/doggy/transactional 1",(a:"couch","look back","eyes roll","grab waist"),
"alina/sex/doggy/transactional 2",(a:"desk","grab shoulders","grab face","grab boobs"),
"alina/sex/doggy/transactional 3",(a:"chair","grab butt","grab waist"),
"alina/sex/doggy/transactional 4",(a:"couch","grab waist","grab butt")))}{(set:$img to "cassidy/sex/doggy/transactional " + (text:(twist:1,5)))
(set:$doggy_rhythm to $img of
(dm:
"cassidy/sex/doggy/transactional 1",422,
"cassidy/sex/doggy/transactional 2",540,
"cassidy/sex/doggy/transactional 3",555,
"cassidy/sex/doggy/transactional 4",526,
"cassidy/sex/doggy/transactional 5",472))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/cassidy/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/cassidy/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"cassidy/sex/doggy/transactional 1",(a:"couch","pull hair","grab boobs","push down","hold down","grab head","tits rub"),
"cassidy/sex/doggy/transactional 2",(a:"couch","grab neck","pull hair","grab arms","tits clap","grab butt","cover mouth"),
"cassidy/sex/doggy/transactional 3",(a:"desk","grab boobs","grab waist","grab butt","grab arms"),
"cassidy/sex/doggy/transactional 4",(a:"couch","spank","grab hips","grab butt","grab waist","tits clap"),
"cassidy/sex/doggy/transactional 5",(a:"chair","grab arms","pull hair","grab butt","push down","tits clap")))}{(set:$img to "ella/sex/doggy/transactional " + (text:(twist:1,5)))
(set:$doggy_rhythm to $img of
(dm:
"ella/sex/doggy/transactional 1",410,
"ella/sex/doggy/transactional 2",422,
"ella/sex/doggy/transactional 3",468,
"ella/sex/doggy/transactional 4",428,
"ella/sex/doggy/transactional 5",472))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/ella/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/ella/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"ella/sex/doggy/transactional 1",(a:"floor","grab arms","tits clap"),
"ella/sex/doggy/transactional 2",(a:"couch","pull hair","spank","tits clap"),
"ella/sex/doggy/transactional 3",(a:"couch","grab waist","tits clap"),
"ella/sex/doggy/transactional 4",(a:"chair","pull hair","grab head","grab arms","push down","tits rub"),
"ella/sex/doggy/transactional 5",(a:"couch","pull hair","eyes roll","tits clap","tits rub")))}{(set:$img to "jade/sex/doggy/transactional " + (text:(twist:1,13)))
(set:$doggy_rhythm to $img of
(dm:
"jade/sex/doggy/transactional 1",428,
"jade/sex/doggy/transactional 2",521,
"jade/sex/doggy/transactional 3",512,
"jade/sex/doggy/transactional 4",303,
"jade/sex/doggy/transactional 5",416,
"jade/sex/doggy/transactional 6",342,
"jade/sex/doggy/transactional 7",483,
"jade/sex/doggy/transactional 8",461,
"jade/sex/doggy/transactional 9",600,
"jade/sex/doggy/transactional 10",370,
"jade/sex/doggy/transactional 11",480,
"jade/sex/doggy/transactional 12",526,
"jade/sex/doggy/transactional 13",447))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/jade/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/jade/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"jade/sex/doggy/transactional 1",(a:"couch","grab butt","big thrusts","tits rub"),
"jade/sex/doggy/transactional 2",(a:"couch","grab butt","tits rub"),
"jade/sex/doggy/transactional 3",(a:"couch","grab shoulders","grab arms"),
"jade/sex/doggy/transactional 4",(a:"couch"),
"jade/sex/doggy/transactional 5",(a:"desk","grab shoulders","push down","grab head","cover mouth"),
"jade/sex/doggy/transactional 6",(a:"desk","leg up"),
"jade/sex/doggy/transactional 7",(a:"desk","leg up","push down","look back"),
"jade/sex/doggy/transactional 8",(a:"couch","pull hair","grab butt"),
"jade/sex/doggy/transactional 9",(a:"couch","look back"),
"jade/sex/doggy/transactional 10",(a:"pull hair","couch","grab shoulders"),
"jade/sex/doggy/transactional 11",(a:"couch","look back","spank"),
"jade/sex/doggy/transactional 12",(a:"couch","grab butt"),
"jade/sex/doggy/transactional 13",(a:"couch","push down","grab waist","big thrusts")))}{(set:$img to "jia/sex/doggy/transactional " + (text:(twist:1,5)))
(set:$doggy_rhythm to $img of
(dm:
"jia/sex/doggy/transactional 1",476,
"jia/sex/doggy/transactional 2",526,
"jia/sex/doggy/transactional 3",566,
"jia/sex/doggy/transactional 4",431,
"jia/sex/doggy/transactional 5",483))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/jia/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/jia/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"jia/sex/doggy/transactional 1",(a:"floor","grab arms","tits clap"),
"jia/sex/doggy/transactional 2",(a:"couch","pull hair","spank","tits clap"),
"jia/sex/doggy/transactional 3",(a:"couch","grab waist","tits clap"),
"jia/sex/doggy/transactional 4",(a:"chair","pull hair","grab head","grab arms","push down","tits rub"),
"jia/sex/doggy/transactional 5",(a:"couch","pull hair","eyes roll","tits clap","tits rub")))}{(set:$img to "lana/sex/doggy/transactional " + (text:(twist:1,8)))
(set:$doggy_rhythm to $img of
(dm:
"lana/sex/doggy/transactional 1",444,
"lana/sex/doggy/transactional 2",441,
"lana/sex/doggy/transactional 3",402,
"lana/sex/doggy/transactional 4",444,
"lana/sex/doggy/transactional 5",483,
"lana/sex/doggy/transactional 6",461,
"lana/sex/doggy/transactional 7",447,
"lana/sex/doggy/transactional 8",382))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/lana/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/lana/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"lana/sex/doggy/transactional 1",(a:"couch","grab waist"),
"lana/sex/doggy/transactional 2",(a:"desk","standing","grab shoulders"),
"lana/sex/doggy/transactional 3",(a:"couch","grab waist","grab neck","cover mouth"),
"lana/sex/doggy/transactional 4",(a:"desk","grab butt","push down"),
"lana/sex/doggy/transactional 5",(a:"couch","grab butt","grab shoulders","sink in","push down"),
"lana/sex/doggy/transactional 6",(a:"couch","grab shoulders","grab butt","lean against you"),
"lana/sex/doggy/transactional 7",(a:"desk","push down","grab shoulders","grab butt"),
"lana/sex/doggy/transactional 8",(a:"couch","grab butt","big thrusts","grab waist","grab head")))}{(set:$img to "liya/sex/doggy/transactional " + (text:(twist:1,4)))
(set:$doggy_rhythm to $img of
(dm:
"liya/sex/doggy/transactional 1",431,
"liya/sex/doggy/transactional 2",425,
"liya/sex/doggy/transactional 3",405,
"liya/sex/doggy/transactional 4",508))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/liya/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/liya/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"liya/sex/doggy/transactional 1",(a:"couch","grab butt","wheelbarrow","tits clap"),
"liya/sex/doggy/transactional 2",(a:"couch","mount"),
"liya/sex/doggy/transactional 3",(a:"desk","grab shoulders","grab butt","pull hair"),
"liya/sex/doggy/transactional 4",(a:"desk","grab butt","stabilize yourself")))}{(set:$img to "mia/sex/doggy/transactional " + (text:(twist:1,8)))
(set:$doggy_rhythm to $img of
(dm:
"mia/sex/doggy/transactional 1",384,
"mia/sex/doggy/transactional 2",444,
"mia/sex/doggy/transactional 3",387,
"mia/sex/doggy/transactional 4",468,
"mia/sex/doggy/transactional 5",545,
"mia/sex/doggy/transactional 6",468,
"mia/sex/doggy/transactional 7",454,
"mia/sex/doggy/transactional 8",375))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/mia/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/mia/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"mia/sex/doggy/transactional 1",(a:"desk","grab boobs"),
"mia/sex/doggy/transactional 2",(a:"floor","grab waist","grab shoulders","mount"),
"mia/sex/doggy/transactional 3",(a:"couch","grab arms","lean against you","grab waaist"),
"mia/sex/doggy/transactional 4",(a:"couch","grab shoulders","grab waist","spank"),
"mia/sex/doggy/transactional 5",(a:"couch","grab waist","tits clap"),
"mia/sex/doggy/transactional 6",(a:"wall","standing","tits clap","push down","grab head","grab arms"),
"mia/sex/doggy/transactional 7",(a:"couch","grab butt"),
"mia/sex/doggy/transactional 8",(a:"couch","mount","big thrusts","look back")))}{(set:$img to "rae/sex/doggy/transactional " + (text:(twist:1,9)))
(set:$doggy_rhythm to $img of
(dm:
"rae/sex/doggy/transactional 1",400,
"rae/sex/doggy/transactional 2",416,
"rae/sex/doggy/transactional 3",434,
"rae/sex/doggy/transactional 4",384,
"rae/sex/doggy/transactional 5",821,
"rae/sex/doggy/transactional 6",508,
"rae/sex/doggy/transactional 7",400,
"rae/sex/doggy/transactional 8",389,
"rae/sex/doggy/transactional 9",550))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/rae/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/rae/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"rae/sex/doggy/transactional 1",(a:"wall","pull hair","standing","grab arms","tits clap"),
"rae/sex/doggy/transactional 2",(a:"desk","pull hair"),
"rae/sex/doggy/transactional 3",(a:"couch","grab waist","look back"),
"rae/sex/doggy/transactional 4",(a:"desk","slip out","grab shoulders","kiss"),
"rae/sex/doggy/transactional 5",(a:"couch","spank","grab butt","look back"),
"rae/sex/doggy/transactional 6",(a:"wall","standing","look back","grab shoulders"),
"rae/sex/doggy/transactional 7",(a:"couch","look back","grab neck","push down"),
"rae/sex/doggy/transactional 8",(a:"wall","standing","leg up","stabilize","cover mouth","grab head"),
"rae/sex/doggy/transactional 9",(a:"couch","grab arms","tits clap","stabilize","spank")))}{(set:$img to "scarlit/sex/doggy/transactional " + (text:(twist:1,7)))
(set:$doggy_rhythm to $img of
(dm:
"scarlit/sex/doggy/transactional 1",410,
"scarlit/sex/doggy/transactional 2",320,
"scarlit/sex/doggy/transactional 3",468,
"scarlit/sex/doggy/transactional 4",397,
"scarlit/sex/doggy/transactional 5",300,
"scarlit/sex/doggy/transactional 6",437,
"scarlit/sex/doggy/transactional 7",468))
(set:$doggy_pic to "<img class='greyborder'
src='img/scenes/characters/scrlit/sex/doggy/transactional insert " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$doggy_moan_pic to "<img class='greyborder'
src='img/scenes/characters/scarlit/sex/doggy/moan " + (text:(twist:1,4)) + ".jpg' width=100% height=auto>")
(set:$text to $img of
(dm:
"scarlit/sex/doggy/transactional 1",(a:"couch","mount","grab shoulders","leaning against you","grab waist"),
"scarlit/sex/doggy/transactional 2",(a:"couch","spank","grab waist","grab butt"),
"scarlit/sex/doggy/transactional 3",(a:"couch","leg up","pull hair","grab butt"),
"scarlit/sex/doggy/transactional 4",(a:"wall","grab head","cover mouth","standing","stabilize"),
"scarlit/sex/doggy/transactional 5",(a:"couch","spank","lean against you","mount"),
"scarlit/sex/doggy/transactional 6",(a:"couch","spank","push down","pull hair"),
"scarlit/sex/doggy/transactional 7",(a:"couch","grab boobs","stabilize","mount","lean against you")))}{
(if:$stats's "sex as girl" is 0)[
(if:$position is "doggy")[
(set:_glans to (twirl:"glans","cock-tip","cock-head","cock head"))
(set:_his_name to $npc's "sex name")
(set:_labia to (twirl:"pussy lips","labia"))
(set:_squish to (twirl:"squish","smush","squelch","plop"))
(set:_cock to (twirl:"cock","dick","erection","cock"))
(set:_moan to (twirl:"whimper","moan","groan","gasp"))
(set:_pussy to (twirl:"pussy","vagina"))
(twirl:"You feel pressure behind you, building against your _labia.",(upperfirst:_his_name) + "'s manly weight bears down behind you, and you feel his _glans against your _labia.","Your whole body quivers, but _his_name grabs your ass, holding it steady as he lines you up with his _cock.","Here you are, on all fours, a man's erect cock dangling behind you. He presses it against your _labia.",(upperfirst:_his_name) + " clamps your jiggling ass in his rough hands, lining his _cock up with your _labia. You feel it, the intense pressure.","You feel the warm fatness of his member brush against your legs, as he adjusts its angle.")
(twirl:"You _moan as he drives forward, sinking his manhood into you.","Then, with a _squish, he's inside you. You _moan.","He pushes. He grunts with pleasure, you _moan at the pure intensity.","Then he's suddenly inside you, inch after inch of that veiny length sending mini explosions through your female brain.","He finally sinks in between your pussy lips, like a frantic adventurer disappearing into quicksand.")
(twirl:"It's an intense, intimate feeling, getting filled by _cock. Skewered from the inside out.","The feeling is deep, aching, as his meaty length is buried up to the balls, inside *your body*.","Your brain is filled with chemical fireworks, as this massive, veiny thing plunders your insides and tweaks all your little nerves.","You finally, truly, understand the word 'deflowering', since you've just lost your female virginity.","You're no longer a virgin.")
]](else:)[]
(set:$stats's "sex as girl" to it + 1)(display:"insertion sounds")
}{
(if:(datanames:$npc) contains "ballsize")[(if:$npc's "ballsize" > (twist:4,10))[(set:$load to "big")]]
(if:$load is "big")[
(set:$text to (a:"big load"))
(display:"sex cum in mouth big load " + $character's "id")
(set:$text to $text + $img of (dm:
"/generic/sex/cum/mouth/big loads/closed lips 1",(a:"closed lips 1","clothes"),
"/generic/sex/cum/mouth/big loads/grimace 1",(a:"grimace 1"),
"/generic/sex/cum/mouth/big loads/still mouth 1",(a:"still mouth 1"),
"/generic/sex/cum/mouth/big loads/still mouth 2",(a:"still mouth 2"),
"/generic/sex/cum/mouth/big loads/still mouth 3",(a:"still mouth 3"),
"/generic/sex/cum/mouth/big loads/still mouth 4",(a:"still mouth 4","clothes"),
"/generic/sex/cum/mouth/big loads/still mouth big 1",(a:"still mouth big 1","cumdump"),
"/generic/sex/cum/mouth/big loads/still mouth chin 1",(a:"still mouth chin 1","clothes"),
"/generic/sex/cum/mouth/big loads/still mouth chin 2",(a:"still mouth chin 2","clothes"),
"/generic/sex/cum/mouth/big loads/still mouth chin 3",(a:"still mouth chin 3"),
"/generic/sex/cum/mouth/big loads/still tongue 1",(a:"still tongue 1","clothes"),
"/generic/sex/cum/mouth/big loads/tongue chin 1",(a:"tongue chin 1","clothes","cumdump"),
"/generic/sex/cum/mouth/big loads/dark/mouth 1",(a:"clothes","cumdump"),
"/generic/sex/cum/mouth/big loads/dark/mouth 2",(a:"clothes","cumdump"),
"/generic/sex/cum/mouth/big loads/dark/mouth 3",(a:"clothes","cumdump"),
))
(set:$rhythm to $img of (dm:
"/generic/sex/cum/mouth/big loads/closed lips 1",1463,
"/generic/sex/cum/mouth/big loads/grimace 1",1224,
"/generic/sex/cum/mouth/big loads/still mouth 1",1132,
"/generic/sex/cum/mouth/big loads/still mouth 2",1132,
"/generic/sex/cum/mouth/big loads/still mouth 3",1017,
"/generic/sex/cum/mouth/big loads/still mouth 4",1154,
"/generic/sex/cum/mouth/big loads/still mouth big 1",1154,
"/generic/sex/cum/mouth/big loads/still mouth chin 1",1395,
"/generic/sex/cum/mouth/big loads/still mouth chin 2",1017,
"/generic/sex/cum/mouth/big loads/still mouth chin 3",1052,
"/generic/sex/cum/mouth/big loads/still tongue 1",1176,
"/generic/sex/cum/mouth/big loads/tongue chin 1",1176,
"/generic/sex/cum/mouth/big loads/dark/mouth 1",1000,
"/generic/sex/cum/mouth/big loads/dark/mouth 2",1000,
"/generic/sex/cum/mouth/big loads/dark/mouth 3",1000,
))
(set:$backdrop to "scenes/" + $img + ".mp4")
(set:$sex_loop to "big load " + (text:(twist:1,6)))(set:$se to "big load " + (text:(twist:1,6)))
](else:)[
(display:"sex cum in mouth load " + $character's "id")
(set:$text to $img of ($cum_mouth + (dm:
"/generic/sex/cum/mouth/1 c",(a:"external","spit","kneeling"),
"/generic/sex/cum/mouth/2 c",(a:"internal","spit","lying"),
"/generic/sex/cum/mouth/3 c",(a:"internal","in mouth","kneeling"),
"/generic/sex/cum/mouth/1 w",(a:"external","in mouth","kneeling","clothes"),
"/generic/sex/cum/mouth/2 w",(a:"external","in mouth","kneeling","lick after"),
"/generic/sex/cum/mouth/mouth 1",(a:"external","lying","in mouth","direct"),
"/generic/sex/cum/mouth/mouth 2",(a:"internal","kneeling","in mouth"),
"/generic/sex/cum/mouth/mouth 3",(a:"external","kneeling","in mouth","direct"),
"/generic/sex/cum/mouth/mouth 4",(a:"external","kneeling","in mouth","direct"),
"/generic/sex/cum/mouth/mouth 5",(a:"external","kneeling","in mouth","messy"),
"/generic/sex/cum/mouth/mouth 6",(a:"external","lying","in mouth","direct"),
"/generic/sex/cum/mouth/direct 1",(a:"external","kneeling","clothes","messy","in mouth","chin","direct"),
"/generic/sex/cum/mouth/direct 2",(a:"external","held","clothes","kneeling","messy","in mouth","direct"),
"/generic/sex/cum/mouth/mouth 7",(a:"external","smear","cockslap","messy","in mouth"),
"/generic/sex/cum/mouth/mouth 8",(a:"direct","messy","in mouth","kneeling","external"),
"/generic/sex/cum/mouth/mouth 9",(a:"messy","in mouth","feed","lying","external","direct"),
"/generic/sex/cum/mouth/mouth 10",(a:"internal","held","kneeling","pulsating","no mess","in mouth"),
"/generic/sex/cum/mouth/mouth 11",(a:"internal","held","kneeling","pulsating","chin","in mouth"),
"/generic/sex/cum/mouth/mouth 12",(a:"internal","held","kneeling","pulsating","chin","in mouth"),
"/generic/sex/cum/mouth/mouth 13",(a:"internal","kneeling","pulsating","chin","in mouth"),
"/generic/sex/cum/mouth/mouth 14",(a:"jerk","internal","kneeling","pulsating","chin","spit","in mouth"),
"/generic/sex/cum/mouth/mouth 15",(a:"internal","kneeling","pulsating","no mess","in mouth"),
"/generic/sex/cum/mouth/mouth 16",(a:"internal","kneeling","pulsating","no mess","in mouth"),
"/generic/sex/cum/mouth/mouth 17",(a:"internal","kneeling","pulsating","spit","in mouth"),
"/generic/sex/cum/mouth/mouth 18",(a:"external","no mess","kneeling","in mouth"),
"/generic/sex/cum/mouth/mouth 19",(a:"external","messy","kneeling","in mouth","chin"),
"/generic/sex/cum/mouth/mouth 20",(a:"external","messy","kneeling","in mouth","nose"),
"/generic/sex/cum/mouth/mouth 21",(a:"external","direct","kneeling","messy","in mouth"),
"/generic/sex/cum/mouth/mouth 22",(a:"external","direct","kneeling","messy","in mouth","chin"),
"/generic/sex/cum/mouth/mouth 23",(a:"external","direct","kneeling","no mess","in mouth","pulsating"),
"/generic/sex/cum/mouth/jerk 1",(a:"kneeling","external","jerk","in mouth","show tongue"),
"/generic/sex/cum/mouth/jerk 2",(a:"kneeling","external","jerk","in mouth","direct","no mess"),
"/generic/sex/cum/mouth/jerk 3",(a:"kneeling","external","jerk","in mouth","direct","no mess"),
"/generic/sex/cum/mouth/jerk 5",(a:"kneeling","external","jerk","in mouth","direct","no mess"),
"/generic/sex/cum/mouth/jerk 6",(a:"kneeling","external","jerk","in mouth","drip down cock"),
"/generic/sex/cum/mouth/jerk 7",(a:"kneeling","external","jerk","in mouth","direct","chin"),
"/generic/sex/cum/mouth/jerk 8",(a:"kneeling","external","jerk","in mouth","messy","nose","lips","clothes"),
"/generic/sex/cum/mouth/jerk 9",(a:"kneeling","external","jerk","in mouth","direct","chin"),
"/generic/sex/cum/mouth/jerk 10",(a:"kneeling","external","jerk","in mouth","direct","chin"),
"/generic/sex/cum/mouth/finish 1",(a:"internal","elegant","lick","no mess","in mouth","show tongue"),
"/generic/sex/cum/mouth/finish 2",(a:"internal","elegant","lick","no mess","in mouth","show tongue"),
"/generic/sex/cum/mouth/finish 3",(a:"internal","elegant","lick","drip down cock","in mouth","show tongue"),
"/generic/sex/cum/mouth/finish 4",(a:"internal","elegant","chin","in mouth"),
"/generic/sex/cum/mouth/finish 5",(a:"internal","elegant","spit","show tongue"),
"/generic/sex/cum/mouth/finish 6",(a:"internal","elegant","spit","show tongue","drip down cock"),
)))]
(set:$img to "<video src='img/scenes"+ $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(set:$cum_text to $text)
(set:$load to "normal")
}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/grimace 1",
"/generic/sex/cum/mouth/big loads/still mouth 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 3",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth big 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/still mouth chin 2",
"/generic/sex/cum/mouth/big loads/still mouth chin 3",
"/generic/sex/cum/mouth/big loads/still tongue 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(set:$img to (twirl:
"/generic/sex/cum/mouth/big loads/closed lips 1",
"/generic/sex/cum/mouth/big loads/still mouth 2",
"/generic/sex/cum/mouth/big loads/still mouth 4",
"/generic/sex/cum/mouth/big loads/still mouth chin 1",
"/generic/sex/cum/mouth/big loads/tongue chin 1"))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/alina/cum/mouth " + (text:(twist:1,5)))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 w","/generic/sex/cum/mouth/2 w"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/alina/cum/mouth 1",(a:"jerk","kneeling","external","most misses","spit"),
"/characters/alina/cum/mouth 2",(a:"kneeling","external","direct","chin","eye","in mouth","clothes"),
"/characters/alina/cum/mouth 3",(a:"lying","external","messy","in mouth"),
"/characters/alina/cum/mouth 4",(a:"kneeling","external","direct","feed","held","in mouth"),
"/characters/alina/cum/mouth 5",(a:"kneeling","external","messy","in mouth","eye")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/cassidy/cum/" + (twirl:"mouth 1","mouth 2","mouth 3"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 c","/generic/sex/cum/mouth/2 c","/generic/sex/cum/mouth/3 c"))
](else:)[
[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 8","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 19"))(if:(twist:1,3) is 1 and $character's "masculinity" < 70)[(set:$img to (twirl:"/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/jerk 3"))]]]]
(set:$cum_mouth to (dm:
"/characters/cassidy/cum/mouth 1",(a:"kneeling","external","in mouth"),
"/characters/cassidy/cum/mouth 2",(a:"kneeling","external","direct","in mouth","clothes"),
"/characters/cassidy/cum/mouth 3",(a:"kneeling","external","in mouth")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/ella/cum/" + (twirl:"mouth 1","mouth 2"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 c","/generic/sex/cum/mouth/2 c","/generic/sex/cum/mouth/3 c"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/ella/cum/mouth 1",(a:"lying","jiggle tits","messy","external","in mouth"),
"/characters/ella/cum/mouth 2",(a:"kneeling","external","chin","in mouth","clothes")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/jade/cum/" + (twirl:"mouth 1","mouth 2","mouth 3","mouth 4"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 c","/generic/sex/cum/mouth/1 w","/generic/sex/cum/mouth/2 w","/generic/sex/cum/mouth/direct 2"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/jade/cum/mouth 1",(a:"jerk","kneeling","external","direct","in mouth"),
"/characters/jade/cum/mouth 2",(a:"kneeling","external","chin","spit"),
"/characters/jade/cum/mouth 3",(a:"kneeling","external","messy","in mouth"),
"/characters/jade/cum/mouth 4",(a:"kneeling","external","messy","in mouth","clothes")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/jia/cum/" + (twirl:"mouth 1","mouth 2","mouth 3","mouth 4","mouth 5","mouth 6","mouth 7"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 w","/generic/sex/cum/mouth/2 w"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/jia/cum/mouth 1",(a:"lying","external","put in after","spit","direct","in mouth","clothes"),
"/characters/jia/cum/mouth 2",(a:"kneeling","external","direct","chin","in mouth"),
"/characters/jia/cum/mouth 3",(a:"jerk","lying","external","chin","in mouth"),
"/characters/jia/cum/mouth 4",(a:"lying","direct","held","messy","chin","external","in mouth","clothes"),
"/characters/jia/cum/mouth 5",(a:"external","held","messy","chin","lying"),
"/characters/jia/cum/mouth 6",(a:"internal","kneeling","held","pulsating","drip down cock","cough"),
"/characters/jia/cum/mouth 7",(a:"internal","held","pulsating","no mess","lying")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/lana/cum/" + (twirl:"mouth 1","mouth 2","mouth 3"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 w","/generic/sex/cum/mouth/2 w"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/lana/cum/mouth 1",(a:"kneeling","external","chin","messy","in mouth","clothes"),
"/characters/lana/cum/mouth 2",(a:"kneeling","external","direct","chin","in mouth","clothes"),
"/characters/lana/cum/mouth 3",(a:"kneeling","external","show tongue","in mouth")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/liya/cum/" + (twirl:"mouth 1","mouth 2"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 w","/generic/sex/cum/mouth/2 w"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/liya/cum/mouth 1",(a:"kneeling","held","internal","in mouth"),
"/characters/liya/cum/mouth 2",(a:"kneeling","external","held","chin","messy","in mouth","clothes")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/mia/cum/mouth 1")
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 w","/generic/sex/cum/mouth/2 w"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/mia/cum/mouth 1",(a:"kneeling","internal","held","in mouth","messy","clothes","chin")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/rae/cum/" + (twirl:"mouth 1","mouth 2","throat 1"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 c","/generic/sex/cum/mouth/1 w","/generic/sex/cum/mouth/2 w","/generic/sex/cum/mouth/direct 2"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 1","/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 4","/generic/sex/cum/mouth/mouth 5","/generic/sex/cum/mouth/mouth 6","/generic/sex/cum/mouth/mouth 7","/generic/sex/cum/mouth/mouth 9","/generic/sex/cum/mouth/mouth 10","/generic/sex/cum/mouth/mouth 11","/generic/sex/cum/mouth/mouth 12","/generic/sex/cum/mouth/mouth 13","/generic/sex/cum/mouth/mouth 14","/generic/sex/cum/mouth/mouth 15","/generic/sex/cum/mouth/mouth 17","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 20","/generic/sex/cum/mouth/mouth 21","/generic/sex/cum/mouth/mouth 22","/generic/sex/cum/mouth/mouth 23","/generic/sex/cum/mouth/direct 1","/generic/sex/cum/mouth/direct 2"))(if:(twist:1,3) is 1 and $character's "masculinity" < 80)[(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 16","/generic/sex/cum/mouth/finish 1","/generic/sex/cum/mouth/finish 2","/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/finish 5","/generic/sex/cum/mouth/finish 6","/generic/sex/cum/mouth/jerk 1","/generic/sex/cum/mouth/jerk 2","/generic/sex/cum/mouth/jerk 3","/generic/sex/cum/mouth/jerk 5","/generic/sex/cum/mouth/jerk 6","/generic/sex/cum/mouth/jerk 7","/generic/sex/cum/mouth/jerk 8","/generic/sex/cum/mouth/jerk 9","/generic/sex/cum/mouth/jerk 10"))]]]
(set:$cum_mouth to (dm:
"/characters/rae/cum/mouth 1",(a:"jerk","spit","kneeling","in mouth"),
"/characters/rae/cum/mouth 2",(a:"external","direct","kneeling","tongue","in mouth"),
"/characters/rae/cum/throat 1",(a:"balls deep","throatpie")))}{(if:(twist:1,2) is 1)[
(set:$img to "/characters/scarlit/cum/" + (twirl:"mouth 1","mouth 2","mouth 3"))
](else:)[
(if:(twist:1,4) is 1)[
(set:$img to (twirl:"/generic/sex/cum/mouth/1 c","/generic/sex/cum/mouth/2 c","/generic/sex/cum/mouth/3 c"))
](else:)[
(set:$img to (twirl:"/generic/sex/cum/mouth/mouth 2","/generic/sex/cum/mouth/mouth 3","/generic/sex/cum/mouth/mouth 8","/generic/sex/cum/mouth/mouth 18","/generic/sex/cum/mouth/mouth 19"))(if:(twist:1,3) is 1 and $character's "masculinity" < 70)[(set:$img to (twirl:"/generic/sex/cum/mouth/finish 3","/generic/sex/cum/mouth/finish 4","/generic/sex/cum/mouth/jerk 3"))]]]
(set:$cum_mouth to (dm:
"/characters/scarlit/cum/mouth 1",(a:"external","kneeling","chin","in mouth","clothes"),
"/characters/scarlit/cum/mouth 2",(a:"internal","kneeling","in mouth"),
"/characters/scarlit/cum/mouth 3",(a:"internal","kneeling","chin","in mouth")))}{(display:"change pov")
(if:$pov is "1st")[(set:$cum_face to (dm:))(set:$img to "/generic/sex/cum/facial " + (text:(twist:1,16)))](else:)
[(display:"sex cum on face " + $character's "id")]
(set:$text to $img of ($cum_face + (dm:
"/generic/sex/cum/facial 1",(a:"spray","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 2",(a:"spray","face",(twirl:"eyes","tongue")),
"/generic/sex/cum/facial 3",(a:"ooze","face","tongue","tits"),
"/generic/sex/cum/facial 4",(a:"spurt","face","eyes","cumdump"),
"/generic/sex/cum/facial 5",(a:"ooze","face","eyes","tongue"),
"/generic/sex/cum/facial 6",(a:"spray","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 7",(a:"spurt","face","eyes","clothes"),
"/generic/sex/cum/facial 8",(a:"spray","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 9",(a:"spurt","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 10",(a:"spurt","face",(twirl:"eyes","tongue")),
"/generic/sex/cum/facial 11",(a:"spray","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 12",(a:"ooze","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 13",(a:"spurt","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 14",(a:"ooze","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 15",(a:"spurt","face",(twirl:"eyes","tongue"),"clothes"),
"/generic/sex/cum/facial 16",(a:"spray","face",(twirl:"eyes","tongue"),"clothes")
)))
(set:$img to "<video src='img/scenes"+ $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(set:$cum_text to $text)
}{(set:$img to "/characters/alina/cum/facial " + (text:(twist:1,12)))
(if:$load is "big")[(set:$img to "/characters/alina/cum/facial " + (text:(twirl:2,3,4,9,9,10,10)))]
(if:$load is "unwilling")[(set:$img to "/characters/alina/cum/facial " + (text:(twirl:1,9)))]
(set:$cum_face to (dm:
"/characters/alina/cum/facial 1",(a:"ooze","chin","runny","upper lip","clothes"),
"/characters/alina/cum/facial 2",(a:"spurt","open mouth","up nose","lying","hair"),
"/characters/alina/cum/facial 3",(a:"ooze","held","tongue","open mouth"),
"/characters/alina/cum/facial 4",(a:"spurt","eyes","forehead","hair","nose","chin","tongue","open mouth"),
"/characters/alina/cum/facial 5",(a:"spatter","open mouth","nose","tongue","held","hair"),
"/characters/alina/cum/facial 6",(a:"open mouth","tongue","spray"),
"/characters/alina/cum/facial 7",(a:"spurt","open mouth","tongue","eyes"),
"/characters/alina/cum/facial 8",(a:"spurt","open mouth","tongue","eyes","chin","hair"),
"/characters/alina/cum/facial 9",(a:"held","forehead","nose","eyes","chin","cheek","face","cumdump"),
"/characters/alina/cum/facial 10",(a:"spurt","open mouth","eyes","tongue","face","forehead","hair"),
"/characters/alina/cum/facial 11",(a:"spurt","open mouth","tongue","eyes"),
"/characters/alina/cum/facial 12",(a:"spurt","open mouth","tongue","eyes","hair","chin")))}{(set:$img to "/characters/cassidy/cum/facial " + (text:(twist:1,12)))
(if:$load is "big")[(set:$img to "/characters/cassidy/cum/facial " + (text:(twirl:1,2,4,6,9,12)))]
(if:$load is "unwilling")[(set:$img to "/characters/cassidy/cum/facial " + (text:(twirl:2,4,6,10,12)))]
(set:$cum_face to (dm:
"/characters/cassidy/cum/facial 1",(a:"spurt","tongue","tits","open mouth","eyes","clothes"),
"/characters/cassidy/cum/facial 2",(a:"ooze","cheek","upper lip","tongue","chin","open mouth"),
"/characters/cassidy/cum/facial 3",(a:"clothes","spatter","spurt","tongue","open mouth"),
"/characters/cassidy/cum/facial 4",(a:"spatter","nose","eyes","open mouth","hold","hair"),
"/characters/cassidy/cum/facial 5",(a:"spray","chin","open mouth","clothes","hair"),
"/characters/cassidy/cum/facial 6",(a:"hold","open mouth","ooze","nose"),
"/characters/cassidy/cum/facial 7",(a:"ooze","nose","open mouth","tongue"),
"/characters/cassidy/cum/facial 8",(a:"jerk","spurt","eyes","tongue","open mouth","hair"),
"/characters/cassidy/cum/facial 9",(a:"open mouth","spurt","nose","tongue","open mouth","chin","clothes","flinch"),
"/characters/cassidy/cum/facial 10",(a:"held","nose","tongue","open mouth","ooze"),
"/characters/cassidy/cum/facial 11",(a:"open mouth","spurt","eyes","clothes","hair"),
"/characters/cassidy/cum/facial 12",(a:"open mouth","spurt","eyes","clothes","hair","cumdump","ooze","hold")))}{(set:$img to "/characters/ella/cum/facial " + (text:(twist:1,9)))
(if:$load is "big")[(set:$img to "/characters/ella/cum/facial " + (text:(twirl:1,2,5,7)))]
(if:$load is "unwilling")[(set:$img to "/characters/ella/cum/facial " + (text:(twirl:1,2,3,6,7,9)))]
(set:$cum_face to (dm:
"/characters/ella/cum/facial 1",(a:"ooze","nose","eyes"),
"/characters/ella/cum/facial 2",(a:"open mouth","nose","eyes","spurt"),
"/characters/ella/cum/facial 3",(a:"clothes","open mouth","tongue","chin","spit","held","spurt"),
"/characters/ella/cum/facial 4",(a:"spray","open mouth","tongue","nose","eyes","hair"),
"/characters/ella/cum/facial 5",(a:"spurt","nose","open mouth","tongue","forehead","hair","up nose","clothes"),
"/characters/ella/cum/facial 6",(a:"open mouth","tongue","spit","chin","spurt"),
"/characters/ella/cum/facial 7",(a:"clothes","held","open mouth","eyes","tongue","nose","hair","forehead"),
"/characters/ella/cum/facial 8",(a:"clothes","eyes","tongue","open mouth","jiggle tits","spatter"),
"/characters/ella/cum/facial 9",(a:"clothes","spray","chin","open mouth")))}{(set:$img to "/characters/jade/cum/facial " + (text:(twist:1,10)))
(if:$load is "big")[(set:$img to "/characters/jade/cum/facial " + (text:(twirl:4,6,7,8,10)))]
(if:$load is "unwilling")[(set:$img to "/characters/jade/cum/facial " + (text:(twirl:1,3,4,7,10)))]
(set:$cum_face to (dm:
"/characters/jade/cum/facial 1",(a:"spurt","open mouth","flinch","nose","cheek","tits","tongue","gag","back of mouth","clothes"),
"/characters/jade/cum/facial 2",(a:"open mouth","tongue","chin","neck","spatter","spurt","ooze","lips","hair"),
"/characters/jade/cum/facial 3",(a:"nose","tongue","chin","spurt","open mouth"),
"/characters/jade/cum/facial 4",(a:"spray","nose","spatter","tongue","open mouth","hair"),
"/characters/jade/cum/facial 5",(a:"clothes","jiggle tits","eyes","open mouth","lips","tongue","cheek","ooze"),
"/characters/jade/cum/facial 6",(a:"spurt","ropes","eyes","suck after","open mouth","nose","forehead","hair","tongue"),
"/characters/jade/cum/facial 7",(a:"gag","back of mouth","hair","nose","eyes","spray","spurt","open mouth"),
"/characters/jade/cum/facial 8",(a:"cumdump","forehead","eyes","open mouth","ooze","cheek","face","spurt","ropes","hair"),
"/characters/jade/cum/facial 9",(a:"open mouth","tongue","chin","ooze","clothes"),
"/characters/jade/cum/facial 10",(a:"chin","spurt","eyes","nose","cheek","cumdump","clothes")))}{(set:$img to "/characters/jia/cum/facial " + (text:(twist:1,9)))
(if:$load is "big")[(set:$img to "/characters/jia/cum/facial " + (text:(twirl:1,3,7,8,9)))]
(if:$load is "unwilling")[(set:$img to "/characters/jia/cum/facial " + (text:(twirl:5,7)))]
(set:$cum_face to (dm:
"/characters/jia/cum/facial 1",(a:"jerk","eyes","nose","tongue","spatter","spray","close eyes","open mouth","hair"),
"/characters/jia/cum/facial 2",(a:"jerk","forehead","spurt","nose","tongue","hair"),
"/characters/jia/cum/facial 3",(a:"spurt","forehead","hair"),
"/characters/jia/cum/facial 4",(a:"open mouth","chin","ooze","spurt","tongue"),
"/characters/jia/cum/facial 5",(a:"clothes","open mouth","held","tongue","spurt","hair"),
"/characters/jia/cum/facial 6",(a:"nose","tongue","open mouth","ooze"),
"/characters/jia/cum/facial 7",(a:"cumdump","eyes","forehead","face","nose","chin","hair"),
"/characters/jia/cum/facial 8",(a:"cumdump","eyes","chin","hair","face","nose","chin","hair","clothes"),
"/characters/jia/cum/facial 9",(a:"cumdump","eyes","chin","face","nose","chin","hair")))}{(set:$img to "/characters/lana/cum/facial " + (text:(twist:1,9)))
(if:$load is "big")[(set:$img to "/characters/lana/cum/facial " + (text:(twirl:1,2,5,7,7,9)))]
(if:$load is "unwilling")[(set:$img to "/characters/lana/cum/facial " + (text:(twirl:1,2,3,7)))]
(set:$cum_face to (dm:
"/characters/lana/cum/facial 1",(a:"ooze","hold","face","nose","forehead"),
"/characters/lana/cum/facial 2",(a:"clothes","spurt","open mouth","tongue","eyes"),
"/characters/lana/cum/facial 3",(a:"clothes","ooze","nose","chin","lips"),
"/characters/lana/cum/facial 4",(a:"clothes","chin","cheek","lips","ooze"),
"/characters/lana/cum/facial 5",(a:"spurt","hold","chin","hair","eyes","open mouth","tongue"),
"/characters/lana/cum/facial 6",(a:"spray","open mouth","tongue","chin","eyes","clothes"),
"/characters/lana/cum/facial 7",(a:"spurt","face","cumdump","eyes","nose","forehead","hair"),
"/characters/lana/cum/facial 8",(a:"nose","held","lips","clothes","hair"),
"/characters/lana/cum/facial 9",(a:"spurt","open mouth","nose","cheek","cumdump","tongue","held","hair")))}{(set:$img to "/characters/liya/cum/facial " + (text:(twist:1,9)))
(if:$load is "big")[(set:$img to "/characters/liya/cum/facial " + (text:(twirl:2,3,4,5,6,7,8,9)))]
(if:$load is "unwilling")[(set:$img to "/characters/liya/cum/facial " + (text:(twirl:2,3,4,5,7,8,9)))]
(set:$cum_face to (dm:
"/characters/liya/cum/facial 1",(a:"spurt","upper lip","tongue","open mouth"),
"/characters/liya/cum/facial 2",(a:"held","spurt","eyes","close eyes","cheek","tongue","chin","clothes"),
"/characters/liya/cum/facial 3",(a:"spurt","forehead","hair","eyes","nose","close eyes","tits","clothes"),
"/characters/liya/cum/facial 4",(a:"ooze","tits","tongue","cheek","held","open mouth","clothes"),
"/characters/liya/cum/facial 5",(a:"spurt","flinch","chin","forehead","nose","tongue","open mouth","clothes"),
"/characters/liya/cum/facial 6",(a:"close eyes","spurt","tongue","spit","chin","tits","lips","clothes"),
"/characters/liya/cum/facial 7",(a:"open mouth","spurt","back of mouth","chin","tits","eyes","forehead","clothes"),
"/characters/liya/cum/facial 8",(a:"cumdump","spurt","hair","close eyes","lying","lips","flinch","ooze","cheek"),
"/characters/liya/cum/facial 9",(a:"cumdump","forehead","spurt","close eyes","lips","flinch","ooze","cheek","hold","held","clothes")))}{(set:$img to "/characters/mia/cum/facial " + (text:(twist:1,19)))
(if:$load is "big")[(set:$img to "/characters/mia/cum/facial " + (text:(twirl:1,3,5,7,12,13,14,15,17,18)))]
(if:$load is "unwilling")[(set:$img to "/characters/mia/cum/facial " + (text:(twirl:2,3,5,12)))]
(set:$cum_face to (dm:
"/characters/mia/cum/facial 1",(a:"spurt","tongue","face","chin","cheek","open mouth","clothes"),
"/characters/mia/cum/facial 2",(a:"spurt","eyes","chin","lips","close eyes","clothes"),
"/characters/mia/cum/facial 3",(a:"spurt","cumdump","forehead","nose","eyes","chin","lying","hair"),
"/characters/mia/cum/facial 4",(a:"forehead","nose","tongue","open mouth","cheek","spurt"),
"/characters/mia/cum/facial 5",(a:"eyes","spurt","nose","up nose","lips","tongue","ooze in mouth"),
"/characters/mia/cum/facial 6",(a:"spurt","chin","strand","lips","tongue","open mouth"),
"/characters/mia/cum/facial 7",(a:"close eyes","ooze","cumdump","thick","nose","eyes","forehead","cheek","chin","tits","clothes"),
"/characters/mia/cum/facial 8",(a:"chin","ooze","ooze in mouth","clothes"),
"/characters/mia/cum/facial 9",(a:"chin","open mouth","jiggle tits","clothes"),
"/characters/mia/cum/facial 10",(a:"spray","long distance","chin","forehead","close eyes","eyes","clothes"),
"/characters/mia/cum/facial 11",(a:"tits","lips","cheek","spurt","clothes"),
"/characters/mia/cum/facial 12",(a:"spurt","cumdump","chin","mouth","eyes","tongue","nose","up nose","close eyes","clothes"),
"/characters/mia/cum/facial 13",(a:"spurt","cumdump","chin","close eyes","tongue","nose","up nose"),
"/characters/mia/cum/facial 14",(a:"spurt","cumdump","chin","mouth","close eyes","tongue","nose","up nose","close eyes","hair","tits","eyes"),
"/characters/mia/cum/facial 15",(a:"spurt","cumdump","chin","forehead","mouth","close eyes","tongue","nose","up nose","close eyes","eyes","hair"),
"/characters/mia/cum/facial 16",(a:"spurt","chin","forehead","mouth","close eyes","tongue","nose","up nose","close eyes","eyes","clothes","hair"),
"/characters/mia/cum/facial 17",(a:"spurt","chin","forehead","mouth","close eyes","tongue","nose","up nose","close eyes","eyes","clothes","hair","cumdump"),
"/characters/mia/cum/facial 18",(a:"spurt","chin","forehead","mouth","close eyes","tongue","nose","up nose","close eyes","eyes","clothes"),
"/characters/mia/cum/facial 19",(a:"spurt","chin","mouth","tongue","nose")))}{(set:$img to "/characters/rae/cum/facial " + (text:(twist:1,12)))
(if:$load is "big")[(set:$img to "/characters/rae/cum/facial " + (text:(twirl:1,2,10,11)))]
(if:$load is "unwilling")[(set:$img to "/characters/rae/cum/facial " + (text:(twirl:1,2,8)))]
(set:$cum_face to (dm:
"/characters/rae/cum/facial 1",(a:"spatter","face","eyes","open mouth","close eyes","clothes"),
"/characters/rae/cum/facial 2",(a:"close eyes","spurt","face","hair","close","close eyes","open mouth","cumdump"),
"/characters/rae/cum/facial 3",(a:"spurt","jerk","eyes","close eyes","flinch"),
"/characters/rae/cum/facial 4",(a:"spurt","jerk","tongue","open mouth","suck after","hair"),
"/characters/rae/cum/facial 5",(a:"spurt","open mouth","tongue","open eyes","chin","clothes"),
"/characters/rae/cum/facial 6",(a:"spurt","open mouth","close eyes","tongue","chin","eyes","clothes","hair"),
"/characters/rae/cum/facial 7",(a:"spurt","eyes","hair","tongue","open mouth","clothes"),
"/characters/rae/cum/facial 8",(a:"spatter","held","tongue","open mouth","close eyes"),
"/characters/rae/cum/facial 9",(a:"spurt","nose","chin","tongue"),
"/characters/rae/cum/facial 10",(a:"spurt","forehead","hair","upper lip","tongue","up nose"),
"/characters/rae/cum/facial 11",(a:"cumdump","up nose","eyes","forehead","nose","chin","clothes"),
"/characters/rae/cum/facial 12",(a:"nose","chin","clothes","cheek","tongue","spurt","open mouth")))}{(set:$img to "/characters/scarlit/cum/facial " + (text:(twist:1,15)))
(if:$load is "big")[(set:$img to "/characters/scarlit/cum/facial " + (text:(twirl:4,7,9,10,11,12,13,15)))]
(if:$load is "unwilling")[(set:$img to "/characters/scarlit/cum/facial " + (text:(twirl:1,5,6,7,9,10,12)))]
(set:$cum_face to (dm:
"/characters/scarlit/cum/facial 1",(a:"spurt","tongue","face","open mouth","chin","hair","clothes"),
"/characters/scarlit/cum/facial 2",(a:"ooze","tongue","chin","neck","tits","open mouth","clothes"),
"/characters/scarlit/cum/facial 3",(a:"spurt","open mouth","chin","tits","hair","clothes"),
"/characters/scarlit/cum/facial 4",(a:"spray","open mouth","tongue","eyes","upper lip","chin","runny"),
"/characters/scarlit/cum/facial 5",(a:"forehead","spurt","tongue","chin","open mouth","flinch","upper lip","clothes","hair"),
"/characters/scarlit/cum/facial 6",(a:"held","chin","spurt","eyes","clothes"),
"/characters/scarlit/cum/facial 7",(a:"spurt","eyes","nose","upper lip","forehead","clothes","hair"),
"/characters/scarlit/cum/facial 8",(a:"spurt","nose","open mouth","tongue"),
"/characters/scarlit/cum/facial 9",(a:"cumdump","spurt","upper lip","eyes","hair","cheeks","nose","clothes"),
"/characters/scarlit/cum/facial 10",(a:"cumdump","spurt","upper lip","eyes","hair","cheeks","nose","open mouth","tongue","clothes"),
"/characters/scarlit/cum/facial 11",(a:"cumdump","spurt","forehead","nose","eyes","up nose","open mouth","hair"),
"/characters/scarlit/cum/facial 12",(a:"cumdump","spurt","runny","nose","forehead","hair","open mouth","held","cheek","nose","clothes"),
"/characters/scarlit/cum/facial 13",(a:"ooze","cheek","ooze mouth"),
"/characters/scarlit/cum/facial 14",(a:"cumdump","spurt","hair","eyes","forehead","tongue","cheek"),
"/characters/scarlit/cum/facial 15",(a:"spurty","forehead","mouth","tongue","open mouth","nose","clothes")))}{
(display:"sex pull out " + $character's "id")
(set:$img to "<video src='img/scenes" + $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")(set:$cum_text to $text)
}{
(if:$his_choice is "tits" and $your_choice is "pull out")[(set:$your_choice to "tits")
(set:$img to "/characters/alina/cum/tits 1")
(set:$text to $img of (dm:
"/characters/alina/cum/tits 1",(a:"tits","lying")
))
]
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"3","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:5,12)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
(if:(twist:1,2) is 1)[
(set:$img to (twirl:"/characters/alina/cum/butt 1","/characters/alina/cum/body 1"))
(set:$text to $img of (dm:
"/characters/alina/cum/butt 1",(a:"butt","couch"),
"/characters/alina/cum/body 1",(a:"body","belly","couch")
))]
}{
(if:$his_choice is "tits" and $your_choice is "pull out")[(set:$your_choice to "tits")
(set:$img to "/characters/cassidy/cum/tits " + (text:(twist:1,2)))
(set:$text to $img of (dm:
"/characters/cassidy/cum/tits 1",(a:"tits","lying"),
"/characters/cassidy/cum/tits 2",(a:"tits","lying") ))
](else:)[(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"1","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:2,6)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
]
}{
(if:$his_choice is "tits" and $your_choice is "pull out")[(set:$your_choice to "tits")
(set:$img to "/characters/ella/cum/tits " + (text:(twist:1,5)))
(set:$text to $img of (dm:
"/characters/ella/cum/tits 1",(a:"tits","kneeling","jiggle"),
"/characters/ella/cum/tits 2",(a:"tits","lying","jiggle"),
"/characters/ella/cum/tits 3",(a:"tits","kneeling","jiggle"),
"/characters/ella/cum/tits 4",(a:"tits","lying","jiggle","mouth"),
"/characters/ella/cum/tits 5",(a:"tits","kneeling","jiggle")))
](else:)[(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"1","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:2,6)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
]
}{
(set:$img to "/characters/jade/cum/body 1")
(if:$his_choice is "tits" and $your_choice is "pull out")[(set:$your_choice to "tits")
(set:$img to "/characters/jade/cum/tits " + (text:(twist:1,4)))
(set:$text to $img of (dm:
"/characters/jade/cum/tits 1",(a:"tits","kneeling"),
"/characters/jade/cum/tits 2",(a:"tits","lying","jiggle"),
"/characters/jade/cum/tits 3",(a:"tits","lying","between"),
"/characters/jade/cum/tits 4",(a:"tits","lying","spray down")
))
](else:)[(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"3","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(if:(twist:1,2) is 1)[
(set:$img to "/characters/jade/cum/body 1")
]
(set:$text to $img of (dm:
"/characters/jade/cum/body 1",(a:"butt","couch")))]
}{
(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"3","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))]
(else:)[(set:$variant to (text:(twist:5,12)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
(if:(twist:1,2) is 1)[
(set:$img to "/characters/jia/cum/butt 1")
(set:$text to $img of (dm:
"/characters/jia/cum/butt 1",(a:"butt","couch")))]
}{
(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"3","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:5,12)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
}{
(if:$his_choice is "tits" and $your_choice is "pull out")[(set:$your_choice to "tits")
(set:$img to "/characters/liya/cum/tits 1")
(set:$text to $img of (dm:
"/characters/liya/cum/tits 1",(a:"tits","kneeling")))
](else:)[(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"3","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:5,12)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
(if:(twist:1,2) is 1)[
(set:$img to "/characters/liya/cum/butt 1")
(set:$text to $img of (dm:
"/characters/liya/cum/butt 1",(a:"butt","couch")))]]
}{
(if:$his_choice is "tits" and $your_choice is "pull out")[(set:$your_choice to "tits")
(set:$img to "/characters/mia/cum/tits 1")
(set:$text to $img of (dm:
"/characters/mia/cum/tits 1",(a:"tits","lying")
))
](else:)[(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"3","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:5,12)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]]
}{
(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to (twirl:"3","2"))(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:5,12)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
}{
(set:$his_choice to "pull out")
(if:(twist:1,2) is 1 and $your_choice is "pull out" and $character's "masculinity" < 80 and $orgasms > 0)[(set:$variant to "1")(set: $img to "/generic/sex/cum/pull out/wiggle/doggy " + $variant)(set:$text to (a:"butt","wiggle"))
]
(else:)[(set:$variant to (text:(twist:1,6)))(set: $img to "/generic/sex/cum/pull out/no wiggle/doggy " + $variant)(set:$text to (a:"butt"))]
}{
(if:$text contains "jerk")[(print:(upperfirst:$npc's "sex name")) pulls out, and you reach forward to bring him to completion. (if:$text contains "stomach")[You wince as he blows a heavy load all across your stomach.]](else:)[
(print:(upperfirst:$npc's "sex name")) pulls out, (if:$text contains "pussy")[blowing his load all over your freshly-fucked pussy.](else-if:$text contains "butt")[draining his balls directly onto your butt.](else-if:$text contains "back")[cumming all over your back.](else-if:$text contains "stomach")[blowing his load all over your tummy.]]
(twirl:"His","The") (twirl:"cum is warm and sticky, oozing ","hot, sticky cum trickles","warm, smelly cum oozes") (if:$text contains "pussy")[down your quivering legs](else-if:$text contains "stomach")[across your skin](else-if:$text contains "hand")[between your fingers.](else-if:$text contains "butt wiggle")[around your skin as you wiggle your butt.](else:)[down your skin.]
}{
(set:_text to (twist:1,9))
(set:$panties to $outfit's "pussy")
(if:_text is 1)[
(set:_prickly to (twirl:"prickly","tingling","tingly","prickling","twitchy","rolling"))
(set:_shudder to (twirl:"shudder","shiver","tickle","tremor"))
(set:_shiver to (twirl:"shudder","shiver","tremble"))
(set:_shudders to (twirl:"shudders","shivers","trembles"))
(set:_pleasant to (twirl:"pleasant","nice","relaxing","warm","warm, deep","soothing"))
(set:_involuntary to (twirl:"involuntary","spontaneous","unprompted"))
(set:_involuntarily to (twirl:"involuntarily","spontaneously"))
(print:(twirl:"Your body _shudders _involuntarily","A _pleasant _shudder travels up your back, from the base of your spine","A _prickly, _pleasant _shudder climbs up your back","A _pleasant _shudder rises up the nape of your neck","You _shiver, _involuntarily - it feels _pleasant","You feel a _pleasant _shudder spread _involuntarily through your body","You feel a _pleasant, _prickly _shudder","You _shiver, _involuntarily; it feels _prickly and _pleasant","Your whole body _shudders _involuntarily","You feel _pleasant little 'stabs'; butterflies in your belly","A _prickly, _pleasant _shudder spreads up your back"))(print:(twirl:"...","."))
](else-if:_text is 2)[
(print:(twirl:"You suddenly feel","You feel","You suddenly get","You feel yourself get"))
(print:(twirl:"a bit","a little","a little bit","",""))
(print:(twirl:"light-headed","woozy","dizzy","giddy"))(print:(twirl:"... it's"," - it's","; it's",", making it",", making it",", making it a lot"))
(print:(twirl:"harder","more difficult","tougher"))
(print:(twirl:"to","for you to","for your female brain to"))
(print:(twirl:"concentrate","focus","think","formulate thoughts"))(print:(twirl:"."))
(if:(twist:1,2) is 1)[(print:(twirl:"Your mind fills with other things","You're filled with some strange emotions","Your head is stuffed with fuzzy emotions","Rational thought is replaced with powerful emotions","Fuzzy emotions replace rational thought"))(print:(twirl:",",":","..."))
(print:(twirl:"carnal, bodily","sensual","animalistic","primal","feminine","womanly"))
(print:(twirl:"urges","instincts","appetites","yearnings","cravings")).]
](else-if:_text is 3)[
(if:(twist:1,2) is 1)[
(set:_breasts to (twirl:"breasts","boobs"))
(set:_chest to (twirl:"chest","bosom"))
(set:_warm to (twirl:"warm","hot","flushed","warm"))
(set:_tight to (twirl:"tight","heavy","engorged","weighty"))
(set:_somehow to (twirl:"strangely","somehow","curiously","unusually"))
(set:_tightening to (twirl:"burning","tightening","tingling","throbbing"))
(set:_sensitivity to (twirl:"sensitivity","rawness","vulnerability","tension"))
(set:_expanding to (twirl:"expanding","growing","trying to expand","trying to grow"))
(print:(twirl:"Your _breasts feel _somehow _warm now, and heavier than before - like they've expanded","You feel a _tightening sensation in your _chest","You feel a _warm _tightening sensation in your _breasts","Your _breasts feel _warm and _tight","Your _chest feels _warm and _tight","A _tightening _sensitivity spreads through your _chest; your _breasts feel _warm and _tight","A _tightening sensation spreads through your _chest, making your _breasts feel _warm and _tight","Your _breasts feel _somehow _warm and _tight, like they're _expanding","Your _breasts feel like they're _expanding","A _tightening sensation spreads through your _breasts, they feel _warm and _tight, almost like they're _expanding"))(print:".")](else:)[
(if:(twist:1,2) is 1)[
(print:(twirl:"Your","You feel your","You can feel your","You distinctly feel your"))
(print:"nipples")
(print:(twirl:"ache","throb","tingle"))
(print:(twirl:"and start to","and","and begin to","and"))
(print:(twirl:"swell","push outwards","harden","poke outward","grow erect","go erect"))(if:(twist:1,2) is 1)[(print:", ")(print:(twirl:"pulsating like they have their own heartbeat","taking on a life of their own","separating themselves from the rest of your boobs"))](print:".")
](else:)[
(set:_hard to (twirl:"erect","hard","swollen"))
(set:_ache to (twirl:"start to throb","throb","ache","tingle"))
(print:(twirl:"Your nipples _ache and go _hard","Your nipples are suddenly _hard","Your nipples _ache and turn _hard","Your nipples have gone _hard","Your nipples pucker up into hard little buds"))(print:",")
(if:$clothing is "clothed")[(if:$clothing is "tshirtjeans")[
(set:_obviously to (twirl:"obviously","conspicuously","clearly"))
(set:_shirt to (twirl:"t-shirt","shirt","top"))
(print:(twirl:"poking _obviously through your _shirt.","poking _obviously through the fabric of your _shirt","poking out even through the layers you're wearing","evident even through your _shirt.","making themselves obvious even through your _shirt"))(print:".")
](else:)[
(set:_obviously to (twirl:"obviously","conspicuously","clearly"))
(set:_shirt to (twirl:"dress"))
(print:(twirl:"poking _obviously through your _shirt.","poking _obviously through the fabric of your _shirt","poking out even through the layers you're wearing","evident even through your _shirt.","making themselves obvious even through your _shirt"))(print:".")
]](else-if:$clothing is "underwear")[
(set:_obviously to (twirl:"obviously","conspicuously","clearly"))
(print:(twirl:"poking _obviously through your bra.","poking _obviously through the padding of your bra","poking out even through the one layer you're wearing.","evident through your bra's padding.","making themselves obvious even through your bra"))(print:".")
](else:)[
(print:(twirl:"plainly visible","totally obvious","painfully obvious"))
(print:(twirl:"out in the open","as they poke forward from the rest of your areolas","now that you're stripped bare","on your bare chest","on your bare, flushed tits","as they poke forward from the rest of your breasts"))(print:".")
]]]](else-if:_text is 4)[
(set:_fragile to (twirl:"fragile","vulnerable","weak","delicate","dainty"))
(set:_feminine to (twirl:"feminine","soft","girlish","powerless"))
(print:(twirl:"You suddenly feel","In this instant, you feel","Suddenly, you feel","You feel"))
(set:_very to (twirl:"very","incredibly","exceedingly","really","profoundly"))
(print:(twirl:"_very _fragile and _feminine","_fragile and _feminine","_very _fragile and... _feminine"))(if:(twist:1,2) is 1)[(print:",")
(print:(twirl:"like a breeze could sweep you away","like you want to just melt in a man's arms","like you're meant to be taken and used","like you're a thing that's meant to be taken and used by someone stronger","like you're a treasure, meant to be plundered","like you're really a bitch meant to be used by someone much stronger","like your body was designed only as a supplicant to the masculine ideal","like your body wants to be dominated","like your body was made to just be dominated","like you want to be held down and forcibly taken","like your body wants to be conquered"))](print:".")
](else-if:_text is 5)[
(set:_between_your_legs to (twirl:"between your legs","down between your legs","in your nether regions","down in your most private place","between your legs","*down there*"))
(set:_pussy to (twirl:"pussy","vagina"))
(set:_tingle to (twirl:"ache","tingle","tightness","tension","throbbing"))
(set:_tingles to (twirl:"aches","tingles","tenses up","throbs"))
(set:_a_distinct to (twirl:"a distinct","an unmistakable","a deep, cloying","an urgent","a needful","a distinct","a primal, insistent","a rhythmic"))
(print:(twirl:"You feel _a_distinct _tingle _between_your_legs","Your pussy _tingles","You feel _a_distinct _tingle _between_your_legs","There's _a_distinct _tingle _between_your_legs","You feel _a_distinct _tingle _between_your_legs","Your _pussy _tingles - _a_distinct _tingle"))(if:(twist:1,2) is 1)[(print:",")
(print:(twirl:"as if that part of you has its own heartbeat","developing an itch that that needs scratching","like muscles inside you are contracting and releasing","like your insides are starting to spread themselves","like there's a hungry emptiness inside"))](print:".")
](else-if:_text is 6)[
(set:_Heat to (twirl:"Heat","Warmth","Tingling warmth","A pool of heat","A pleasant warmth","Comfortable warmth","A warm heaviness","A warm, weighty sensation","Tingling heat","Prickly heat","Itchy warmth"))
(set:_between_your_legs to (twirl:"between your legs","down between your legs","in your nether regions","down in your most private place","between your legs","in your pussy","between your legs","between your thighs"))
(set:_flows to (twirl:"flows","pulsates","throbs","radiates","blooms","starts to build"))
(set:_a_heat to (twirl:"heat","warmth","tingling warmth","a warm *heaviness*","an intense pool of heat","a tingling, prickly heat","an itchy warmth","a deep, urgent warmth","a deep, aching warmth"))
(set:_grow to (twirl:"","grow","build","start to build","pulse","radiate from","throb"))
(print:(twirl:"_Heat _flows _between_your_legs","You feel _a_heat _grow _between_your_legs"))(print:".")
](else-if:_text is 7)[
(if:(twist:1,2) is 1)[
(set:_oddly to (twirl:"oddly","strangely","curiously","unusually"))
(set:_empty to (twirl:"empty","hollow","empty","hollow","*vacant*","an emptiness","a *hollowness*"))
(print:(twirl:"You feel","You start to feel","Suddenly, you start feeling","You start feeling","You feel","You realize that you feel","You're starting to feel","You feel"))
(print: (twirl:"_empty","_oddly _empty"))
(print:(twirl:"inside","deep inside","inside"))(print:",")](else:)[(print:(twirl:"An overriding sensation of","The sensation of","Suddenly, a feeling of","A nagging sensation of"))
(print:(twirl:"emptiness","hollowness"))
(print:(twirl:"spreads through","pulses through","emanates from","spreads throughout","tingles throughout","tingles throughout","spreads out from"))
(print:(twirl:"your deep insides","your nether regions","the space down between your legs","the opening between your legs","your feminine parts","your pussy","the area between your legs"))(print:(twirl:"..."," -"))]
(set:_something to (twirl:"something, *anything*","something","something thick and hard","something big and masculine","something long and hard","something smooth and hard","something *manly*","something big","something hard"))
(print:(twirl:"like you need to be filled","like you need _something to fill you up","like you need _something to fill you up and plug your gap","like you need _something to fill you","like there's something you *need* to fill you","like you need to be penetrated with _something","like you just need to be filled","like you just need to be penetrated","like you need _something to stuff you full","like your soft interior needs to be plundered, penetrated by _something","like your body wants to be penetrated"))(print:".")
](else-if:_text is 8)[
(if:$panties is "panties")[(twirl:"Your $panties feel a little damp.","You feel a slight dampness in your $panties.","Your $panties feel a little bit wet, you'll probably need to change later.")](else:)[
(twirl:"Your $panties feels a little damp.","You feel a slight dampness in your $panties.","Your $panties feels a little bit wet, you'll probably need to change later.")
]
](else:)[
(set:_between_your_legs to (twirl:"between your legs","deep inside you","down between your legs","inside your pussy","in your abdomen","inside you"))
(set:_wetness to (twirl:"warm","hot","throbbing","tingling") + ", " + (twirl:"silky","glossy","satin","velvety","tender","slick") + " " + (twirl:"wetness","dampness","wetness"))
(set:_Wetness to (twirl:"Warm","Hot","Throbbing","Tingling") + ", " + (twirl:"silky","glossy","satin","velvety","tender","thick") + " " + (twirl:"wetness","dampness","wetness"))
(set:_feeling to (twirl:"gush","sensation","rush","layer","puddle"))
(print:(twirl:"You feel the distinct _feeling of _wetness _between_your_legs","A _feeling of _wetness builds _between_your_legs","You feel _wetness _between_your_legs","You feel a gush of heat and liquid _between_your_legs","You feel yourself get distinctly wet","_Wetness builds _between_your_legs","You feel _wetness between your legs","Suddenly, _between_your_legs, you feel yourself getting wet","You feel _wetness _between_your_legs, similar to when your mouth waters","The _wetness between your legs feels like it has the same consistency as microwaved hair-gel - only much more pleasant"))(print:".")
]
}{
(if:$location_params's "crowded" is "no" or (twist:1,2) is 1)[
(set:_text to (twist:1,5))
(set:$panties to $outfit's "pussy")
(if:_text is 1)[
(print:(twirl:"Your pussy is","Your pussy folds are","Your engorged pussy is","Your pussy is","Your little slit is","Your vagina is","You can feel that your pussy is","You can feel your pussy is","The soft folds of your pussy are"))
(print:(twirl:"thoroughly soaked","sopping wet","thoroughly wet","positively drenched with lubrication","extremely slick and wet"))(print:(twirl:""," now"))(print:(twirl:","," - ","; "))
(set:_something_hard to (twirl:"something hard","something hard and smooth","something big and hard"))
(set:_filled to (twirl:"filled","penetrated","filled up","filled with _something_hard","filled up with _something_hard","penetrated and conquered","filled, dominated, and conquered","filled and dominated","filled, used, and dominated","penetrated... fucked"))
(print:(twirl:"your insides are spreading themselves outward, aching to be _filled","you're so achingly *empty*","your insides are expanding, greasing themselves, wanting desperately to be _filled","you are achingly *empty* inside, you need to be _filled","your body aches with silky, damp emptiness; it needs to be _filled","every part of you is screaming that you must be _filled","your body is *demanding* to have something inside it","your body is practically screaming for cock","your body is demanding to be fucked, yearning for it","the *need* down between your legs can't be denied","your body is wild with the need to be _filled"))(print:(twirl:".","..."))](else-if:_text is 2)[
(if:(twist:1,2)is 1)[(print:(twirl:"It's growing inside you","You feel it growing inside you","It's blossoming inside you","It's rising inside you","You feel it inside your body","It rages inside you"))(print:(twirl:",",":",";"))
(print:(twirl:"a tension","a pressure","a strong tug","a primal tension"))
(print:(twirl:"that spreads","that rushes","that runs","that vibrates"))
(print:(twirl:"across your neck","through your chest","through your breasts"))(print:",")
(print:(twirl:"your legs","your thighs","your knees"))(print:",")
(print:(twirl:"your stomach","your belly","your abdomen","your torso"))(print:",")
(print:(twirl:"and most of all","and greatest of all","and most intense,"))](else:)[
(print:(twirl:"Blazing, needful heat surges though every inch of your body","Fiery tensions cause every part of your body to 'activate' with sensitivity and hunger","Hot, wet heat centers between your legs","Slick, wet, sticky warmth pools between your legs, and radiates throughout your body"))(print:".")
(print:(twirl:"Most of all, you feel the","Overriding everything is","The strongest sensation is"))(print:" ")
]
(print:(twirl:"a deep","a primal","an all-consuming","this all-consuming","an instinctive"))(print:",")
(if:(twist:1,2) is 1)[(print:(twirl:"tight"))(print:",")]
(print:(twirl:"throbbing","aching","desperate","burning"))
(print:(twirl:"need","yearning","craving"))
(print:(twirl:"for something","for a man","for someone, *something*"))
(print:(twirl:"to penetrate you","to fill you","to dominate you","to penetrate and conquer you"))(print:".")
](else-if:_text is 3)[(print:(twirl:"Your heart beats faster and faster.","It's getting hard to breathe.","You're fully aroused now.","Your body is fully aroused now.","Your cheeks flush red.","You feel lightheaded and giddy.","Your mind is full of erotic imagery.","You feel so weak, so feminine.","The heat of arousal radiates through your body.","The intense warmth of full arousal flushes through your body.","Your hormones are raging at full bore.","Your hormones are totally overpowering you.","You feel dizzy, lost in arousal.","You're really feeling the effects of arousal.","Female hormones overwhelm you.","The female hormones are overwhemling.","Arousal builds unstoppably in your pelvis.","Hot tingles of arousal light up your senses."))](else-if:_text is 4)[(if:$panties is "panties")[(twirl:"Your $panties feel really damp.","Your $panties are soaked through.","Your $panties feel wet, you'll probably need to change later.","Your sopping wet pussy has probably ruined your $panties...")](else:)[
(twirl:"Your $panties feels really damp.","Your $panties is soaked through.","Your $panties feel wet, you'll probably need to change later.","Your sopping wet pussy has probably ruined your $panties...")
]](else:)[(print:(twirl:"You whimper a little bit, uncontrollably.","Your bottom lip quivers.","*Nngh...*","Your knees shudder, like they might give way.","*Unngh...*","You can't help a little gasp from escaping your lips.","You bite your bottom lip.","Heavy breaths escape your lips.","*Nnnnf-*","You feel so weak and feminine. So out of control.","'Nngh,' you mewl.","You almost let out a slight, strangled gasp.","You can't help letting out a slight, strangled whimper.","Your lips shudder, and you let out a meaningless little murmur."))]
](else:)[(if:$npc_type is "coworker")[(display:"female arousal crowded workplace")](else:)[(display:"female arousal crowded")]]
}{
(set:$oral_img to "scenes/characters/" + $character's "id" + "/oral/oral " + (text:(twist:1,2)) + ".mp4")
(set:$sex_loop to "licking loop " + $character's "id" + " ")
(display:"sex oral " + $character's "id")
}{(set:$sex_loop to $sex_loop + (text:(twist:1,2)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/alina/oral/oral 1.mp4",652,
"scenes/characters/alina/oral/oral 2.mp4",822))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/alina/oral/oral 1.mp4","missionary",
"scenes/characters/alina/oral/oral 2.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,4)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/cassidy/oral/oral 1.mp4",638,
"scenes/characters/cassidy/oral/oral 2.mp4",540))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/cassidy/oral/oral 1.mp4","missionary",
"scenes/characters/cassidy/oral/oral 2.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,5)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/ella/oral/oral 1.mp4",429,
"scenes/characters/ella/oral/oral 2.mp4",546))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/ella/oral/oral 1.mp4","missionary",
"scenes/characters/ella/oral/oral 2.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,4)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/jade/oral/oral 1.mp4",572,
"scenes/characters/jade/oral/oral 2.mp4",652))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/jade/oral/oral 1.mp4","doggy",
"scenes/characters/jade/oral/oral 2.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,4)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/jia/oral/oral 1.mp4",690,
"scenes/characters/jia/oral/oral 2.mp4",491))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/jia/oral/oral 1.mp4","missionary",
"scenes/characters/jia/oral/oral 2.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,3)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/lana/oral/oral 1.mp4",504,
"scenes/characters/lana/oral/oral 2.mp4",667))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/lana/oral/oral 1.mp4","missionary",
"scenes/characters/lana/oral/oral 2.mp4","doggy"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,5)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/liya/oral/oral 1.mp4",490,
"scenes/characters/liya/oral/oral 2.mp4",750))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/liya/oral/oral 1.mp4","missionary",
"scenes/characters/liya/oral/oral 2.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,3)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/mia/oral/oral 1.mp4",355,
"scenes/characters/mia/oral/oral 2.mp4",923))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/mia/oral/oral 1.mp4","missionary",
"scenes/characters/mia/oral/oral 2.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,4)))
(set:$oral_img to "scenes/characters/rae/oral/oral " + (text:(twist:1,3)) + ".mp4")
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/rae/oral/oral 1.mp4",612,
"scenes/characters/rae/oral/oral 2.mp4",800,
"scenes/characters/rae/oral/oral 3.mp4",800))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/rae/oral/oral 1.mp4","missionary",
"scenes/characters/rae/oral/oral 2.mp4","missionary",
"scenes/characters/rae/oral/oral 3.mp4","missionary"))}{(set:$sex_loop to $sex_loop + (text:(twist:1,4)))
(set:$oral_rhythm to $oral_img of (dm:
"scenes/characters/scarlit/oral/oral 1.mp4",526,
"scenes/characters/scarlit/oral/oral 2.mp4",645))
(set:$oral_position to $oral_img of (dm:
"scenes/characters/scarlit/oral/oral 1.mp4","missionary",
"scenes/characters/scarlit/oral/oral 2.mp4","missionary"))}{(set:$img to "characters/" + $character's "id" + "/sex/doggy/2")
(set:$img to "<video disableRemotePlayback src='img/scenes/"+ $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(set:$sex_move to "doggy rough")
(display:"sex pleasure gain")
(display:"doggy sounds")
}{(display:"change pov")
(if:$pov is "1st")[
(display:"sex doggy " + $character's "id")
](else:)[
(set:$img to "characters/" + $character's "id" + "/sex/doggy/1")]
(set:$img to "<video src='img/scenes/"+ $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(set:$sex_move to "doggy")
(display:"sex pleasure gain")
(display:"doggy sounds")
}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to "generic/sex/doggy/c 1")}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to (twirl:"generic/sex/doggy/w 1","generic/sex/doggy/w 2"))}{(set:$img to "generic/sex/doggy/c 1")}{(set:$img to "characters/" + $character's "id" + "/sex/doggy/pushback")
(set:$img to "<video disableRemotePlayback src='img/scenes/"+ $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(set:$sex_move to "doggy pushback")
(display:"sex pleasure gain")
(display:"doggy sounds")
}{
(set:$pov to "1st")
(set:$img to "generic/sex/hj/bwc 1")
(set:$img to "<video disableRemotePlayback src='img/scenes/"+ $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(set:$sex_move to "handjob")
(display:"sex pleasure gain")
(set:$sex_loop to "hj neutral loop")
}{
(if:(a:"blowjob","blowjob rough","handjob") contains $sex_move)[(set:$your_pleasure to (max:$your_pleasure - 1,0))(set:$your_momentum to 0)(inc:'your_momentum')](else:)[
(inc:'your_pleasure')]
(if:$sex_move is "licking")[(set:$his_pleasure to (max:$his_pleasure - 1,0))(set:$his_momentum to 0)](else:)[(inc:'his_pleasure')(inc:'his_momentum')]
(display:"refresh stats sex girl")
(display:"npc stats update sex guy")
}{
(unless:(istrack:"stepsis shoplifting intro"))[
(newtrack:'stepsis shoplifting intro','aud/se/npc/stepsis/shoplifting/intro.mp3')
(newtrack:'stepsis shoplifting bj loop','aud/se/npc/stepsis/shoplifting/bj loop.mp3')
(newtrack:'stepsis shoplifting fuck begin','aud/se/npc/stepsis/shoplifting/fuck begin.mp3')
(newtrack:'stepsis shoplifting fuck loop','aud/se/npc/stepsis/shoplifting/fuck loop.mp3')
(newtrack:'stepsis shoplifting cum','aud/se/npc/stepsis/shoplifting/cum.mp3')
(newtrack:'stepsis shoplifting finish','aud/se/npc/stepsis/shoplifting/finish.mp3')
(newtrack:'stepsis shower strip','aud/se/npc/stepsis/shower/strip.mp3')
(newtrack:'stepsis shower bj loop','aud/se/npc/stepsis/shower/bj loop.mp3')
(newtrack:'stepsis shower fondle tits','aud/se/npc/stepsis/shower/fondle tits.mp3')
(newtrack:'stepsis shower cum','aud/se/npc/stepsis/shower/cum.mp3')
(newtrack:'stepsis coffee taste','aud/se/npc/stepsis/coffee/1 taste coffee.mp3')
(newtrack:'stepsis coffee offer','aud/se/npc/stepsis/coffee/2 offer reward.mp3')
(newtrack:'stepsis coffee fondle loop','aud/se/npc/stepsis/coffee/3 fondle loop.mp3')
(newtrack:'stepsis coffee strip','aud/se/npc/stepsis/coffee/4 strip.mp3')
(newtrack:'stepsis coffee fingering loop','aud/se/npc/stepsis/coffee/5 fingering loop.mp3')
(newtrack:'stepsis coffee orgasm','aud/se/npc/stepsis/coffee/6 orgasm.mp3')
(newtrack:'stepsis coffee handjob','aud/se/npc/stepsis/coffee/7 handjob.mp3')
(newtrack:'stepsis coffee cum','aud/se/npc/stepsis/coffee/8 cum.mp3')]
}{
(if:(datanames:$blackjack_params) contains "type")[(if:$blackjack_params's "type" is "big load")[(set:$se to "gag " + (text:(twist:1,7)))(display:"play sound")]]
}{
[(print:"<img class='greyborder' src='img/characters/emotion/bimbo/" + $character's "id" + ".jpg' width='100%' height=auto>")
(twirl:"You have a sudden brain freeze.","Suddenly, you have a bit of a brain fart.","Suddenly, your brain gives out on you a little bit.","Just as you're all set up to fling a finishing line, you lose your train of thought.","Suddenly, your train of thought gets derailed.","You have a sudden brain fart - mid-sentence, you stop and pause.")
"(twirl:"Uh...","Ummm...","Uh, anyhow...","Uh, yeah...","Err...","Umm...") (if:$response is "cock")[(twirl:"You shouldn't, uh...","You shouldn't just, like...","I can't believe you just, like...","Th- um, that was really...","Y- you actually, err...","Why would you, uhh...")](else:)[(twirl:"Take, like, a h- hint!","Take, uh, a mint! A hint!","Just suck off! I mean, uh...","Did you like, ever learn manners?","D- didn't you ever learn, like, manners?","Learn to like, behave yourself?","Why can't you like, just like, treat girls how, uh...","Treat others the way you want to be treated... uh... no that doesn't work...")]"(if:(twist:1,2) is 1)[ *(twirl:"What's happening to me?","What was that?","What the fuck?","Why can't I think straight?","What the hell?")*]🧠(nl:2)
"(if:$response is "cock")[(twirl:"Haha,","Heh,","God,","Fuck,","Aww,") (twirl:"I guess it's true what they say of bitches going cock-dumb,","I guess it's true what they say - show a bitch your cock, and they'll be lost for words,")](else:)[(twirl:"Haha,","Heh,","God,","Fuck,","Aww,") (twirl:"it's a good thing you're cute,","good thing you're prettier than you're smart!","now aren't you precious?","don't go straining yourself,","and you wonder why women aren't leaders,","it's a good thing you're pretty,","I hope you don't have a career that involves a lot of talking,","good thing you're hot,","good thing you don't do my taxes,")]" (print:$npc's "name") (twirl:"chuckles","grins","smiles")(if:(twist:1,2) is 1)[ condescendingly].
<div class='options'>(link:"Next")[(replace:?text)[(display:"proposition his move")]]</div>]<text|
}{
(set:$your_pleasure to (min:$your_pleasure + $pleasure_bonus,10))
(set:$pleasure_bonus to 0)
(if:$your_pleasure > 9)[(set:$quicktime_params's "points" to $quicktime_params's "points to win")]
}{(set: $emoji to (cond: $scene_type is "ff", "💦", "🍾"))
(set: $his to (cond: $scene_type is "ff", "Her", "His"))
(set: $your_pleasure_gain to (cond: $character's "side effects" contains "Submissive pleasure" and $position_type is "passive", $your_pleasure_gain * 2, $your_pleasure_gain))
(unless: $satisfaction_gain is 0 and $pleasure_gain is 0 and $your_pleasure_gain is 0)[
<div class='options'><mark>
(set: $his_satisfaction to (max: (min: $his_satisfaction + $satisfaction_gain, 10), 0))
(set: $his_pleasure to (max: (min: $his_pleasure + $pleasure_gain, $his_pleasure_threshold), 0))
(set: $your_pleasure to (min: $your_pleasure + $your_pleasure_gain, 10))
(print: (cond:
$satisfaction_gain > 0, " " + $his + " satisfaction gain: " + (str-repeated: (abs:$satisfaction_gain), "😋"),
$satisfaction_gain < 0, " " + $his + " satisfaction loss: " + (str-repeated: (abs: $satisfaction_gain), "😒"),
""))
(if: $pleasure_gain > 0)[(print: " ") $his pleasure gain: (str-repeated: $pleasure_gain, $emoji)]
(else-if: $pleasure_gain < 0)[(print: " ") $his pleasure: $pleasure_gain ]
(unless: $your_pleasure_gain is 0)[
(print: " ") Your pleasure gain: (str-repeated: (abs:$your_pleasure_gain), "💦")
(if: $character's "side effects" contains "Submissive pleasure" and $position_type is "passive")[ (print: " (doubled due to side effect)")]
]
(if:$gain > 0)[(unless: $character's "arousal" > 9)[(print:" ")(display:"gain arousal")]]
(set: $pleasure_gain to 0)
(set: $your_pleasure_gain to 0)
(set: $satisfaction_gain to 0)
</mark></div>
(display:"npc stats update sex guy")
(display:$stats_refresh)
]}{
(set:$energy to (min:$energy + $energy_bonus,$max_energy))
(display:"refresh stats sex girl")
(set:$energy_bonus to 0)
(if:$energy is $max_energy)[(set:$quicktime_params's "points" to $quicktime_params's "points to win")]
}{
(if:$type is "try to cum")[
(set:$pleasure_bonus to (min:(max:(floor:$character's "arousal" / 2) + (floor:$current_skill's level / 3),2),7))
(if:$result is "fail")[(set:$pleasure_bonus to (ceil:$pleasure_bonus / 2))]
(if:$roll is 1)[(set:$pleasure_bonus to 0)(color:"darkred")[CRITICAL FAILURE! No pleasure gained.]](else-if:$roll is 20)[CRITICAL SUCCESS! Pleasure meter filled.(set:$pleasure_bonus to 10) 💦](else:)[Pleasure gained: $pleasure_bonus 💦]
(display:"real time pleasure gain")
]
(if:$type is "recover")[
(set:$energy_bonus to $max_energy)
(if:$result is "fail")[(set:$energy_bonus to (ceil:$max_energy / 2))]
(if:$roll is 1)[(set:$energy_bonus to 0)(color:"darkred")[CRITICAL FAILURE! No stamina recovered.]](else-if:$roll is 20)[CRITICAL SUCCESS! Max stamina increased by 2.(inc:'max_energy',2)(set:$energy_bonus to $max_energy)](else-if:$result is "fail")[Recovered: $energy_bonus ⚡](else:)[⚡ refilled.]
(display:"real time energy gain")
]
}{
(deprecatewarn:"button money")
}{
(deprecatewarn:"refresh xp")
}{
(deprecatewarn:"proposition tease")
}{
(deprecatewarn:"sync stat progression")
}{
(display:"quicktime gain xp calc")
(deprecatewarn:"button money")
}{
(display:"generic gain xp calc")
}(deprecatewarn:"quicktime respond continue")(replace:?challenge_text)[<mark>$demand_more</mark>]
(replace:?respond)[(set:$responding to "responding")(replace:?challenge_text)[<mark>$response</mark>]](if:$response_time is "none")[(live:5s)[(if:$responding is "begin")[(display:"quicktime response lose more")](else:)[(replace:?challenge_text)[(display:"quicktime response win")<mark>$congrats</mark>]](stop:)]](deprecatewarn:"bathroom post transform")($char_passage:"bathroom post transform",[(if:(a:"rae","cassidy") contains $character's "id")[(print:"<video disableRemotePlayback src='img/scenes/characters/" + $character's "id" + "/chores/bathroom " + (text:(twist:1,2)) + ".mp4' autoplay='' loop='' muted='' playsinline/>")](else:)[(print:"<video disableRemotePlayback src='img/scenes/characters/" + $character's "id" + "/chores/bathroom.mp4' autoplay='' loop='' muted='' playsinline/>")]],[])($simple_option:"advance time","Next.","display"){
(set:$character's "status effects" to (a:))
}{
(unless:$character contains "status effects")[
(set:$character's "status effects" to (a:))
]
}You've changed your body so many times, somewhere down the line you lost your soul. You'll still have a long, fulfilling life in Summer City, but you're not exactly "you" anymore.
(display:"game over"){<div style='display:none;'>
(set: $achievement_triggers to (unique: ...$achievement_triggers))
(set: $garbage_collected to $day)
(if: $achievement_notifications is "Achievement Notifications: Enabled")[
(set: $recent_achievements to (find: _achievement where not ($displayed_achievements contains _achievement) and not ($merged_achievements contains _achievement), ...$achievement_triggers))
]
</div>}{(set: $synced_count to (syncachievements:))(display:"score multiplier recalc")}{
(if:$achievement_triggers is 0)[{(set:$achievement_triggers to (a:))}]
(if:$recent_achievements is 0)[{(set:$recent_achievements to (a:))}]
(if: $cheated is not "yes")
[
(if: not ($achievement_triggers contains $achievement_condition_select))
[
(set:$achievement_triggers to it + (a:$achievement_condition_select))
(set:$recent_achievements to it + (a:$achievement_condition_select))
(display:"achievement unlocked")
]
]
(else-if:$cheated is "yes")
[
(if: not ($achievement_triggers contains "cheat-menu-basepack"))
[
(set:$achievement_triggers to it + (a:"cheat-menu-basepack"))
(set:$recent_achievements to it + (a:"cheat-menu-basepack"))
(set:$achievement_condition_select to "cheat-menu-basepack")
(display:"achievement unlocked")
]
]
}{
(unless:$achievement_notifications is "Achievement Notifications: Disabled")[
(unless:$achievement_notifications is "Achievement Notifications: Silent")[($play:"sound","achievement")]
(set:_achievement to (getachievement:$achievement_condition_select))
(floatnote:_achievement's emoji,"Achievement Unlocked: " + _achievement's "name", _achievement's hint)]
}{<div style='display:none;'>
(set: $recent_achievements to (unique: ...$recent_achievements))
(set: $recent_achievements to (find: _achievement where not ($displayed_achievements contains _achievement), ...$recent_achievements))
(set: $recent_cleared to $day)
</div>}{
(set: $happens_last to "achievement")
(set: $recent_achievements to (unique: ...(find: _achievement where not ($displayed_achievements contains _achievement), ...$recent_achievements)))
}{
[($play:"sound","ui good")(set:$next to "day")(set:$last_achievement_notification to $day)]
(if: $recent_achievements is not (a:))[(set:$recent_list_debug_var to $recent_achievements){
<div>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>
Achievements Unlocked Today!</span>]]</div>
<table style="width:100%">
<tr>
<th style="width:25%">**Achievement Name**</th>
<th style="width:55%">**Hint**</th>
</tr></table>($use_global: "$achievement_database", "window.GE.achievement_database", [(for: each _achievement_name, ...(datanames:$achievement_database))
[(if:$recent_achievements contains $achievement_database's (_achievement_name)'s condition_name)[{
<table style="width:100%"><tr>
<td style="width:25%">**(print:($achievement_database's (_achievement_name))'s name)**</td>
<td style="width:55%">(print:($achievement_database's (_achievement_name))'s hint)</td></tr></table>
(set:$displayed_achievements to it + (a:$achievement_database's (_achievement_name)'s condition_name))
(if:($achievement_database's (_achievement_name)'s reward) is not "")
[(display:($achievement_database's (_achievement_name)'s reward))(nl:1)]
}]]])
<!-- clear $recent_achievements-->(set:$recent_achievements to (a:))(link:"Next")[(display:"click")($cs:"activities")]}]
(else:)[($cs:"activities")]
}{
(set: _tips to it + (a: "Some achievements are hidden until you’ve unlocked them. Make sure to check the achievement menu periodically and see what unlocks!",
"Some achievements are missable. Try playing as different characters to unlock them all!",
"It’s impossible to get all achievements at once in one save. Try different playstyles to find them all!",
"If you want all the achievements, you might have to get a little naughty.",
"Some achievements will unlock as you go about the game normally, but others are rewards for doing something *weird*."))
<!-- hidden achievement hints-->
(set: _tips to it + (a: "It sure would suck if you got pregnant the first time you got creampied. That would be a major achievement! 😝",
"Being a good salesperson is overrated. Try just cold-calling at work for an entire week and see what happens.",
"There’s a lot of side effects in the game. Can you find them all at once?",
"You might unlock a hidden achievement if you prioritize being a slut at work right away instead of making sales.",
"Giving 1000 blowjobs is a hidden achievement. Thankfully it’s not required for 100%.",
"Getting *really* lucky with a secretary assignment might be a nice achievement!",
"Avoiding your chores might get you into trouble. Too bad trouble can be kinda fun!",
"Why do you even bother doing chores if the consequences come with free orgasms? (and maybe free achievements!)",
"Every X-Change Pill comes with a free trading card. Gotta collect 'em all!",
"Some local celebrities may be interested once you’ve pumped your pecker up enough.",
"The security staff at this mall might be willing to let your step sister off the hook.",
"If you aren’t good enough to earn a real sales job, you might find that getting laid at work is more fun than getting a promotion.",
"Job interviews can feel the same after a while. Maybe if your stats were lower, it would be a more fulfilling achievement when you do get a job?",
"The bar girls can be hard to seduce, especially if your stats aren’t very high. It would be impressive if you did it anyway! (hint hint)",
"Some scenes will progress differently if you’re on a Breeder instead of a regular X-Change Basic.",
"Getting pregnant on a Basic pill is supposed to be impossible. That might be a real achievement if you found a way!",
"The New-U Machine is sometimes unstable. If you’re really unlucky, you can sometimes get two side effects at once.",
"The back rooms of The Electric Pickle are a mysterious place. Don’t be scared if somebody wants to show you around back there.",
"If you’ve been asked to help somebody with an important task, maybe don’t show up on a Breeder pill? It’s a bad impression sometimes.",
"Bruce can be very restrictive with his sexual partners. Do your best to avoid going into debt with him.",
"Stepdad is hard to seduce, but even harder to break free of. Be wary if he gets too dominant!",
"Your family members might not like to share you. Don’t let that stop you from trying to seduce them both!"
))
}{
($centered:[(link:"Clear Achievements")[Are you sure you want to reset all achievements? This cannot be undone.(nl:1)(link: "Yes, reset all achievements")[($cs: "clear achievements")]
(link: "No, keep my achievements")[($cs: "achievements-engine view achievements")]]])
}{
<script>
(function() {
try {
// Clear Local Storage achievements
XCLStorageHandler.setItemSync('achievement_triggers_stored', []);
console.log('Cleared achievement_triggers_stored from local storage');
// Reset all achievement-related Harlowe variables
Harlowe.variable('$achievement_triggers', []);
Harlowe.variable('$displayed_achievements', []);
Harlowe.variable('$recent_achievements', []);
Harlowe.variable('$merged_achievements', []);
Harlowe.variable('$hidden_achievement_count', 0);
Harlowe.variable('$hidden_achievements_total', 0);
Harlowe.variable('$visible_achievement_count', 0);
Harlowe.variable('$achievements_completed', 0);
Harlowe.variable('$completed_percentage', 0);
// Reset score multiplier to base value
Harlowe.variable('$score_multiplier', 1);
// If cheated status exists, respect it
const cheated = Harlowe.variable('$cheated');
if (cheated === "yes") {
// Re-add only the cheat achievement if the save is marked as cheated
Harlowe.variable('$achievement_triggers', ["cheat-menu-basepack"]);
console.log('Restored cheat achievement marker');
}
// Force a sync to update all counters
Harlowe.macro('syncachievements')();
console.log('Achievement system reset complete');
} catch (error) {
console.error('Error during achievement reset:', error);
}
})();
</script>
(if: $cheated is "yes")[
All achievements have been cleared, except for the cheat flag.
](else:)[
All achievements have been cleared.
]
Your achievement progress has been reset to 0%.
($centered:[(link: "Back")[($cs: "achievements-engine view achievements")]])
}{
(set: $synced_count to (syncachievements:))
}{
(set: $synced_count to (syncachievements:))
}{
(set: $synced_count to (syncachievements:))
}{
(set:_achievements_to_store to (a:))
(set_storage: "local", "achievement_triggers_stored", _achievements_to_store)
}
<!-- idea: set a flag that checks if you've unlocked at least 10 achievements, for an unlockable character class in your rebalance mod. -->{
(set: $synced_count to (syncachievements:))
(if:$completed_percentage >= 1.0)[(display:"Cumpletionist Trigger")]
}{
(display:"Game Version")<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Achievements</span>]]</div><div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>
<div id="achievements-container">
<table style="width:100%">
<tr>
<th style="width:25%"><span class="shadow">Achievement</span></th>
<th style="width:55%"><span class="shadow">Hint</span></th>
<th style="width:10%">💊</th>
<th style="width:10%"><span class="shadow">Pack</span></th>
</tr>
</table>
<div id="achievements-list"></div>
</div>
<div id="achievement-stats"></div>
Thanks to the X-Change Life discord for helping brainstorm achievements!
<div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>(display:"reset achievement prompt")
<script>
(function() {
// Utility functions
const safeGet = (map, key, defaultValue = '') => {
try {
return map.get(key) || defaultValue;
} catch (e) {
console.error(`Error getting ${key} from achievement:`, e);
return defaultValue;
}
};
const parseTwirlFlavor = (flavor) => {
try {
if (typeof flavor !== 'string' || !flavor.startsWith('(twirl:')) {
return flavor;
}
const twirlRegex = /\(twirl:(.*)\)/s;
const match = flavor.match(twirlRegex);
if (!match) return flavor;
const content = match[1];
const sentences = [];
let currentSentence = '';
let inQuotes = false;
let escapeNext = false;
for (let i = 0; i < content.length; i++) {
const char = content[i];
if (escapeNext) {
currentSentence += char;
escapeNext = false;
continue;
}
if (char === '\\') {
escapeNext = true;
continue;
}
if (char === '"' && !escapeNext) {
inQuotes = !inQuotes;
if (!inQuotes && currentSentence.trim()) {
sentences.push(currentSentence.trim());
currentSentence = '';
}
} else if (char === ',' && !inQuotes) {
if (currentSentence.trim()) {
sentences.push(currentSentence.trim());
}
currentSentence = '';
} else {
currentSentence += char;
}
}
if (currentSentence.trim()) {
sentences.push(currentSentence.trim());
}
const filteredSentences = sentences
.map(s => s.trim())
.filter(s => s)
.map(s => s.replace(/^"|"$/g, ''));
return filteredSentences.length > 0
? filteredSentences[Math.floor(Math.random() * filteredSentences.length)]
: flavor;
} catch (e) {
console.error('Error parsing twirl flavor:', e);
return flavor;
}
};
// Achievement stats tracking
class AchievementStats {
constructor() {
this.visibleCount = 0;
this.completedVisible = 0;
this.hiddenCount = 0;
this.completedHidden = 0;
this.totalAchievements = 0;
this.validAchievements = 0;
}
countAchievement(achievement, isCompleted, isCheated) {
try {
this.totalAchievements++;
const isVisible = safeGet(achievement, 'visible') === "1";
const isCheatAchievement = safeGet(achievement, 'condition_name') === "cheat-menu-basepack";
// Skip cheat achievement unless cheated
if (isCheatAchievement && !isCheated) {
return false;
}
this.validAchievements++;
if (!isVisible && !isCheatAchievement) {
this.hiddenCount++;
if (isCompleted) this.completedHidden++;
} else if (isVisible) {
this.visibleCount++;
if (isCompleted) this.completedVisible++;
}
return true;
} catch (e) {
console.error('Error counting achievement:', e);
return false;
}
}
getCompletionStats(isCheated) {
const completionPercentage = isCheated ? 0 :
(this.visibleCount > 0 ? this.completedVisible / this.visibleCount : 0);
const hiddenBonus = this.completedHidden * 0.01;
return {
completionPercentage,
hiddenBonus,
visibleCompletion: `${this.completedVisible}/${this.visibleCount}`,
hiddenCompletion: `${this.completedHidden}/${this.hiddenCount}`
};
}
}
// Main execution
const main = () => {
const achievementsDiv = document.getElementById('achievements-list');
const statsDiv = document.getElementById('achievement-stats');
if (!achievementsDiv || !statsDiv) {
console.error('Required DOM elements not found');
return;
}
const achievementDatabase = window.GE.achievement_database;
const achievementTriggers = Harlowe.variable('$achievement_triggers') || [];
const cheated = Harlowe.variable('$cheated') === "yes";
const stats = new AchievementStats();
const hiddenMessages = [
"Hidden!", "With hidden achievements, you can get more than 100% completion.",
"Your achievement completion can go over 100% with a few hidden achievements.",
"Don't worry if you can't get all the hidden achievements.",
"Don't spoil the hidden achievements!", "Hidden achievements are not required to reach 100%.",
"Hidden achievements count as a bonus towards your completion percentage!",
"If I told you how to get the achievement, it wouldn't be a secret anymore.",
"All right, then. Keep your secrets.", "Good luck finding this one!",
"Try checking the tip jar for hints on hidden achievements.",
"You'll need multiple playthroughs to get all the hidden achievements.",
"It's a secret to everybody."
];
// Process all achievements
achievementDatabase.forEach((achievement, key) => {
try {
const isCompleted = achievementTriggers.includes(safeGet(achievement, 'condition_name'));
const isVisible = safeGet(achievement, 'visible') === "1";
const isCheatAchievement = safeGet(achievement, 'condition_name') === "cheat-menu-basepack";
// Count achievement stats
if (!stats.countAchievement(achievement, isCompleted, cheated)) {
return;
}
// Skip displaying cheat achievement if not cheated
if (isCheatAchievement && !cheated) {
return;
}
let row = document.createElement('div');
row.className = 'achievement-row';
if (isCompleted) {
// Completed achievement display
const flavorText = parseTwirlFlavor(safeGet(achievement, 'flavor'));
row.innerHTML = `
<table style="width:100%">
<tr>
<td style="width:25%"><strong>${safeGet(achievement, 'name')}</strong></td>
<td style="width:55%">${safeGet(achievement, 'hint')}</td>
<td style="width:10%">${safeGet(achievement, 'emoji', '💊')}${!isVisible ? '🤫' : ''}</td>
<td style="width:10%">${safeGet(achievement, 'pack_name')}</td>
</tr>
</table>
${flavorText ? `<center><em>${flavorText}</em></center>` : ''}
`;
} else if (isVisible) {
// Uncompleted visible achievement display
row.innerHTML = `
<table style="width:100%; opacity:0.5">
<tr>
<td style="width:25%">${safeGet(achievement, 'name')}</td>
<td style="width:55%">${safeGet(achievement, 'hint')}</td>
<td style="width:10%">🔒</td>
<td style="width:10%">${safeGet(achievement, 'pack_name')}</td>
</tr>
</table>
`;
} else if (!isCheatAchievement) {
// Hidden achievement display
const randomMessage = hiddenMessages[Math.floor(Math.random() * hiddenMessages.length)];
row.innerHTML = `
<table style="width:100%; opacity:0.5">
<tr>
<td style="width:25%">❓</td>
<td style="width:55%"><em>${randomMessage}</em></td>
<td style="width:10%">🔒</td>
<td style="width:10%">${safeGet(achievement, 'pack_name')}</td>
</tr>
</table>
`;
}
achievementsDiv.appendChild(row);
} catch (e) {
console.error('Error processing achievement:', e);
}
});
// Update stats display
try {
const { completionPercentage, hiddenBonus } = stats.getCompletionStats(cheated);
const palette = Harlowe.variable('$palette_colors') || [];
const color = palette[4] || 'inherit';
statsDiv.innerHTML = `
<div class="options" style="color: ${color}; font-size: 3vmin;">
<span class="shadow">Achievement Progress: ${Math.round(completionPercentage * 100)}%</span>
</div>
<div class="options" style="color: ${color}; font-size: 3vmin;">
<span class="shadow">🤫 Hidden Achievements: ${stats.completedHidden} / ${stats.hiddenCount}
${hiddenBonus > 0 ? `, ${hiddenBonus.toFixed(2)} boost to XP gain!` : ', no boost to XP gain.'}</span>
</div>
`;
// Update Harlowe variables
Harlowe.variable('$hidden_achievement_count', stats.completedHidden);
Harlowe.variable('$hidden_achievements_total', stats.hiddenCount);
Harlowe.variable('$visible_achievement_count', stats.visibleCount);
Harlowe.variable('$achievements_completed', stats.completedVisible);
Harlowe.variable('$completed_percentage', completionPercentage);
} catch (e) {
console.error('Error updating stats display:', e);
statsDiv.innerHTML = '<div class="options"><span class="shadow">Error displaying achievement stats</span></div>';
}
};
// Run main with error handling
try {
main();
} catch (e) {
console.error('Fatal error in achievements view:', e);
const statsDiv = document.getElementById('achievement-stats');
if (statsDiv) {
statsDiv.innerHTML = '<div class="options"><span class="shadow">Error loading achievements</span></div>';
}
}
})();
</script>
}
<!-- currently in use; applies flavor text beneath a completed achievement-->{
[($notification:"Loading achievements...")]<loading|(live:0.1s)[(replace:?loading)[(set:$visible_achievement_count to 0)(set:$achievements_completed to 0)(display:"Game Version")<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Achievements</span>]]</div><div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>{<table style="width:100%">
<tr><th style="width:25%"><span class='shadow'>Achievement</span></th>
<th style="width:55%"><span class='shadow'>Hint</span></th>
<th style="width:10%">💊</th>
<th style="width:10%"><span class='shadow'>Pack</span></th></tr></table>
($use_global: "$achievement_database", "window.GE.achievement_database", [(for: each _achievement_name, ...(datanames:$achievement_database))
[{(if:$achievement_triggers contains $achievement_database's (_achievement_name)'s condition_name and not (($achievement_triggers contains "cheat_menu_basepack" or $achievement_triggers contains "cheat-menu-basepack") and not (($achievement_database's (_achievement_name)'s condition_name is "cheat-menu-basepack") or ($achievement_database's (_achievement_name)'s condition_name is "cheat_menu_basepack"))))
[{(inc:'achievements_completed')}<table style="width:100%"><tr><td style="width:25%">**(print:($achievement_database's (_achievement_name))'s name)**</td>
<td style="width:55%">(print:($achievement_database's (_achievement_name))'s hint)</td>
<td style="width:10%">(print:($achievement_database's (_achievement_name))'s emoji)(if: $achievement_database's (_achievement_name)'s visible is "0")[(print:"🤫")]</td>
<td style="width:10%">(print:($achievement_database's (_achievement_name))'s pack_name)</td></tr></table><center>//(print:($achievement_database's (_achievement_name)'s flavor))//</center>{
(if:$achievement_database's (_achievement_name)'s visible is "1")[(inc:'visible_achievement_count')]}]
(else-if:$achievement_database's (_achievement_name)'s visible is "1" and not ($achievement_triggers contains $achievement_database's (_achievement_name)'s condition_name))
[{(inc:'visible_achievement_count')}<table style="width:100%;opacity:0.5"><tr>
<td style="width:25%">[(print:($achievement_database's (_achievement_name))'s name)]</td>
<td style="width:55%">(print:($achievement_database's (_achievement_name))'s hint)</td>
<td style="width:10%">🔒</td>
<td style="width:10%">(print:($achievement_database's (_achievement_name))'s pack_name)</td></tr></table>]
(else:)[(if: ($achievement_database's (_achievement_name)'s condition_name is not "cheat_menu_basepack") and ($achievement_database's (_achievement_name)'s condition_name is not "cheat-menu-basepack"))
[<table style="width:100%;opacity:0.5">
<tr><td style="width:25%">❓</td>
<td style="width:55%">//(twirl:"Hidden!", "With hidden achievements, you can get more than 100% completion.", "Your achievement completion can go over 100% with a few hidden achievements.", "Don't worry if you can't get all the hidden achievements.", "Don't spoil the hidden achievements!", "Hidden achievements are not required to reach 100%.", "Hidden achievements count as a bonus towards your completion percentage!", "If I told you how to get the achievement, it wouldn't be a secret anymore.", "All right, then. Keep your secrets.", "Good luck finding this one!", "Try checking the tip jar for hints on hidden achievements.", "You'll need multiple playthroughs to get all the hidden achievements.", "It's a secret to everybody.")//</td>
<td style="width:10%">🔒</td>
<td style="width:10%">(print:($achievement_database's (_achievement_name))'s pack_name)</td></tr></table>]]}]])}
{(display:"calculate completed percentage")}{(set:_score_bonus to ($hidden_achievement_count * 0.03))}
<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:3vmin")[<span class='shadow'>//Achievement Progress: (print:(round:$completed_percentage * 100))%//</span>]]</div>
<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:3vmin")[<span class='shadow'>🤫//Hidden Achievements: (print:$hidden_achievement_count) / (print:$hidden_achievements_total)(if:$hidden_achievement_count > 0)[, (print:_score_bonus) boost to XP gain!](else:)[, no boost to XP gain.]//</span>]]</div></div>(nl:2)
Thanks to the X-Change Life discord for helping brainstorm achievements!
<div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>](stop:)]
}{<div style='display:none;'>
(set:$achievement_condition_select to "pill-taken-basepack")
(display:"add achievement to lists")</div>
}{
Here's a reward: another X-Change Basic, on the house!
[(set:$pill_inventory's "Basic" to ($pill_inventory's "Basic" + 1))]
}{<div style='display:none;'>
(if: not ($achievement_triggers contains "first-workday-basepack"))
[
(set:$achievement_condition_select to "first-workday-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
Maybe try taking this Basic pill and coming in to work sometime?
[(set:$pill_inventory's "Basic" to ($pill_inventory's "Basic" + 1))]</div>
}{<div style='display:none;'>
(set:$side_effects_count to 0)
(set:_unique_effects to (a:))
(for: each _temp_effect, ...$character's "side effects")
[
(if:not (_unique_effects contains _temp_effect ))
[
(set:_unique_effects to it + (a:_temp_effect))
(inc:'side_effects_count')
]
]
</div>
}{<div style='display:none;'>
<!-- check amount of side effects; $side_effects_count
This is probably best counted here... due to a lack of unified side effect grant function.-->
(display:"side effects counter")
(if: $side_effects_count >= 5)[{
(set:$achievement_condition_select to "how-did-we-get-here-basepack")
(display:"add achievement to lists")
}]</div>
}{<div style='display:none;'>
<!-- Once again, this one probably *is* best counted here, since there's no unified stats checking function.-->
(if: ($stats's "blowjobs given" > 999))
[{(if: not ($achievement_triggers contains "sore-jaw-basepack"))[{
(set:$achievement_condition_select to "sore-jaw-basepack")
(display:"add achievement to lists")
}]}]</div>
}{<div style='display:none;'>
(if: (mood:"fucked silly"))[
(set:$achievement_condition_select to "fucked-silly-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
<!-- This could be checked at the end of the workday, or as part of the function that checks for you rep level
:: gain job sexual reputation
-->
(if:($sales_job's "status" is "hired") or ($sales_job's "status" is "demo") or ($sales_job's "status" is "secretary-only"))[{
(if:(datanames:$sales_job) contains "sexual reputation level")
[
(if:($sales_job's "sexual reputation level" is 6) and ($sales_job's "sales made" < 10))
[{
(set:$achievement_condition_select to "motel-6-basepack")
(display:"add achievement to lists")
}]
]
}]</div>
}{
Here's an Qualified Lead as a reward. You clearly need it!
[(set:$leads to $leads + (a:"qualified"))]
}{<div style='display:none;'>
(if:$gym_events contains "jia ff sex success")[
(set:$achievement_condition_select to "love-guru-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if:$pill_taken contains "Breeder")[ <!-- this condition may seem unnecessary, but what if there are other types of ruined orgasms in the future?-->
(set:$achievement_condition_select to "beg-for-it-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if: ($achievement_triggers contains "dark-magician-basepack") and not ($achievement_triggers contains "black-lotus-basepack"))[
<!-- this scan might take more time compute wise, so it's avoided here-->
<!-- scan through the card inventory and see if every number between 01 and 60 exists in it.-->
(if: ($card_inventory's length > 59))[
(set:_card_id_list to (a:"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "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", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60"))
(set:_card_id_list_found to 0)
(for: each _trading_card, ...$card_inventory)
[
(set:_card_id_achievement to (substring:_trading_card,1,2))
(if:_card_id_list contains _card_id_achievement)[
<!-- if it's found, then increment the found variable and remove from the id list-->
(set: _card_id_list_found to _card_id_list_found + 1)
(set: _subtract_array to (a:_card_id_achievement))
(set: _card_id_list to it - _subtract_array)
]
]
(if:_card_id_list_found >= 60)[
(set:$achievement_condition_select to "black-lotus-basepack")
(display:"add achievement to lists")
]
]
]</div>
}{<div style='display:none;'>
(if: (not ($achievement_triggers contains "dark-magician-basepack")))[ <!-- requires the black lotus to avoid running this check twice, just in case this is a slowdown source -->
<!-- this scan might take more time compute wise, so it's avoided here-->
<!-- scan through the card inventory and see if every number between 01 and 60 exists in it.-->
(if: ($card_inventory's length > 29))[
(set:_card_id_list to (a:"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "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", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60"))
(set:_card_id_list_found to 0)
(for: each _trading_card, ...$card_inventory)
[
(set:_card_id_achievement to (substring:_trading_card,1,2))
(if:_card_id_list contains _card_id_achievement)[
<!-- if it's found, then increment the found variable and remove from the id list-->
(set: _card_id_list_found to _card_id_list_found + 1)
(set: _subtract_array to (a:_card_id_achievement))
(set: _card_id_list to it - _subtract_array)
(print:_card_id_achievement)(print:" ")(print:_trading_card)(nl:1)
]
]
(print:_card_id_list_found)
(if:_card_id_list_found >= 30)[
(set:$achievement_condition_select to "dark-magician-basepack")
(display:"add achievement to lists")
]
]
]</div>
}
<!--using a different passage tag since there are so many slowing down advance_day_pre already...
Could this have a bug? -->{<div style='display:none;'>
(if: not ($achievement_triggers contains "town-bicycle-basepack"))[
(set:_fuckbuddy_counter to 0)
(if: $fuckbuddies is not 0)
[(for: each _fuckbuddy, ...$fuckbuddies)[<!-- bug here; will complain with your first fuckbuddy...-->
(set:_fuckbuddy_counter to it + 1)
]]
(if:_fuckbuddy_counter >= 5)[
(set:$achievement_condition_select to "town-bicycle-basepack")
(display:"add achievement to lists")
]
]</div>
}{==
<div style='display:none;'>
<!-- This passage exists because the passage tags macro has no mechanism for an old passage (which previously had a tag) to disappear.
Therefore, when a tag such as [nightly] or [daily] which produces whitespace loses a passage, you'll see an error if you delete a passage which used those tags.
The passage below was deprecated, but we still need this one to exist to keep compatibility with previous saves.
-->
</div>{<div style='display:none;'>
(if:length of $fuckbuddies >= 5)
[
(set:$achievement_condition_select to "town-bicycle-basepack")
(display:"add achievement to lists")
]
</div>}
<!-- haven't figured this one out yet...
still need the right variable for checking if cum is visible. [advance_day_pre] [nightly]-->{<div style='display:none;'>
<!-- (if:$character's "status" is "cum")[
(inc:'cum_days_in_row')
](else:)[
(set:$cum_days_in_row to 0)
]
(if:$cum_days_in_row >= 3)[
(set:$achievement_condition_select to "creme-brulee-basepack")
(display:"add achievement to lists")
]--></div>
}{<div style='display:none;'>
(if:$location_params's "spike passage" is "workplace spike")[(set:$getting_spiked to 1)]
</div>
}{<div style='display:none;'>
(if:$getting_spiked is 1)
[
(if:$location_params's "spike passage" is "workplace spike")
[
(set:$achievement_condition_select to "reputation-matters-basepack")
(display:"add achievement to lists")
]
]
(set:$getting_spiked to 0)
</div>}{<div style='display:none;'>
(if:$getting_spiked is 1)[(set:$getting_spiked to 0)]
</div>
}
<!--[work_intro]-->{<div style='display:none;'>
<!-- check if you enter work as male, then check if you leave as female the same day
without any changes to your inventory-->
(if:(is_male:))[
(set:$workday_achievement_check to $day)
(set:$workday_achievement_inventory to $pill_inventory)
]</div>
}
<!--[work_exit]-->{<div style='display:none;'>
(if:(is_fem:) and $workday_achievement_check is $day)[
(if:$workday_achievement_inventory is $pill_inventory)[
(set:$achievement_condition_select to "reputation-matters-basepack")
(display:"add achievement to lists")
]
]</div>
}
<!-- if you're female and on a breeder pill, count the length of time it's been plus the sexual encounters
if the time is within the interval of days and you turn are male, while sexual encounters are over 5, then award the achievement-->{<div style='display:none;'>
<!-- note: because this happens with nightly, it can get incremented extra time!!!-->
(set: $self_control_sex_tracker to ($stats's "sex as girl" - $self_control_pill_start_count))
(set: $self_control_female_days to (cond:
(is_fem:) and (is_breeder:) and $pregnancy_enabled is "Pregnancy Enabled: True",
$self_control_female_days + 1,
(is_male:) and $self_control_sex_tracker < 5,
0,
$self_control_female_days
))
(if: (is_male:) and $pregnancy_enabled is "Pregnancy Enabled: True" and $self_control_female_days >= 7 and $self_control_female_days < 30 and $self_control_sex_tracker >= 5)
[
(set: $achievement_condition_select to "self-control-basepack")
(display: "add achievement to lists")
]</div>}{<div style='display:none;'>
(set:$self_control_pill_start_count to $stats's "sex as girl")
(set:$self_control_sex_tracker to 0)
</div>}{<div style='display:none;'>
(if: not ($achievement_triggers contains "fertilizer-basepack"))
[
<!-- check for kendra, gabbie, harley, leah, mariselle -->
(set:_bar_girls_fucked to 0)
<!--
Error: these checks would inadvertently be counted twice.
Going to remove these, and leave the generic check in the place instead.-->
<!--(if: $global_events contains "kendra bargirl fuck")[(set:_bar_girls_fucked to it + 1)]
(if:$global_events contains "gabbie bargirl fuck")[(set:_bar_girls_fucked to it + 1)]
(if:$global_events contains "harley bargirl fuck")[(set:_bar_girls_fucked to it + 1)]
(if:$global_events contains "leah bargirl fuck")[(set:_bar_girls_fucked to it + 1)]
(if:$global_events contains "mariselle bargirl fuck")[(set:_bar_girls_fucked to it + 1)]-->
(if:_bar_girls_fucked < 3)[
(if:$global_events's length >= 3)
[
(for: each _event, ...$global_events) <!-- This for loop to check for generic bar girl fuck events is really only meant for situations with modded bargirls.-->
[
(set:_event_type to (substring:_event, -12, -1))
(if:_event_type is "bargirl fuck")[(set:_bar_girls_fucked to it + 1)]
]
]
]
(if:_bar_girls_fucked >= 3)
[
(set:$achievement_condition_select to "fertilizer-basepack")
(display:"add achievement to lists")
]
]
</div>
}{<div style='display:none;'>
(if: not ($achievement_triggers contains "smooth-operator-basepack"))[
<!-- check bar girls (including modded)-->
(if: length of (find:_event where _event contains "bargirl lowstats fuck",...$global_events) >= 3)[
(set:$achievement_condition_select to "smooth-operator-basepack")
(display:"add achievement to lists")
]
]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "risky-business-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(if:$his_satisfaction > 9)[<!-- this one should always be over 9 but checking just in case -->
(set:$achievement_condition_select to "kingda-ka-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if:$character's "reluctance" is 0)[<!-- this one should always be over 9 but checking just in case -->
(set:$achievement_condition_select to "curb-your-enthusiasm-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if: $global_events contains "jungle waterfall hikers success")
[
(set:$achievement_condition_select to "outdoor-boudoir-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if: not ($achievement_triggers contains "made-pharmacist-basepack"))
[
(set:$achievement_condition_select to "made-pharmacist-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if: ($stats's "creampies received" is 1) or ($stats's "creampies received" is 0))
[(if:$pregnancy_notification is "Impregnation Notifications: Enabled")
[
(set:$achievement_condition_select to "early-pregnancy-basepack")
(display:"add achievement to lists")
]
(else-if:$pregnancy_notification is "Impregnation Notifications: Disabled")
[(set:$gotta_be_kidding_later to "true")]]
</div>}{<div style='display:none;'>
(if:$gotta_be_kidding_later is "true")[
(set:$achievement_condition_select to "early-pregnancy-basepack")
(display:"add achievement to lists")
(set:$gotta_be_kidding_later to "completed")]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "secretary-punishment-basepack")
(display:"add achievement to lists")</div>
}{<div style='display:none;'>
(set:$achievement_condition_select to "pick-your-poison-basepack")
(display:"add achievement to lists")</div>
}{<div style='display:none;'>
(set:$achievement_condition_select to "double-trouble-basepack")
(display:"add achievement to lists")</div>
}{<div style='display:none;'>
<script>
$words_guessed = window.GE.getWordsGuessed();
</script>
(if: $words_guessed's length is 1)[
(set:$achievement_condition_select to "lucky-basepack")
(display:"add achievement to lists")
(set:$achievement_condition_select to "skill-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
<script>
$words_guessed = window.GE.getWordsGuessed();
</script>
(if: $words_guessed's length is 2)[
(set:$achievement_condition_select to "skill-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if:(cock:"girth","npc") is 10 and (cock:"length","npc") is 10 and (cock:"balls","npc") is 10)[
(set:$achievement_condition_select to "moby-dick-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if:(count:$events,"orgasm") is 8)[
(set:$achievement_condition_select to "making-her-sing-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
(if:(count:$events,"orgasm") > 2)[
(if: (($character's "race" is not "black") and ($npc's "traits" contains "only bbc")) or (($character's "race" is "black") and ($npc's "traits" contains "no bbc")))[
(set:$achievement_condition_select to "overcoming-biases-basepack")
(display:"add achievement to lists")]
]
</div>}{<div style='display:none;'>
(if:(checkdm:$npc,"id","is","mariselle"))[
(if:(count:$events,"orgasm") is 3)[
(set:$achievement_condition_select to "cock-star-basepack")
(display:"add achievement to lists")
]
]
</div>}{<div style='display:none;'>
(if:$today_events contains "mariselle aquarium")[
(if: not ($achievement_triggers contains "sea-pickle-basepack"))[
(set:$achievement_condition_select to "sea-pickle-basepack")
(display:"add achievement to lists")
]
]
</div>}{<!-- note: these rewards are deprecated. Sorry!-->
You feel like you've unlocked the best way to do secretary work. Enjoy +5 points whenever you're working as a secretary from now on!
(set:$secretary_SKILL_bonus to 5)
}{
<div style='display:none;'>
(if:$sales_job's "status" is "secretary-only")
[(set:$achievement_condition_select to "pam-would-be-proud-basepack")
(display:"add achievement to lists")
]
</div>
}{
<div style='display:none;'>
(if: ((cock:"girth") is 10) and ((cock:"length") is 10) and ((cock:"balls") is 10))
[(set:$achievement_condition_select to "anaconda-basepack")
(display:"add achievement to lists")
]
</div>
}{
<div style='display:none;'>
(set:$achievement_condition_select to "peggy-olson-powers-basepack")
(display:"add achievement to lists")
</div>
}{
<div style='display:none;'>
(if:$sales_job's "sexual reputation level" >= 4)[
(set:$achievement_condition_select to "priorities-basepack")
(display:"add achievement to lists")]
</div>
}{
(if:$stepdad's "events" contains "chores pill 1")
[
(if: not ($achievement_triggers contains "what-are-you-doing-stepdad-basepack"))[
(set:$achievement_condition_select to "what-are-you-doing-stepdad-basepack")
(display:"add achievement to lists")
]
]
}{
(if:$stepdad's "events" contains "chores pill 3")
[
(if: not ($achievement_triggers contains "throw-in-the-towel-basepack"))[
(set:$achievement_condition_select to "throw-in-the-towel-basepack")
(display:"add achievement to lists")
]
]
}{
(if:$stepsis's "coffee" contains "hj cum" and not ($achievement_triggers contains "what-are-you-doing-stepbro-basepack"))
[
(set:$achievement_condition_select to "what-are-you-doing-stepbro-basepack")
(display:"add achievement to lists")
]
}{<div style='display:none;'>
(set:$achievement_condition_select to "stepdad-cum-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(if:$office_events contains "hnr end failure" and not ($achievement_triggers contains "im-ready-basepack"))[
(set:$achievement_condition_select to "im-ready-basepack")
(display:"add achievement to lists")]
</div>}{<div style='display:none;'>
(if:$global_events contains "dumb bitch kept brain")
[
(set:$achievement_condition_select to "neurogasm-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
(if:$global_events contains "cubera")
[
(set:$achievement_condition_select to "shark-tale-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "safety-never-takes-a-holiday-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(if: $global_events contains "mall cop took virginity")
[
(set:$achievement_condition_select to "the-bird-scene-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "sure-you-want-it-back-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(if: $global_events contains "quoqac sex success")
[
(set:$achievement_condition_select to "goo-lagoon-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(if: $global_events contains "quoqac breeder disappoint")
[
(set:$achievement_condition_select to "not-mad-just-disappointed-basepack")
(display:"add achievement to lists")
]</div>
}{<div style='display:none;'>
(set:$achievement_condition_select to "busted-bettor-basepack")(display:"add achievement to lists")</div>
}{<div style='display:none;'>
(set:$achievement_condition_select to "vanquished-vixens-basepack")
(display:"add achievement to lists")
</div>
}{<div style='display:none;'>
(if: $global_events contains "04 club sluthole win first time")
[
(set:$achievement_condition_select to "anonymous-basepack")
(display:"add achievement to lists")
]
</div>
}{<div style='display:none;'>
(if: $global_events contains "bruce cum cure reduce")
[
(set:$achievement_condition_select to "cumslut-hell-basepack")
(display:"add achievement to lists")
]
</div>
}{<div style='display:none;'>
(if:$select is "Cum-Cure")[(set:$time_since_cum_cure_taken to 0)]
</div>}{
(if:(pill:"Cum-Cure"))[(inc:'time_since_cum_cure_taken')]
}{<div style='display:none;'>
(set:$achievement_condition_select to "speedrun-fun-basepack")
(display:"add achievement to lists")
</div>
}{<div style='display:none;'>
(if:$cock_roulette_win_streak >= 3)
[
(set:$achievement_condition_select to "house-edging-basepack")
(display:"add achievement to lists")
]
</div>
}{<div style='display:none;'>
(if: length of $porn > 7)
[
(set:$achievement_condition_select to "pornography-historian-basepack")
(display:"add achievement to lists")
]
</div>
}{<div style='display:none;'>
(set:$achievement_condition_select to "poking-the-bear-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "resistance-isnt-futile-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "resistance-is-futile-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
<!-- Note: Bruce always adds one ground rule to match your rules. So really, the number of ground rules you've made is the length / 2.
IE, if you request "no creampies", he'll also set a rule. So you'll get "no always pull out,50 per orgasm" in the list.-->
(if:($npcs_men's "bruce") contains "ground rules")[
(if: length of $npcs_men's "bruce"'s "ground rules" > 5)
[
(put: "agree-to-disagree-basepack" into $achievement_condition_select)
(display:"add achievement to lists")
]]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "daddys-property-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "cumpletionist-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "gym-rat-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "ripped-pants-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(if: (pill:"Basic") and (is_preg:) and (knows_preg:))
[
(set:$achievement_condition_select to "basically-impossible-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "anchor-arms-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "target-acquired-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(unless: $movie_night_enjoyment_tracker is 0)[
(if: $movie_night_enjoyment_tracker's "You" >= 1 and $movie_night_enjoyment_tracker's "Alexia" >= 1)
[
(set:$achievement_condition_select to "late-fees-basepack")
(display:"add achievement to lists")
]](else:)[
(display:"movie night enjoyment tracker initialize or reset")]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "nothin-but-net-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(if:$npc's "id" is "gabbie" and $bar_party's "times" >= 1)
[
(set:$achievement_condition_select to "share-the-load-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
<!-- global events can contain either "stepdad sex secretary" or "alexia motel"-->
(if:$global_events contains "alexia motel" and $global_events contains "stepdad sex secretary")
[
(set:$achievement_condition_select to "all-in-the-family-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
(if:$stepsis's "events" contains "sex ok")[
(set:$achievement_condition_select to "gettin-randy-basepack")
(display:"add achievement to lists")
]
</div>}
<!-- note: this is just for easier copy and pasting, since this format is used so much-->{<div style='display:none;'>
(set:$achievement_condition_select to "bump-set-spike-basepack")
(display:"add achievement to lists")
</div>}
<!-- note: this is just for easier copy and pasting, since this format is used so much-->{<div style='display:none;'>
(set:$achievement_condition_select to "digging-deep-basepack")
(display:"add achievement to lists")
</div>}
<!-- note: this is just for easier copy and pasting, since this format is used so much-->{<div style='display:none;'>
(set:$achievement_condition_select to "easy-breezy-basepack")
(display:"add achievement to lists")
</div>}{=
<div style='display:none;'>
(set:$achievement_condition_select to "beauty-queen-basepack")
(display:"add achievement to lists")
<!-- note: this is just for easier copy and pasting, since this format is used so much-->{<div style='display:none;'>
(if:(pill:"Bimbo") and (get_intellect:"level") is 10)
[
(set:$achievement_condition_select to "empty-headed-basepack")
(display:"add achievement to lists")
]
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "hucow-forever-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "lactation-station-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(set:$achievement_condition_select to "missile-command-basepack")
(display:"add achievement to lists")
</div>}{<div style='display:none;'>
(if: (datanames:$npc) contains "tags")
[
(if:$npc's "tags" contains "breeder")
[
(set:$achievement_condition_select to "adult-swimmers-basepack")
(display:"add achievement to lists")
]
]
</div>}{=
<div style='display:none;'>
(set:$achievement_condition_select to "five-card-charlie-basepack")
(display:"add achievement to lists")
</div>{=
<div style='display:none;'>
(set:$achievement_condition_select to "nope-chuck-testa-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "really-stepsister-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "kinda-your-fault-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "budding-exhibitionist-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "physical-education-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "blackmail-immunity-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "profit-of-regret-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "script-kiddies-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "full-roster-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "euro-trash-heap-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "tropic-thunder-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "haileys-hangers-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "rosy-cheeks-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "paperwork-princess-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "office-pushover-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "retro-gamer-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "the-king-of-fighters-basepack")
(display:"add achievement to lists")
</div>{=<div style='display:none;'>
(set:$achievement_condition_select to "daddys-home-basepack")
(display:"add achievement to lists")
</div>{<div style='display:none;'>
(if: $cheated is "yes")[
(set:$achievement_condition_select to "cheat-menu-basepack")
(display:"add achievement to lists")
]</div>
}
<!-- note: this is just for easier copy and pasting, since this format is used so much-->{=<div style='display:none;'>
(set:$achievement_condition_select to "")
(display:"add achievement to lists")
</div>{
(replace:?audio_button)[(link:$audio_toggle)[(display:"audio toggle")(display:"audio button refresh")]]
}{
(if:$audio_toggle is "🎶")[(set:$audio_toggle to "🔇")(masteraudio: 'stopall')](else-if:$audio_toggle is "🔇")[(set:$audio_toggle to "🔊")(masteraudio: 'stopall')](else:)[(set:$audio_toggle to "🎶")]
(set_storage:"local","audio_toggle", $audio_toggle)(set:$muted to (cond:$audio_toggle is "🔇","muted=''","onloadstart='this.volume=window.getVideoVolume?.()??1'"))
}{($show_tooltip:[(link-repeat:"🔊")[(display:"audio slider alert")]],[Opens the audio controls.])}{
<style>
.audio-slider-container {
font-family: Helvetica, Arial, sans-serif;
max-width: 300px;
margin: 20px auto;
padding-right: 2em;
}
.audio-slider-item {
margin-bottom: 15px;
}
.audio-slider-label {
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
.audio-slider-input {
width: 100%;
}
.mute-checkbox-container {
margin-top: 20px;
}
</style>
<div class="audio-slider-container">
<div class="audio-slider-item">
<div class="audio-slider-label">
<span>Master</span>
<span id="masterValue">100</span>
</div>
<input type="range" id="masterSlider" class="audio-slider-input" min="0" max="100" value="100">
</div>
<div class="audio-slider-item">
<div class="audio-slider-label">
<span>Music</span>
<span id="musicValue">100</span>
</div>
<input type="range" id="musicSlider" class="audio-slider-input" min="0" max="100" value="100">
</div>
<div class="audio-slider-item">
<div class="audio-slider-label">
<span>Sound Effects</span>
<span id="seValue">100</span>
</div>
<input type="range" id="seSlider" class="audio-slider-input" min="0" max="100" value="100">
</div>
<div class="audio-slider-item">
<div class="audio-slider-label">
<span>Ambience</span>
<span id="ambienceValue">100</span>
</div>
<input type="range" id="ambienceSlider" class="audio-slider-input" min="0" max="100" value="100">
</div>
<div class="audio-slider-item">
<div class="audio-slider-label">
<span>Sex Loops</span>
<span id="sexLoopsValue">100</span>
</div>
<input type="range" id="sexLoopsSlider" class="audio-slider-input" min="0" max="100" value="100">
</div>
<div class="mute-checkbox-container">
<label>
<input type="checkbox" id="muteWhenInactive" checked>
Mute when inactive (Can't mute video)
</label>
</div>
</div>
<script>
const sliders = [
{ id: 'masterSlider', valueId: 'masterValue', storageKey: 'audioMaster' },
{ id: 'musicSlider', valueId: 'musicValue', storageKey: 'audioMusic' },
{ id: 'seSlider', valueId: 'seValue', storageKey: 'audiose' },
{ id: 'ambienceSlider', valueId: 'ambienceValue', storageKey: 'audioAmbience' },
{ id: 'sexLoopsSlider', valueId: 'sexLoopsValue', storageKey: 'audioSexLoops' }
];
let debounceTimer;
function debounce(func, delay) {
return function() {
clearTimeout(debounceTimer);
debounceTimer = setTimeout(func, delay);
}
}
const debouncedUpdateAllAudioVolumes = debounce(function() {
if (typeof window.updateAllAudioVolumes === 'function') {
window.updateAllAudioVolumes();
} else {
console.warn('updateAllAudioVolumes function not found');
}
}, 500);
function updateSlider(slider) {
const input = document.getElementById(slider.id);
const valueSpan = document.getElementById(slider.valueId);
const storageKey = '%variable-A395D6EB-1B75-425F-A08C-63E866B6F337-' + slider.storageKey;
// Load initial value from XCLStorageHandler or use default
const storedValue = XCLStorageHandler.getItemSync(storageKey);
input.value = storedValue !== null ? storedValue : 100;
valueSpan.textContent = input.value;
input.addEventListener('input', function() {
valueSpan.textContent = this.value;
XCLStorageHandler.setItemSync(storageKey, this.value);
debouncedUpdateAllAudioVolumes();
});
}
sliders.forEach(updateSlider);
// Handle mute when inactive checkbox
const muteWhenInactiveCheckbox = document.getElementById('muteWhenInactive');
const muteWhenInactiveStorageKey = '%variable-A395D6EB-1B75-425F-A08C-63E866B6F337-muteWhenInactive';
// Load initial value from XCLStorageHandler or use default (true)
const storedMuteWhenInactive = XCLStorageHandler.getItemSync(muteWhenInactiveStorageKey);
// Parse the stored value as a boolean
const initialValue = storedMuteWhenInactive === null ? true :
typeof storedMuteWhenInactive === 'boolean' ? storedMuteWhenInactive :
storedMuteWhenInactive === 'true';
// Set the checkbox state
muteWhenInactiveCheckbox.checked = initialValue;
muteWhenInactiveCheckbox.addEventListener('change', function() {
// Store as boolean
const shouldMute = Boolean(this.checked);
XCLStorageHandler.setItemSync(muteWhenInactiveStorageKey, shouldMute);
if (typeof window.updateMuteWhenInactive === 'function') {
window.updateMuteWhenInactive(shouldMute);
} else {
console.warn('updateMuteWhenInactive function not found');
}
});
// Sync with audio manager's current state
if (window.xclAudioManager) {
// Update audio manager with current setting
window.xclAudioManager.updateMuteWhenInactive(initialValue);
} else {
console.warn('Audio manager not found when initializing mute checkbox');
}
</script>
}{
($char_passage:"breathing ambience",[(if:(a:"rae","jade","liya") contains $character's "id")[(set:$var to "b")](else:)[(set:$var to "a")]],[])
(if:(is_fem:) and $character's "arousal" >= 4)[(set:$breathing_sex_loop to ($character's "arousal" - 3) of
(a:"level 1","level 1","level 2","level 3","level 4","level 5","level 5"))(set:$sex_loop to ($character's "arousal" - 3) of
(a:"breathing 1","breathing 1","breathing 2","breathing 3","breathing 4","breathing 5","breathing 5") + " " + $var)
(newtrack:$sex_loop,'aud/ambience/breathing/' + $var + '/' + $breathing_sex_loop +'.mp3')
(display:"play sex loop")](else:)[(set:$sex_loop to 0)(display:"play sex loop")]
}{
($char_passage:"breathing ambience force",[(if:(a:"rae","jade","liya") contains $character's "id")[(set:$var to "b")](else:)[(set:$var to "a")]],[])
(set:$breathing_sex_loop to "level " + (text:$param))
(set:$sex_loop to "breathing " + (text:$param))
(unless:(istrack:$sex_loop))[(replacetrack:$sex_loop,'aud/ambience/breathing/' + $var + '/' + $breathing_sex_loop +'.mp3')]
(display:"play sex loop")
(set:$param to 1)
}{
(unless:(istrack:"0"))[
(newtrack:"0","aud/se/silence.mp3","se")
(newtrack:"achievement","aud/se/achievement.mp3","se")
(newtrack:"makeup items","aud/se/makeup items.mp3","se")
(newtrack:"touch up makeup","aud/se/touch up makeup.mp3","se")
(newtrack:"nothing","aud/se/silence.mp3","se")
(newtrack:"day male saturday","aud/music/day/male/saturday.mp3","music")
(newtrack:"food court ambience","aud/ambience/food court.mp3","ambience")
(newtrack:'morning rain ambience','aud/ambience/house/morning rain.mp3')
(newtrack:"mall ambience","aud/ambience/mall/mall.mp3","ambience")
(newtrack:"clothing ambience","aud/ambience/mall/clothing.mp3","ambience")
(newtrack:"changing room ambience","aud/ambience/mall/changing room.mp3","ambience")
(newtrack:"mall muffled ambience","aud/ambience/mall/mall muffled.mp3","ambience")
(newtrack:"cafe","aud/ambience/mall/cafe.mp3","ambience")
(newtrack:"laundromat ambience","aud/ambience/mall/laundromat.mp3","ambience")
(newtrack:"vending machine ambience","aud/ambience/mall/vending machine.mp3","ambience")
(newtrack:"potion shop ambience","aud/ambience/mall/potion shop.mp3","ambience")
(newtrack:"new-u ambience","aud/ambience/mall/machine/new-u ambience.mp3","ambience")
(newtrack:"office ambience","aud/ambience/office/office 1.mp3","ambience")
(newtrack:"break room ambience","aud/ambience/office/break room.mp3","ambience")
(newtrack:"office muffled ambience","aud/ambience/office/office muffled.mp3","ambience")
(newtrack:"bar ambience","aud/ambience/bar/bar.mp3","ambience")
(newtrack:"bar quiet ambience","aud/ambience/bar/bar quiet.mp3","ambience")
(newtrack:"bar muffled ambience","aud/ambience/bar/bar muffled.mp3","ambience")
(newtrack:"car ambience","aud/ambience/driving/car.mp3","ambience")
(newtrack:"factory ambience","aud/ambience/factory.mp3","ambience")
(newtrack:"city ambience","aud/ambience/city.mp3","ambience")
(newtrack:"morning","aud/ambience/house/morning.mp3","ambience")
(newtrack:"outdoors crowd ambience","aud/ambience/outdoors crowd.mp3","ambience")
(newtrack:'night rain ambience','aud/ambience/house/night rain.mp3')
(newtrack:'night storm ambience','aud/ambience/night storm.mp3')
(newtrack:"indoors afternoon","aud/ambience/indoors afternoon.mp3","ambience")
(newtrack:"outdoors city night ambience","aud/ambience/outdoors city night.mp3","ambience")
(newtrack:"outdoors ocean night ambience","aud/ambience/outdoors ocean night.mp3","ambience")
(newtrack:"outdoors ocean night rain ambience","aud/ambience/outdoors ocean night rain.mp3","ambience")
(newtrack:"indoors ocean night rain ambience","aud/ambience/indoors ocean night rain.mp3","ambience")
(newtrack:"outdoors ocean dawn ambience","aud/ambience/outdoors ocean dawn.mp3","ambience")
(newtrack:"unnerving","aud/ambience/unnerving.mp3","ambience")
(newtrack:"shower","aud/ambience/house/shower.mp3","ambience")
(newtrack:"home bathroom","aud/ambience/house/bathroom.mp3","ambience")
(newtrack:"bedroom","aud/ambience/house/bedroom.mp3","ambience")
(newtrack:"laundry","aud/ambience/house/laundry.mp3","ambience")
(newtrack:"computer","aud/ambience/house/computer.mp3","ambience")
(newtrack:"door knock","aud/se/door knock.mp3","se")
(newtrack:"heartbeat","aud/ambience/heartbeat.mp3","ambience")
(newtrack:"beach ambience","aud/ambience/beach/beach.mp3","ambience")
(newtrack:"rain ambience","aud/ambience/rain.mp3","ambience")
(newtrack:"gym ambience","aud/ambience/gym/gym ambience.mp3","ambience")
(newtrack:"gym ambience muffled","aud/ambience/gym/gym ambience muffled.mp3","ambience")
(newtrack:"locker room ambience","aud/ambience/gym/locker room ambience.mp3","ambience")
(newtrack:"sauna ambience","aud/ambience/gym/sauna ambience.mp3","ambience")
(newtrack:"outdoors morning ambience","aud/ambience/outdoors morning.mp3","ambience")
(newtrack:"outdoors evening ambience","aud/ambience/outdoors evening.mp3","ambience")
(newtrack:"evening home","aud/ambience/house/evening.mp3","ambience")
(newtrack:"bar","aud/music/original/bar.mp3","music")
(newtrack:"title","aud/music/original/title.mp3","music")
(newtrack:"house","aud/music/original/house.mp3","music")
(newtrack:"gym","aud/music/original/gym.mp3","music")
(newtrack:"bad dream","aud/music/original/sad.mp3","music")
(newtrack:"bar dance buildup","aud/music/bar/dance/bar dance buildup.mp3","music")
(newtrack:"interrupt","aud/se/quicktime/interrupt.mp3","se")
(newtrack:"end interrupt","aud/se/quicktime/end interrupt.mp3","se")
(newtrack:"ui click 1","aud/se/ui/click 1.mp3","se")
(newtrack:"ui click 2","aud/se/ui/click 2.mp3","se")
(newtrack:"ui click 3","aud/se/ui/click 1.mp3","se")
(newtrack:"ui click 4","aud/se/ui/click 2.mp3","se")
(newtrack:"ui good","aud/se/ui/good.mp3","se")
(newtrack:"shuffle","aud/se/ui/shuffle.mp3","se")
(newtrack:"wine","aud/se/drink/wine.mp3","se")
(newtrack:"whisky","aud/se/drink/whisky.mp3","se")
(newtrack:"tequila","aud/se/drink/tequila.mp3","se")
(newtrack:"fruity cocktail","aud/se/drink/fruity cocktail.mp3","se")
(newtrack:"robot cocktail","aud/se/drink/robot cocktail.mp3","se")
(newtrack:"drink","aud/se/drink/drink.mp3","se")
(newtrack:"drink tequila","aud/se/drink/drink tequila.mp3","se")
(newtrack:"beer","aud/se/drink/beer.mp3","se")
(newtrack:"champagne","aud/se/drink/champagne.mp3","se")
(newtrack:"record scratch","aud/se/record scratch.mp3","se")
(newtrack:"card","aud/se/card.mp3","se")
(newtrack:"card back","aud/se/card back.mp3","se")
(newtrack:"oh my god","aud/se/oh my god.mp3","se")
(newtrack:"kaching","aud/se/kaching.mp3","se")
(newtrack:"camera","aud/se/camera.mp3","se")
(newtrack:"drain","aud/se/drain.mp3","se")
(newtrack:"zap","aud/se/zap.mp3","se")
(newtrack:"transform","aud/se/transform.mp3","se")
(newtrack:"f2f transform","aud/se/f2f transform.mp3","se")
(newtrack:"alert","aud/se/alert.mp3","se")
(newtrack:"dice","aud/se/dice.mp3","se")
(newtrack:"skill up","aud/se/skill up.mp3","se")
(newtrack:"pleasure","aud/se/pleasure.mp3","se")
(newtrack:"fast heartbeat","aud/se/fast heartbeat.mp3","se")
(newtrack:"car door","aud/se/car door.mp3","se")
(newtrack:"open pack","aud/se/open pack.mp3","se")
(newtrack:"bruh","aud/se/bruh.mp3","se")
(newtrack:"handbag","aud/se/handbag.mp3","se")
(newtrack:"defense","aud/se/defense.mp3","se")
(newtrack:"sink","aud/se/sink.mp3","se")
(newtrack:"dominating 1","aud/se/dominating 1.mp3","se")
(newtrack:"dominating 2","aud/se/dominating 2.mp3","se")
(newtrack:"dominating 3","aud/se/dominating 3.mp3","se")
(newtrack:"doorbell","aud/se/doorbell.mp3","se")
(newtrack:"signature","aud/se/signature.mp3","se")
(newtrack:"phone call","aud/se/phone call.mp3","se")
(newtrack:"phone hang up","aud/se/hang up.mp3","se")
(newtrack:"fire 1","aud/se/fire 1.mp3","se")
(newtrack:"fire 2","aud/se/fire 2.mp3","se")
(newtrack:"fire 3","aud/se/fire 3.mp3","se")
(newtrack:"page 1","aud/se/page 1.mp3","se")
(newtrack:"page 2","aud/se/page 2.mp3","se")
(newtrack:"page 3","aud/se/page 3.mp3","se")
(newtrack:"squeeze 1","aud/se/squeeze/squeeze 1.mp3","se")
(newtrack:"squeeze 2","aud/se/squeeze/squeeze 2.mp3","se")
(newtrack:"squeeze 3","aud/se/squeeze/squeeze 3.mp3","se")
(newtrack:"squeeze 4","aud/se/squeeze/squeeze 4.mp3","se")
(newtrack:"squeeze 5","aud/se/squeeze/squeeze 5.mp3","se")
(newtrack:"squeeze 6","aud/se/squeeze/squeeze 6.mp3","se")
(newtrack:"squeeze 7","aud/se/squeeze/squeeze 7.mp3","se")
(newtrack:"slap 1","aud/se/slap/slap 1.mp3","se")
(newtrack:"slap 2","aud/se/slap/slap 2.mp3","se")
(newtrack:"slap 3","aud/se/slap/slap 3.mp3","se")
(newtrack:"slap 4","aud/se/slap/slap 4.mp3","se")
(newtrack:"gasp 1","aud/se/gasp/gasp 1.mp3","se")
(newtrack:"gasp 2","aud/se/gasp/gasp 2.mp3","se")
(newtrack:"gasp 3","aud/se/gasp/gasp 3.mp3","se")
(newtrack:"gasp 4","aud/se/gasp/gasp 4.mp3","se")
(newtrack:"gasp 5","aud/se/gasp/gasp 5.mp3","se")
(newtrack:"gasp 6","aud/se/gasp/gasp 6.mp3","se")
(newtrack:"glass","aud/se/glass.mp3","se")
(newtrack:"glass lift","aud/se/glass lift.mp3","se")
(newtrack:"female chuckle 1","aud/se/laugh/female chuckle 1.mp3","se")
(newtrack:"female chuckle 2","aud/se/laugh/female chuckle 2.mp3","se")
(newtrack:"female chuckle 3","aud/se/laugh/female chuckle 3.mp3","se")
(newtrack:"female chuckle 4","aud/se/laugh/female chuckle 4.mp3","se")
(newtrack:"female group 1","aud/se/laugh/female group 1.mp3","se")
(newtrack:"female group 2","aud/se/laugh/female group 1.mp3","se")
(newtrack:"female group 3","aud/se/laugh/female group 1.mp3","se")
(newtrack:"female group 4","aud/se/laugh/female group 1.mp3","se")
(newtrack:"mixed group 1","aud/se/laugh/mixed group 1.mp3","se")
(newtrack:"mixed group 2","aud/se/laugh/mixed group 2.mp3","se")
(newtrack:"mixed group 3","aud/se/laugh/mixed group 3.mp3","se")
(newtrack:"mixed group 4","aud/se/laugh/mixed group 4.mp3","se")
(newtrack:"female hello professional","aud/se/greetings/female hello professional.mp3","se")
(newtrack:"male chuckle 1","aud/se/laugh/male chuckle 1.mp3","se")
(newtrack:"male chuckle 2","aud/se/laugh/male chuckle 2.mp3","se")
(newtrack:"male chuckle 3","aud/se/laugh/male chuckle 3.mp3","se")
(newtrack:"male chuckle 4","aud/se/laugh/male chuckle 4.mp3","se")
(newtrack:"whistle 1","aud/se/whistle/whistle 1.mp3","se")
(newtrack:"whistle 2","aud/se/whistle/whistle 2.mp3","se")
(newtrack:"whistle 3","aud/se/whistle/whistle 3.mp3","se")
(newtrack:"whistle 4","aud/se/whistle/whistle 4.mp3","se")
(newtrack:"quicktime correct 1 A","aud/se/quicktime/correct 1.mp3","se")
(newtrack:"quicktime correct 2 A","aud/se/quicktime/correct 2.mp3","se")
(newtrack:"quicktime correct 3 A","aud/se/quicktime/correct 3.mp3","se")
(newtrack:"quicktime correct 4 A","aud/se/quicktime/correct 4.mp3","se")
(newtrack:"quicktime correct 5 A","aud/se/quicktime/correct 5.mp3","se")
(newtrack:"quicktime correct 6 A","aud/se/quicktime/correct 6.mp3","se")
(newtrack:"quicktime correct 7 A","aud/se/quicktime/correct 7.mp3","se")
(newtrack:"quicktime correct 8 A","aud/se/quicktime/correct 8.mp3","se")
(newtrack:"quicktime correct 9 A","aud/se/quicktime/correct 9.mp3","se")
(newtrack:"quicktime correct 10 A","aud/se/quicktime/correct 10.mp3","se")
(newtrack:"quicktime correct 1 B","aud/se/quicktime/correct 1.mp3","se")
(newtrack:"quicktime correct 2 B","aud/se/quicktime/correct 2.mp3","se")
(newtrack:"quicktime correct 3 B","aud/se/quicktime/correct 3.mp3","se")
(newtrack:"quicktime correct 4 B","aud/se/quicktime/correct 4.mp3","se")
(newtrack:"quicktime correct 5 B","aud/se/quicktime/correct 5.mp3","se")
(newtrack:"quicktime correct 6 B","aud/se/quicktime/correct 6.mp3","se")
(newtrack:"quicktime correct 7 B","aud/se/quicktime/correct 7.mp3","se")
(newtrack:"quicktime correct 8 B","aud/se/quicktime/correct 8.mp3","se")
(newtrack:"quicktime correct 9 B","aud/se/quicktime/correct 9.mp3","se")
(newtrack:"quicktime correct 10 B","aud/se/quicktime/correct 10.mp3","se")
(newtrack:"quicktime incorrect","aud/se/quicktime/incorrect.mp3","se")
(newtrack:"quicktime combo 2","aud/se/quicktime/correct 2.mp3","se")
(newtrack:"quicktime combo 3","aud/se/quicktime/correct 3.mp3","se")
(newtrack:"quicktime combo 4","aud/se/quicktime/correct 4.mp3","se")
(newtrack:"quicktime combo 5","aud/se/quicktime/correct 5.mp3","se")
(newtrack:"quicktime combo 6","aud/se/quicktime/correct 6.mp3","se")
(newtrack:"quicktime combo 7","aud/se/quicktime/correct 7.mp3","se")
(newtrack:"quicktime combo 8","aud/se/quicktime/correct 8.mp3","se")
(newtrack:"quicktime combo 9","aud/se/quicktime/correct 9.mp3","se")
(newtrack:"quicktime combo 10","aud/se/quicktime/correct 10.mp3","se")]
}{
(updatetracktype:$ambience,"ambience")
(if:$ambience is 0)[(masteraudio:"stopall","ambience")](else:)[
(unless:$audio_toggle is "🔇")[(track:$ambience,"play",true)]]
}{
(updatetracktype:$se,"se")
(if:$sound is "0")[(set:$sound to 0)]
(unless:$audio_toggle is "🔇")[
(unless:$se is 0)[
(track: $se, 'play',false)]]
}{
(updatetracktype:$sex_loop,"sex loop")
(if:$sex_loop is "0")[(set:$sex_loop to 0)]
(if:$sex_loop is 0)[(masteraudio:"stopall","sex loop")(set:$old_sex_loop to 0)](else:)[
(unless:$audio_toggle is "🔇")[
(unless:$sex_loop is 0)[
(track: $sex_loop, 'play', true)
(set:$old_sex_loop to $sex_loop)
](else:)[
(set:$old_sex_loop to 0)
]
]]
}{
(unless:$sex_loop is 0)[
(track:$sex_loop,"stop")]
(unless:$old_sex_loop is 0)[
(track:$old_sex_loop,"stop")
]
}{
(if:$click_index is 0 or $click_index > 4)[
(set:$click_index to 1)
]
(set:$se to "ui click " + (text:$click_index))
(display:"play sound")
(inc:'click_index')
}{
(unless:(a:0,"ui click 1","ui click 2","ui click 3","0") contains $se)[(masteraudio:"stopall","se")]
}{
(updatetracktype:$song,"music")
(if:$song is "0")[(set:$song to 0)]
(if:$song is 0)[(masteraudio:"stopall","music")](else:)[
(if:$audio_toggle is "🎶" or ((not ($diegetic_music is "Diegetic Music: Disabled")) and $diegetic is "true" and $audio_toggle is "🔊"))[
(unless:$song is 0)[
(track: $song, 'play',true)
]
(set:$old_song to $song)
](else:)[
(set:$old_song to 0)
]
(set:$diegetic to "false")]
}{
(if:$audio_toggle is "🎶")[(track: $old_song, 'stop')(stop:)]
}{
(updatetracktype:$song,"music")
(if:$song is "0")[(set:$song to 0)]
(if:$song is 0)[(masteraudio:"stopall","music")](else:)[
(if:$audio_toggle is "🎶" or ((not ($diegetic_music is "Diegetic Music: Disabled")) and $diegetic is "true" and $audio_toggle is "🔊"))[
(unless:$song is 0)[
(track: $song, 'play', false)
]
(set:$old_song to $song)
](else:)[
(set:$old_song to 0)
]]
(set:$diegetic to "false")
}{
(if:$audio_toggle is "🎶")[
]
}{
(if:$audio_toggle is "🎶")[
]
}{
(if:$loaded is "true")[
(set:$loaded to "false")
]
(if:$audio_toggle is "🎶" or ((not ($diegetic_music is "Diegetic Music: Disabled")) and $diegetic is "true" and $audio_toggle is "🔊"))[
(if:(track:$song,"isplaying"))[(track:$song, 'fadeout', 5)
(live:5s)[(stop:)(if:(track:$song,"isplaying"))[(track:$song,'stop')]]]
]
}{
<!-- unused passage, kept here until mods can remove reference to it -->
}{(unless:$line is 0)[(unless:$female_vo is "Female NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/stepsis/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]](set:$line to 0)}{(unless:$male_vo is "Male NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/quoqac/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(unless:$male_vo is "Male NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/drew/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(unless:$male_vo is "Male NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/stepdad/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(unless:$male_vo is "Male NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/olias/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(unless:$female_vo is "Female NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/callie/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(unless:$female_vo is "Female NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/bar/gabbie/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(unless:$male_vo is "Male NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/pharmacist/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(unless:$male_vo is "Male NPC Voiceovers: Disabled")[(newtrack:$line,"aud/se/npc/boss/voice lines/" + $line + ".mp3")
(set:$se to $line)
(display:"play sound")]}{(set:$bimbo_timer to (min:$bimbo_timer,6))
($screen:"location and time",[($pic:"characters/emotion/bimbo/" + $character's id + ".jpg")
(if:$daytime_activity is any of (a:"Give sales demo","Go to work","Sell lemonade","Find a job"))[($bimbo:[(twirl:"Like, ohmygawd, I was totally gonna go to work today, but like... shopping sounds soooo much more fun!","Work is, like, super boring and stuff, but shopping is, like, where all the excitement is!","Eeeek! I just thought of the cutest skirt I need to buy! Who even cares about work right now?!","OMG, that store I love is having a sale! Work can, like, wait!","Ugh, work is, like, totally the worst... but shopping? Yes, please! Sooo much more exciting!","Hehe, just thinking about work makes me yawn... but imagining all the cute outfits I could buy? Eeeek! Excitement overload!","I was gonna, like, be all responsible and stuff… and then I remembered there's a sale at the mall! Hehe, priorities!","Ohmygosh, work? Like, noo thank you! Shopping is soooo much better! Retail therapy here I come!","Ohhh, I can't wait to try on those cute little outfits! Work? Like, who even cares?!","Omigod, shopping is, like, sooo much better for my mental health than boring work!","Oooh! I need those cute shoes I saw the other day! Why was I even thinking about work?!","Like, why be a busy worker bee when I can buy pretty dresses and feel soooo cute?","Squeeee! The only work I wanna do today is working my credit card at all those adorable shops!","I'm such a naughty girl for skipping work, hehe, but shopping just sounds soooo perfect right now!","Ugh, forget emails and meetings... I'm all about finding the cutest outfits today!","Work can be soooo boooring... but shopping? It's, like, pure bliss!","Hehehe, there's totally no contest! Shopping beats working any day!","Eeeek! Thinking about a new handbag just makes me wanna skip work and head straight to the mall!","Like, I'm gonna DIE if I don't get that new dress! Work can wait!","Why was I even considering going to work? Shopping is, like, totally my happy place!")])](else-if:$daytime_activity is "Go to the beach")[($bimbo:[(twirl:"Ohmygawd, like, I totally need some retail therapy! I was gonna, like, go to the beach but, like, shopping sounds soooo much better right now! 🛍️😝","Mmmm, why bother with the beach when I could be, like, getting cute new clothes and shoes? Sooo excited to go shopping! 💅✨","Eeeek! Shopping sounds, like, soooo much fun right now! The beach can wait. I need, like, new outfits to show off! 👗👜","Shopping is, like, the best! I could totally use some cute new bikinis and, like, accessories! Beach later, shopping now! 🌴💸","OMG! I just got this urge to go shopping, like, right now! Who needs the beach when I can, like, try on sooo many cute things? 😝🛍️","Teehee! The beach is cool and all, but, like, shopping is sooo much better! I wanna find, like, the perfect summer dress! 😍👗","Why lie around at the beach when I can be, like, trying on a thousand cute dresses? This bimbo needs some fashion therapy! Hehe~ 💅👜","Mmmm, shopping sounds, like, sooo much fun! Beach can wait, retail therapy can't! I need new sandals and, like, everything! 👡👛","Omg, retail therapy is, like, wayyyy better than the beach! I wanna, like, try on all the cute things and spend all my money! 😄🛒","Like, who needs the beach when I can be shopping?! I need some new bikinis for later anyway, hehe~! 🏖️💸","It's shopping time!! I can go to the beach later, like, I really need some new heels and maybe a little black dress! 👠🖤","OMG, I totally feel like shopping right now! The beach can wait. I need to hit the stores and, like, get some new outfits! 🛍️💃","Mmmm, I was thinking about the beach but, like, shopping is sooo much better! Can't wait to find some new things! 😘👗","Eeee! Feeling that bimbo itch! Need to go shopping like, right now! Beach can wait! Hehe~ 🛒💖","Like, who even needs the beach when shopping exists?! I need some sparkly new things sooo bad! 💎👗")])](else-if:$daytime_activity is "Nothing")[($bimbo:[(twirl:"Like, ohmygawd! I was sooo ready to just be lazy and lay around the house... but now I just wanna go shopping! Retail therapy is, like, calling my name! 👠👜💄","Hehe, I was gonna be such a lazy bum today, but shopping sounds sooo much better! Gotta get those cute things, ya know? 💅🛍️","Mmm, like, I was just gonna do nothing all day, but now all I can think about is getting my hands on some new shoes and sparkly things! Eee! ✨👠","OMG! I was just lazing around like a couch potato, but shopping is, like, all I can think about now! Need those new outfits and shiny accessories! 💖🛒","Eek! I was totally being a bum, but shopping is, like, so much more fun! Gotta get those sales and cute clothes! Whee~! 🛍️🎀","Wow, I was so ready to just be a couch potato, but shopping itch is, like, taking over! Can't wait to buy cute dresses and sparkly stuff! 👗💎","Like, who needs to laze around when you can shop till you drop?! Retail therapy, here I come! Hehe~! 🛍️💖","So, like, I was gonna be totally boring today, but shopping sounds sooo much funner! I need all the cute and shiny things! Goshhh~! 💅🛒","OMG! Was just about to be lazy, but all I wanna do is go on a shopping spree! Gotta get those fab outfits and adorable accessories! 🌟👛","Eee, like, so much for lying around! Shopping feels sooo much more exciting! Can't wait to hit the mall and buy all the cute stuff! 💕👜","Who cares about lazy days when you can shop? I need all the retail therapy and cute new things! Hehe! 🛍️✨","Mmm, seriously, lying around is sooo overrated! Shopping is, like, the best way to spend the day! Gotta get those cute buys! 💄👠","Like, totally feeling the shopping vibe more than the lazy day! Need me some new dresses and sparkly accessories! Yay! 💖🛒","Wow, was just gonna do nothing, but shopping is, like, calling me! Can't resist those cute outfits and fun retail therapy! 👗💅","Mmm, screw lying around! Shopping is where it's at! Need those cute shoes and shiny things! Eee! 🛍️✨","Ohmigod, I was so ready to just veg out, but shopping sounds sooo much more fun! Need to get my hands on those fab clothes and cute accessories! 💖👜","Like, was gonna be a potato, but retail therapy is, like, such a bimbo itch! Gotta get those sales and adorable things! Hehe~! 🛒🎀","Eee, screw being lazy! Shopping sounds soooo much better! Can't wait to get all the cute and shiny stuff! 💅👜","Mmm, lying around is boring! Shopping is, like, the best way to spend the day! Need me some new outfits and sparkly accessories! 👗💎","OMG! Was gonna do nothing, but shopping sounds sooo much more exciting! Gotta get those cute clothes and fun accessories! Yay! 🛍️💖")])](else:)[($bimbo:[(twirl:"Like, gosh, what was I even gonna do today? Who cares?! Shopping sounds soooo much more fun! 💖","Eep! I'm like, totally in the mood for some retail therapy! New shoes, new bags, new everything! Hehe~!","Omigawd, who wants to do boring stuff anyway? I feel like shopping! Gotta get my hands on some cute clothes! 💕","Mmm, I should, like, really be doing something else, but... shopping!!! Like, that's way more important!","Ooh, like, I can almost hear those sales calling my name! Time to hit the stores and make some magic happen! 😂","Hehe, wonder what I was supposed to be doing? Probably nothing as fun as SHOPPING! Mmm, shoes and bags and dresses, oh my! 😁","Eek! Why bother with other stuff when I could be shopping? Like, duh! Time to spoil myself with some new goodies! 💅😍","UNCCH, I was gonna do something else but who cares! Shopping is soooo much more fun! I can already picture myself in all those cute outfits!","Ohmygawd, why am I even thinking about anything else? Shopping is calling me! Time to get cute and hit the stores! 💖","Teehee, totally forgot what I was gonna do, but who cares?! Shopping time! Need some retail therapy to feel like the fabulous bimbo I am!","Mmm, let's see... what was I even gonna do? Oh well! Shopping is, like, all that matters now! Time to go spoil myself! 😋","Omigosh, the mall is, like, soooo much better than whatever I had planned! Gotta go and make myself look even cuter with new stuff!","Eeep! I was gonna do, like, something else, but forget that! Shopping is way more important, duh! Time to treat myself! 😝","Ooh, why bother with other stuff when I can just be shopping? It's, like, soooo much more fun and I can always use more cute clothes! 💕","Like, what was I even thinking? Shopping is, like, the best way to spend the day! Time to go get myself some new pretties!","Hehe, who needs to do boring stuff when shopping is an option? Can't wait to see what's in store for me today! 😂","UNCCH! Instead of lying around, I feel like hitting the stores! Shopping is just way more fun! 💕","Oooh, forget whatever else I had to do today! Shopping is, like, soooo much better! Time to treat myself to something fabulous!","Why even think about other stuff? Shopping is, like, the only thing that matters! Gotta go get some cute new outfits! 😍","Like, who cares what else I was gonna do? Shopping sounds way more fun! Time to go spoil myself with some retail therapy!")])]<div class='options'>(link:"Resist! (1 Action Point)")[(if:$action_points > 0)[(dec:'action_points',1)(dec:'bimbo_timer',3)(display:"advance time")](else:)[ *Not enough...* ]](link:"Give in to your urges...")[(dec:'bimbo_timer',2)(set:$daytime_activity to "Go to the mall")(display:"advance time")]</div>
])
}<i>This scene is purely a proof-of-concept to show how toy interactions can be woven into a scene.</i>
(if: ($buttplug_selected_device_name:) is "")[
You do not have a toy selected as active. Please do so in the configuration screen and come back.
The demo device will do if you don't own a compatible toy or don't want to use it.
](else:)[{
(set:$buttplug_demo_cmd_name to "")
(set: _available_commands to ($buttplug_selected_device_command_names:))
(if: length of _available_commands is 1)[
(set: $buttplug_demo_cmd_name to 1st of _available_commands)
](else:)[
Select the type of stimulation to provide: (cycling-link: bind $buttplug_demo_cmd_name, ..._available_commands)
]
<div class='options'>(link:"Start")[(display:"click")($cs:"buttplug customized scene demo")]</div>
}]
<div class='options'>(link:"Back")[(display:"click")($cs:"buttplug config")]</div>Your mystery lover leads you into their bedroom, whispering every naughty thing they're going to do to you in your ear.
It's making you feel all (link:"Tingly...")[== {
($buttplug_send_simple_command: $buttplug_demo_cmd_name, 0.2)}
They throw you onto the bed and jump on top of you, (link:"knocking the wind out of you.")[==
{ <!-- Send a brief burst of max-intensity stimulation -->
($buttplug_send_simple_command: $buttplug_demo_cmd_name, 1.0)
(set: _stop to false)
(live: 300ms)[
(if: _stop)[
($buttplug_send_simple_command: $buttplug_demo_cmd_name, 0.2)
(stop:)
](else:)[
(set: _stop to true)
]
]
}
Over the course of long minutes, they drive your arousal up (link:"higher")[== ($buttplug_send_simple_command: $buttplug_demo_cmd_name, 0.4)
(link:" ...and higher... ")[== ($buttplug_send_simple_command: $buttplug_demo_cmd_name, 0.6)
(link:" ...until finally... ")[== ($buttplug_send_simple_command: $buttplug_demo_cmd_name, 0.8)
(link:" ... you cum! ")[== ($buttplug_send_simple_command: $buttplug_demo_cmd_name, 1.0)
Slowly, you come back down from your high...
{ <!-- Fade out the stimulation over the course of 10 seconds -->
(set: _count to 1)
(live:1s)[
(if: _count <= 10)[
($buttplug_send_simple_command: $buttplug_demo_cmd_name, 1.0 - (_count / 10))
(set: _count to it + 1)
](else:)[
<div class='options'>(link:"You go Home, satisfied")[(display:"click")($cs:"buttplug config")]</div>
(stop:)
]
]
}{
(display:"buttplug init core")
(display:"buttplug init device interaction")
(display:"buttplug init dont cum")
(display:"buttplug init quicktime")
(display:"buttplug init pleasure meter")
(display:"buttplug init pleasure meter macro")
}{
(display:"buttplug init core")
(display:"buttplug init device interaction")
(display:"buttplug init dont cum")
(display:"buttplug init quicktime")
(display:"buttplug init pleasure meter")
(display:"buttplug init pleasure meter macro")
<script>Window.BP.buttplug_initialized = true;</script>
}{
(set:$buttplug_connected to (macro:[
(set:_connected to false)
<script>_connected = typeof Window.BP.bpClient !== 'undefined' && Window.BP.bpClient.connected;</script>
(output-data:_connected)
]))
(set:$buttplug_selected_device_name to (macro:[
(set:_selected to "")
<script>_selected = Window.BP.selected_device_name;</script>
(output-data:_selected)
]))
(set:$buttplug_devices to (macro:[
(set:_devices to (dm:))
<script>_devices = new Map(Object.entries(Window.BP.harlowe_devices));</script>
(output-data:_devices)
])) <!-- A map of (name, device) pairs. These are all devices detected by Intiface -->
(set:$buttplug_selected_device to (macro:[
(output-data: ($buttplug_selected_device_name:) of ($buttplug_devices:))
])) <!-- A datamap representing the currently selected device -->
(set:$buttplug_selected_device_command_names to (macro:[
(if: ($buttplug_selected_device_name:) is "")[(output-data:(a:))]
(output-data: (altered: _cmd via _cmd's "name", ...(($buttplug_selected_device:)'s "commands")))
])) <!-- An array containing the command names the currently selected device offers -->
(if:$buttplug_uri is 0)[(set:$buttplug_uri to "ws://127.0.0.1:12345")]
}{
<!-- Returns the name of a random Scalar command on the currently selected toy, or an empty string if there are none -->
(set:$buttplug_any_scalar_command to (macro: [
(set: _scalars to (find: _cmd where "type" of _cmd is "Scalar", ...(($buttplug_selected_device:)'s "commands")))
(if: length of _scalars is 0)[(output-data: "")]
(else:)[(output-data: (random of _scalars)'s "name")]
]))
<!-- Returns the name of a random Rotate command on the currently selected toy, or an empty string if there are none -->
(set:$buttplug_any_rotate_command to (macro: [
(set: _rotates to (find: _cmd where "type" of _cmd is "Rotate", ...(($buttplug_selected_device:)'s "commands")))
(if: length of _rotates is 0)[(output-data: "")]
(else:)[(output-data: (random of _rotates)'s "name")]
]))
<!-- Returns the name of a random command on the currently selected toy, or an empty string if there are none -->
(set:$buttplug_any_command to (macro: [
(set: _commands to (find: _cmd where (a: "Scalar", "Rotate") contains ("type" of _cmd), ...(($buttplug_selected_device:)'s "commands")))
(if: length of _commands is 0)[(output-data: "")]
(else:)[(output-data: (random of _commands)'s "name")]
]))
<!-- Sends a Scalar or Rotate command to the selected toy.
This does not perform any scaling, the intensity you give it is the intensity you'll get.
_cmd: The name (FeatureDescriptor) of the command to send. This is the same name which appears in the config screens.
_intensity: A number between 0 and 1 (inclusive) indicating the strength of the desired stimulation.
Note that different toys may interpret this value in their own ways.
For example, if a toy has only four possible settings for a given feature, those may correspond to
the intensity values 0.25, 0.5, 0.75 and 1.0. But that is not even guaranteed. Also, what it does when
given a value of 0.4 is entirely up to the specific toy.
-->
(set:$buttplug_send_simple_command to (macro: str-type _cmd, num-type _intensity, [
(set: $bp_actual_cmd to 1st of (find: _cmd_type where "name" of _cmd_type is _cmd, ...(($buttplug_selected_device:)'s "commands")))
(set: $buttplug_intensity to _intensity)
(if: ($buttplug_selected_device_name:) is "DEMO")[(out:)[]]
(out:)[<script>Window.BP.sendCommand((($buttplug_selected_device_name:):), $bp_actual_cmd, $buttplug_intensity);</script>]
]))
<!-- Sends all commands which are configured in the _config datamap at the given intensity.
The intensity for each selected stimulation will be scaled as configured.
_config: A configuration object with the same structure as (e.g.) $buttplug_dont_cum_config.
_intensity: A number between 0 and 1 (inclusive) indicating the strength of the desired stimulation.
See $buttplug_send_simple_command for caveats.
-->
(set:$buttplug_set_all_simple to (macro: datamap-type _config, num-type _intensity, [
(for: each _cmd_name, ...("selected stimulation" of _config))[
(set: _scale to (num: _cmd_name of ("max intensities" of _config)))
(set: $buttplug_toy_command to 1st of (find: _cmd_type where "name" of _cmd_type is _cmd_name, ...(($buttplug_selected_device:)'s "commands")))
(set: $buttplug_intensity to _intensity * _scale)
<script>Window.BP.sendCommand(Window.BP.selected_device_name, $buttplug_toy_command, $buttplug_intensity);</script>
]
(out:)[]
]))
<!-- Stop everything the toy is doing.
(The toy is responsible for responding to this command correctly - it's supposed to stop everything,
but ultimately the firmware can do what it likes.)
-->
(set:$buttplug_stop_all to (macro: [
(unless: ($buttplug_selected_device_name:) is "")[
(out:)[<script>Window.BP.stopDevice(Window.BP.selected_device_name);</script>]
](else:)[(out:)[]]
]))
}{
<!-- These configuration objects should be created for every 'generic' (i.e. not customized) interaction.
readable_name: Just a name to display in the config screen
selected stimulation: An array of strings. The values must correspond to the "name" field of the commands registered for the selected device.
modes: A datamap mapping names of modes to a description of what they do.
selected mode: A string indicating the mode selected by the player. Must correspond to one of the keys of "modes"
max intensities: A datamap mapping command names to intensity scaling factors.
The player can use these to configure how strongly any particular stimulation should be performed.
For example (dm: "Vibrate", "0.5") scales all "Vibrate" commands to 50% of what they would otherwise be.
-->
(if:$buttplug_dont_cum_config is 0)[(set: $buttplug_dont_cum_config to (dm:
"readable name", "Don't Cum Game",
"selected stimulation", (a:),
"modes", (dm:"Disabled", "Do not activate the toy during the Don't Cum game.",
"More Intense at Edges", "Stimulate at higher intensity the closer the bar gets to the edges.",
"More Intense in Green Zone", "Stimulate at higher intensity the closer the bar gets to the center of the green zone.",
"Prefer Green Zone, Fallback to Edges", "Use the 'More Intense in Green Zone' option for games which have a Green Zone, but use the 'More Intense at Edges' mode in games which do not."),
"selected mode", "Disabled",
"max intensities", (dm:)
))]
}{
(if:$buttplug_quicktime_config is 0)[(set: $buttplug_quicktime_config to (dm:
"readable name", "Quicktime Game",
"selected stimulation", (a:),
"modes", (dm:"Disabled", "Do not activate the toy during the Quick Time game.",
"More Intense at Low End", "Stimulate at higher intensity the closer the bar gets to the left edge (failure).",
"More Intense at High End", "Stimulate at higher intensity the closer the bar gets to the right edge (success).",
"More Intense at High Combo", "Stimulate at higher intensity the higher the combo multiplier gets.",
"Short Bursts on Mistake", "'Punish' mistakes with short, high-intensity bursts of stimulation whenever your combo multiplier is below 2.."),
"selected mode", "Disabled",
"max intensities", (dm:)
))]
}{
(if:$buttplug_pleasure_meter_config is 0)[(set: $buttplug_pleasure_meter_config to (dm:
"readable name", "Pleasure Bar",
"selected stimulation", (a:),
"modes", (dm:"Disabled", "Do not activate the toy based on your pleasure meter.",
"Active", "Stimulate at an intensity based on your pleasure meter, whenever it is visible <i>except during minigames</i>.",
"Active with Override", "Stimulate at an intensity based on your pleasure meter, whenever it is visible. This will override the settings for any minigames active at the same time."),
"selected mode", "Disabled",
"max intensities", (dm:)
))
<!-- This value is used to call $buttplug_stop_all after a sex scene finishes -->
(set:$buttplug_disable_after_pleasure_meter_interaction to false)]
}<!-- For some reason not re-initializing this on load causes macro syntax errors which Harlowe is particularly unhelpful with -->
<!-- This macro determines whether or not $your_pleasure should currently be used to direct the toy.
The conditions for this are:
- A toy is connected and selected as active
- The pleasure bar is visible in the player's info panel on the left.
- The selected mode for pleasure bar interaction is not Disabled
- If the selected mode is Active (no override), no minigames must be active. (The minigames take priority in that mode)
-->
(set:$buttplug_is_pleasure_meter_interaction_active to (macro:[
(if:($buttplug_selected_device_name:) is "")[(output-data:false)]
(set:$buttplug_pleasure_meter_visible to false)
<script>
$buttplug_pleasure_meter_visible = Window.BP.isPleasureBarVisible();
</script>
(unless:$buttplug_pleasure_meter_visible)[(output-data:false)]
(if:$buttplug_pleasure_meter_config's "selected mode" is "Disabled")[(output-data:false)]
(if:$buttplug_pleasure_meter_config's "selected mode" is "Active")[
(if:$dontcum is "active" and $buttplug_dont_cum_config's "selected mode" is not "Disabled")[(output-data:false)]
(if:$quicktime is "running" and $buttplug_quicktime_config's "selected mode" is not "Disabled")[(output-data:false)]
]
(output-data:true)
])){
(if:$buttplug_config is "true")[(live:1s)[
(if:($buttplug_pleasure_meter_config is not 0))[
(if:($buttplug_is_pleasure_meter_interaction_active:))[
(set:$buttplug_disable_after_pleasure_meter_interaction to true)
($buttplug_set_all_simple: $buttplug_pleasure_meter_config, $your_pleasure / 10)
](else-if: $buttplug_disable_after_pleasure_meter_interaction)[
($buttplug_stop_all:)
(set:$buttplug_disable_after_pleasure_meter_interaction to false)
]
]
]]}{
<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Toy Interface Settings</span>]]</div>
<span><a href='https://intiface.com/central/' target='_blank' rel='noopener noreferrer'>(color:"#85C1E9")[Intiface]</a> URI: (input: 2bind $buttplug_uri)</span>
<span>Intiface connection status: (live: 1s)[(if:($buttplug_connected:))[Yes!](else:)[Not yet]](display:"buttplug connect button")</span>
(live: 1s)[(if: ($buttplug_selected_device_name:) is not "")[<div class='options'>(link:"Deselect current device")[<script>Window.BP.selected_device_name = "";</script>(set:$buttplug_config to "false")]</div>]]<div class='options'>(display:"buttplug connected devices list")</div>(live: 1s)[(if: ($buttplug_selected_device_name:) is not "")[<div class='options'>{<div>(link:"Don't Cum Game Interaction Settings")[(display:"click")($cs:"buttplug dont cum config")]</div>
<div>(link:"Quick Time Game Interaction Settings")[(display:"click")($cs:"buttplug quicktime config")]</div>
<div>(link:"Pleasure Bar Interaction Settings")[(display:"click")($cs:"buttplug pleasure meter config")]</div>}</div>]]
(display:"buttplug estim config")
<div class='options'>(link:"Back")[(display:"click")($cs:"view game settings")]</div>
}{(replace:?connect_button)[Connecting.(live:1s)[.(stop:)](live:2s)[.(stop:)](live:3s)[.(stop:)](live:4s)[.(stop:)]<script>
async function _bp_connect() {
if (await Window.BP.buttplugconnectwebsocket($buttplug_uri)) {
Window.BP.buttplugSetUpHooks();
await Window.BP.bpClient.requestDeviceList();
for (const device of Window.BP.bpClient._devices.values()) {
Window.BP.buttplugHandleNewDevice(device)
}
}
}
_bp_connect();</script>(live:5s)[(if:($buttplug_connected:))[](else:)[(replace:?connect_button)[(color:$palette_colors's 4th)[Connection timeout. No device found at web socket 127.0.0.1:12345.](print:"
")(link:"Connect")[(display:"buttplug attempt connect")]]](stop:)]]}{(if:($buttplug_connected:))[
<div class='options'>(link:"Disconnect")[<span>Disconnecting...</span><script>Window.BP.disconnectClient();</script>]</div>
](else:)[
<div class='options'>
($show_tooltip:[|connect_button>[(link:"Connect")[(display:"buttplug attempt connect")]]
],[Requires a device to be available at web socket 127.0.0.1:12345.])]}<div class='options'>Available Buttplug-capable devices:
(link:"Add Demo Device")[<script>
const demoDevice = {
_deviceInfo: {
DeviceName: "DEMO",
DeviceIndex: -1,
DeviceMessages: {
RotateCmd: [{
Index: 0,
ActuatorType: "Rotate",
FeatureDescriptor: "Rotating Thingy"
}]
}
}
};
Window.BP.buttplugHandleNewDevice(demoDevice)
</script>]</div>(live:1s)[(for: each _device_name, ...(dm-names:($buttplug_devices:)))[(set:_device to _device_name of ($buttplug_devices:))(link: _device_name)[<script>Window.BP.selected_device_name = _device_name;</script>]]]
(live:1s)[(unless: ($buttplug_selected_device_name:) is "")[(set:$buttplug_config to "true")Currently connected device: (if: ($buttplug_selected_device_name:) is "")[(None)](else:)[<span class='buff'>($buttplug_selected_device_name:)</span>](nl:1)
<span class='shadow'>Supported features of selected device:</span>{<ul>(for: each _cmd, ...("commands" of ($buttplug_selected_device:)))[(set:_name to "name" of _cmd)(set:_index to "index" of _cmd)(set:_actuator to "actuator" of _cmd)(set: _type to "type" of _cmd)
<li>#_index: _name <span style="color:bisque;font-style:italic">Type: _type; Subtype: _actuator</span></li>
]</ul>}
]](live:1s)[
(set:_estim_enabled to false)
(set:_has_estim_device to false)
<script>
_estim_enabled = window.estim.enabled;
_has_estim_device = Window.BP.devices.hasOwnProperty(window.estim.expected_device_name);
</script>
<div>(if:_has_estim_device)[(if:_estim_enabled)[Estim enabled. (link:"Shock")[<script>window.estim.shock()</script>]](else:)[(link:"Enable E-Stim")[<script>window.estim.enabled = true</script>(replace:?estim_config)[(display:"buttplug estim config")]]]](else:)[No E-Stim device detected.]</div>
]<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>(print: "readable name" of $buttplug_dont_cum_config) Toy Control Settings</span>]]</div>
Currently selected toy interaction mode: (live:1s)[(print: "selected mode" of $buttplug_dont_cum_config)]
Available modes:
(dropdown: 2bind "selected mode" of $buttplug_dont_cum_config, ...(dm-names: "modes" of $buttplug_dont_cum_config))
(live: 0.2s)[(print: ("selected mode" of $buttplug_dont_cum_config) of ("modes" of $buttplug_dont_cum_config))]
(set:_vibration_selected to false)(set:_linear_selected to false)(set:_rotation_selected to false)
Available stimulation types on your device:
(for: each _type, ...($buttplug_selected_device_command_names:))[
{(link-rerun: "Toggle " + _type)[
(if: "selected stimulation" of $buttplug_dont_cum_config contains _type)[
(set:"selected stimulation" of $buttplug_dont_cum_config to it - (a:_type))
](else:)[
(set:"selected stimulation" of $buttplug_dont_cum_config to it + (a:_type))
]
](live: 0.2s)[
(if: "selected stimulation" of $buttplug_dont_cum_config contains _type)[
Enabled, intensity scale = (cycling-link: 2bind _type of "max intensities" of $buttplug_dont_cum_config, ...(altered: via (str:it),1.0,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1))
](else:)[
Disabled
]
]}
]
<i>For each enabled stimulation, you may select its intensity scale. At 1.0, your toy may, depending on how the game is going, be instructed to perform that stimulation at its full strength. At 0.5, all stimulation intensity is halved, and so on.</i>
<div>(link:"Back")[(display:"click")($cs:"buttplug config")]</div><div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>(print: "readable name" of $buttplug_quicktime_config) Toy Control Settings</span>]]</div>
Currently selected toy interaction mode: (live:1s)[(print: "selected mode" of $buttplug_quicktime_config)]
Available modes:
(dropdown: 2bind "selected mode" of $buttplug_quicktime_config, ...(dm-names: "modes" of $buttplug_quicktime_config))
(live: 0.2s)[(print: ("selected mode" of $buttplug_quicktime_config) of ("modes" of $buttplug_quicktime_config))]
(set:_vibration_selected to false)(set:_linear_selected to false)(set:_rotation_selected to false)
Available stimulation types on your device:
(for: each _type, ...($buttplug_selected_device_command_names:))[
{(link-rerun: "Toggle " + _type)[
(if: "selected stimulation" of $buttplug_quicktime_config contains _type)[
(set:"selected stimulation" of $buttplug_quicktime_config to it - (a:_type))
](else:)[
(set:"selected stimulation" of $buttplug_quicktime_config to it + (a:_type))
]
](live: 0.2s)[
(if: "selected stimulation" of $buttplug_quicktime_config contains _type)[
Enabled, intensity scale = (cycling-link: 2bind _type of "max intensities" of $buttplug_quicktime_config, ...(altered: via (str:it),1.0,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1))
](else:)[
Disabled
]
]}
]
<i>For each enabled stimulation, you may select its intensity scale. At 1.0, your toy may, depending on how the game is going, be instructed to perform that stimulation at its full strength. At 0.5, all stimulation intensity is halved, and so on.</i>
<div>(link:"Back")[(display:"click")($cs:"buttplug config")]</div><div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>(print: "readable name" of $buttplug_pleasure_meter_config) Toy Control Settings</span>]]</div>
Currently selected toy interaction mode: (live:1s)[(print: "selected mode" of $buttplug_pleasure_meter_config)]
Available modes:
(dropdown: 2bind "selected mode" of $buttplug_pleasure_meter_config, ...(dm-names: "modes" of $buttplug_pleasure_meter_config))
(live: 0.2s)[(print: ("selected mode" of $buttplug_pleasure_meter_config) of ("modes" of $buttplug_pleasure_meter_config))]
(set:_vibration_selected to false)(set:_linear_selected to false)(set:_rotation_selected to false)
Available stimulation types on your device:
(for: each _type, ...($buttplug_selected_device_command_names:))[
{(link-rerun: "Toggle " + _type)[
(if: "selected stimulation" of $buttplug_pleasure_meter_config contains _type)[
(set:"selected stimulation" of $buttplug_pleasure_meter_config to it - (a:_type))
](else:)[
(set:"selected stimulation" of $buttplug_pleasure_meter_config to it + (a:_type))
]
](live: 0.2s)[
(if: "selected stimulation" of $buttplug_pleasure_meter_config contains _type)[
Enabled, intensity scale = (cycling-link: 2bind _type of "max intensities" of $buttplug_pleasure_meter_config, ...(altered: via (str:it),1.0,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1))
](else:)[
Disabled
]
]}
]
<i>For each enabled stimulation, you may select its intensity scale. At 1.0, your pleasure bar will correspond 1:1 to the strength at which your toy will operate. So if the bar is full, the toy will be going at full power. At 0.5, all stimulation intensity is halved, and so on.</i>
<div>(link:"Back")[(display:"click")($cs:"buttplug config")]</div>{
(if: (($buttplug_selected_device_name:) is not "") and not ($buttplug_is_pleasure_meter_interaction_active:))[
(if: ("selected mode" of $buttplug_dont_cum_config) is "More Intense at Edges") [
(display:"buttplug dont cum edge based")
]
(if: ("selected mode" of $buttplug_dont_cum_config) is "More Intense in Green Zone" and $bonus_area_in_use) [
(display:"buttplug dont cum green based")
]
(if: ("selected mode" of $buttplug_dont_cum_config) is "Prefer Green Zone, Fallback to Edges") [
(if: $bonus_area_in_use)[
(display:"buttplug dont cum green based")
](else:)[
(display:"buttplug dont cum edge based")
]
]
]
}{
(set: _current_green_zone_center to $min + ($width / 2))
(set: $buttplug_bonus_eccentricity to (min: 1, (abs: _current_green_zone_center - $points) / ($width / 2)))
}{
($buttplug_set_all_simple: $buttplug_dont_cum_config, 1 - $buttplug_bonus_eccentricity)
}{
(set: _eccentricity to (abs: $points - 50.0) / 50.0)
($buttplug_set_all_simple: $buttplug_dont_cum_config, _eccentricity)
}{
(if: (($buttplug_selected_device_name:) is not "") and ("selected mode" of $buttplug_quicktime_config is not "Disabled") and (not ($buttplug_is_pleasure_meter_interaction_active:)))[
(if: ("selected mode" of $buttplug_quicktime_config) is "More Intense at Low End") [
(display:"buttplug quicktime low end")
]
(if: ("selected mode" of $buttplug_quicktime_config) is "More Intense at High End") [
(display:"buttplug quicktime high end")
]
(if: ("selected mode" of $buttplug_quicktime_config) is "More Intense at High Combo") [
(display:"buttplug quicktime combo")
]
(if: ("selected mode" of $buttplug_quicktime_config) is "Short Bursts on Mistake") [
(display:"buttplug quicktime mistake")
]
(display:"buttplug quicktime common")
]}(set:_fraction to $quicktime_params's "points" / $quicktime_params's "points to win")
(set:$buttplug_intensity to 1 - _fraction)(set:_fraction to $quicktime_params's "points" / $quicktime_params's "points to win")
(set:$buttplug_intensity to _fraction)(set:_fraction to $combo / 10)
(set:$buttplug_intensity to _fraction)(if:$combo is 1)[
(set:$buttplug_intensity to 1)
](else:)[
(set:$buttplug_intensity to 0)
]($buttplug_set_all_simple: $buttplug_quicktime_config, $buttplug_intensity){
(if: (datanames: $outfit) contains any of (a:"style","sluttiness"))[
(set: $npc's "personality" to (cond:
(checkdm:$outfit,"style","is","cute") or $outfit's "sluttiness" <= 2, $npc's "personality" + (twist: 0, 2),
(checkdm:$outfit,"style","is","slutty") or $outfit's "sluttiness" >= 7, $npc's "personality" - (twist: 0, 2),
(checkdm:$outfit,"style","is","relaxed") or $outfit's "sluttiness" <= 4, $npc's "personality" + (twist: 0, 2),
$npc's "personality"
))
(set: $npc's "personality" to (min: 10, (max: $npc's "personality", 1)))
(if: (checkdm:$outfit,"style","is","cute") or $outfit's "sluttiness" <= 2)[
(set: $npc's "tags" to it - (a: "fuckboy", "creepy", "bully"))
(set: $npc's "tags" to it - (a: "chad"))
(if: (twist: 1, 3) is 1)[
(set: $npc's "tags" to it + (a: (twirl: "gentleman", "charming")))
]
]
(if: (checkdm:$outfit,"style","is","sexy") or $outfit's "sluttiness" >= 7)[
(set: $npc's "tags" to it - (a: "gentleman"))
(set: $npc's "tags" to it + (a: "chad"))
(if: (twist: 1, 3) is 1)[
(set: $npc's "tags" to it + (a: (twirl: "fuckboy", "bully")))
]
]
(if: (checkdm:$outfit,"style","is","relaxed") or $outfit's "sluttiness" <= 4)[
(set: $npc's "tags" to it - (a: "fuckboy", "creepy", "bully"))
(set: $npc's "tags" to it - (a: "chad"))
(if: (twist: 1, 3) is 1)[
(set: $npc's "tags" to it + (a: "gentleman"))
]
]
]
(if: ($outfit's tags contains "rich magnet") and (twist: 1, 3) is 1)[
(set: $npc's "wealth" to (min:10,$npc's "wealth" + (twist: 1, 3)))
]
(set: $npc's "wealth" to (min: 10, (max: $npc's "wealth", 1)))
(if: $outfit's tags contains "chad magnet" and (twist: 1, 5) is 1)[
(set: $npc's "tags" to it + (a: "chad"))
]
(if: $outfit's tags contains "nerd magnet" and (twist: 1, 5) is 1)[
(set: $npc's "tags" to it + (a: "nerd"))
]
(if: $outfit's tags contains "gentleman magnet" and (twist: 1, 5) is 1)[
(set: $npc's tags to $npc's tags + (a: "gentleman"),$npc's tags to $npc's tags - (a:"fuckboy","creep"),$npc's personality to (clamp:$npc's personality,5,10))
]
(if: $outfit's tags contains "fuckboy magnet" and (twist: 1, 5) is 1)[
(set: $npc's "tags" to it + (a: "fuckboy"))
(set: $npc's tags to $npc's tags + (a: "fuckboy"),$npc's tags to $npc's tags - (a:"gentleman"),$npc's personality to (clamp:$npc's personality,1,5))
]
(if: $outfit's tags contains "jock magnet" and (twist: 1, 5) is 1)[
(set: $npc's "tags" to it + (a: "jock"))
(set: $npc's "fitness" to (min:$npc's "fitness" + 1,10))
]
}{==
(set:_outfits_to_favorite to (unique:...(find:_outfit where (1st of (words:_outfit)) is (text:$character's id), ...$outfit_inventory)))
(for: each _outfit, ..._outfits_to_favorite)[
(set:$select to _outfit)
(display:"get outfit")
(for: each _category, ...$select_outfit's locations)[
(set:$favorite_outfits's (text:_category) to $favorite_outfits's (text:_category) - (a:$select_outfit's id))
(set:$favorite_outfits's (text:_category) to $favorite_outfits's (text:_category) + (a:$select_outfit's id))
]]
(goto:"wardrobe"){==
(set:_outfits_to_favorite to (unique:...(find:_outfit where (1st of (words:_outfit)) is (text:$character's id), ...$outfit_inventory)))
(set: $category_limit to ($filter of (dm:
"none","none",
"All Outfits","none",
"Beachwear","beach",
"Officewear","office",
"Activewear","gym",
"Loungewear","lounge",
"Lingerie","lingerie",
"All Outfits not Owned","not owned",
"Casual","casual",
"Stylish","stylin",
"Fetishwear","fetish")))
(for: each _outfit, ..._outfits_to_favorite)[
(set:$category to (words:_outfit)'s 2nd)
(if:$category_limit is "none" or $category_limit is $category)[
(set:$favorite_outfits's (text:$category) to $favorite_outfits's (text:$category) - (a:_outfit))
(set:$favorite_outfits's (text:$category) to $favorite_outfits's (text:$category) + (a:_outfit))
]]
(goto:"wardrobe"){
(set: $category_limit to ($filter of (dm:
"none","none",
"All Outfits","none",
"Beachwear","beach",
"Officewear","office",
"Activewear","gym",
"Loungewear","lounge",
"Lingerie","lingerie",
"All Outfits not Owned","not owned",
"Casual","casual",
"Stylish","stylin",
"Fetishwear","fetish")))
(if:$category_limit is "none")[
(set:$favorite_outfits to (dm:
"beach",(a:),
"casual",(a:),
"office",(a:),
"gym",(a:),
"lounge",(a:),
"lingerie",(a:),
"stylin",(a:),
"fetish",(a:)))](else:)[
(set:$favorite_outfits's (text:$category_limit) to (a:))
]
(goto:"wardrobe")
}{
(set:$favorites to (dm:
"beach",false,
"casual",false,
"office",false,
"gym",false,
"lounge",false,
"lingerie",false,
"stylin",false,
"fetish",false,
"default",false))
(if:$favorite_outfits's beach contains $select_outfit's id)[(set:$favorites's beach to true)]
(if:$favorite_outfits's casual contains $select_outfit's id)[(set:$favorites's casual to true)]
(if:$favorite_outfits's office contains $select_outfit's id)[(set:$favorites's office to true)]
(if:$favorite_outfits's gym contains $select_outfit's id)[(set:$favorites's gym to true)]
(if:$favorite_outfits's lounge contains $select_outfit's id)[(set:$favorites's lounge to true)]
(if:$favorite_outfits's lingerie contains $select_outfit's id)[(set:$favorites's lingerie to true)]
(if:$favorite_outfits's stylin contains $select_outfit's id)[(set:$favorites's stylin to true)]
(if:$favorite_outfits's fetish contains $select_outfit's id)[(set:$favorites's fetish to true)]
(unless:$default_outfit is 0)[(if:$default_outfit's id is $select_outfit's id)[(set:$favorites's default to true)]]
}{(display:"wardrobe update favorites")}(unless:$previous is "day" or $next is "day" or $time < 1 or $previous is "day post transform" or $next is "day post transform")[<span class='highlight'>Manually choose to wear this item now - will not affect future time slots:]<div class='options'>(color:"bisque")[(link:"Wear Now")[(display:"clothes wear now")]]</div></span>
(if:(words:$select_outfit's id)'s 1st is $character's "id")[Wear as:(if:$select_outfit's "locations" contains "beach")[
(checkbox: 2bind $favorites's beach, " Beachwear")](if:$select_outfit's "locations" contains "casual")[
(checkbox: 2bind $favorites's casual, " Casual")](if:$select_outfit's "locations" contains "office")[
(checkbox: 2bind $favorites's office, " Officewear")](if:$select_outfit's "locations" contains "gym")[
(checkbox: 2bind $favorites's gym, " Activewear")](if:$select_outfit's "locations" contains "lounge")[
(checkbox: 2bind $favorites's lounge, " Loungewear")](if:$select_outfit's "locations" contains "lingerie")[
(checkbox: 2bind $favorites's lingerie, " Lingerie")](if:$select_outfit's "locations" contains "stylin")[
(checkbox: 2bind $favorites's stylin, " Stylish")](if:$select_outfit's "locations" contains "fetish")[
(checkbox: 2bind $favorites's fetish, " Fetishwear")](if:$select_outfit's "locations" contains "lounge")[
(checkbox: 2bind $favorites's default, " Default Outfit")]](else:)[You can't wear this now.]
<span class='highlight'>Checking these boxes will ensure you wear this outfit in future time slots of the given (if:length of $select_outfit's locations > 1)[types](else:)[type].
If multiple outfits are selected for a context, one will be selected at random, prioritizing outfits that give bonuses - so feel free to mark all your favorites to create a nice rotation.
Loungewear outfits can also be chosen as your Default Outfit: the outfit you will wear when nothing is favorited. If nothing is chosen you'll default to men's clothes.</span>{
(for: each _clothing_item, ...$favorite_outfits's beach)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's beach to $favorite_outfits's beach - (a:_clothing_item))]]
(for: each _clothing_item, ...$favorite_outfits's casual)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's casual to $favorite_outfits's casual - (a:_clothing_item))]]
(for: each _clothing_item, ...$favorite_outfits's office)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's office to $favorite_outfits's office - (a:_clothing_item))]]
(for: each _clothing_item, ...$favorite_outfits's gym)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's gym to $favorite_outfits's gym - (a:_clothing_item))]]
(for: each _clothing_item, ...$favorite_outfits's lounge)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's lounge to $favorite_outfits's lounge - (a:_clothing_item))]]
(for: each _clothing_item, ...$favorite_outfits's lingerie)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's lingerie to $favorite_outfits's lingerie - (a:_clothing_item))]]
(for: each _clothing_item, ...$favorite_outfits's stylin)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's stylin to $favorite_outfits's stylin - (a:_clothing_item))]]
(for: each _clothing_item, ...$favorite_outfits's fetish)[(unless:$outfit_inventory contains _clothing_item)[(set:$favorite_outfits's fetish to $favorite_outfits's fetish - (a:_clothing_item))]]
}{
<!-- Set default filtered outfits to favorite outfits -->
(set: $filtered_outfits to $favorite_outfits's $filter)
<!-- Filter out used outfits, unless none are unused, in which case use default filter -->
(set: $filtered_outfits to (cond:
(some-pass: _outfit where ($used_outfit_check:_outfit) is false, ...$filtered_outfits),
(find: _outfit where ($used_outfit_check:_outfit) is false, ...$filtered_outfits),
$filtered_outfits
))
<!-- If doing chores, filter outfits by chores tag -->
(if:$chores_outfit_ids is 0)[(set:$chores_outfit_ids to (ds:))]
(set: $filtered_outfits to (cond:
$current_activity is "Do chores" and (some-pass: _outfit where $chores_outfit_ids contains _outfit, ...$filtered_outfits),
(find: _outfit where $chores_outfit_ids contains _outfit, ...$filtered_outfits),
$filtered_outfits
))
}{
(set:$filtered_lingerie to $favorite_outfits's "lingerie")
}{
(if:$fav is "true")[(set:_category to (words:$select_outfit's id)'s 2nd)(set:_outfit to $select_outfit's id)
(set:$favorite_outfits's (text:_category) to $favorite_outfits's (text:_category) - (a:_outfit))
(set:$favorite_outfits's (text:_category) to $favorite_outfits's (text:_category) + (a:_outfit))]
}{
(if:$used_outfit_check is 0)[
(set:$used_outfit_check to (macro: str-type _id, [
(if:$used_outfits_ids is 0)[(set:$used_outfits_ids to (ds:))]
(output-data:($used_outfits_ids contains _id))
]))]
}{(if:$select_outfit's tags contains "professional")[(set:$select_outfit's buff to "+1 🍀 at the office")](else-if:$select_outfit's tags contains "very professional")[(set:$select_outfit's buff to "+2 🍀 at the office")](else-if:$select_outfit's tags contains "chores")[(set:$select_outfit's buff to "Earn extra 💵 doing chores!")](else-if:$select_outfit's tags contains "workout")[(set:$select_outfit's buff to "Earn 1.5x XP at the gym!")](else-if:$select_outfit's tags contains "great workout")[(set:$select_outfit's buff to "Earn double XP at the gym!")](else:)[(set:$select_outfit's buff to "none")]}{
(set:$select_outfit to (getoutfit:$select))
}{
(refresh_purchasable_outfits:)
}{
(set:$used_outfits_ids to it + (ds:$outfit's "id"))
}{
(set:$used_outfits_ids to (ds:))
}{
(set:$filtered_outfits to (a:))
(unless:$filter is "none")[(set:$filtered_outfits to $favorite_outfits's $filter)]
(unless:$filtered_outfits's length > 0)[
(set:$filtered_outfits to (find:where it matches (p:$character's id, " ", $filter, " ", str), ...$outfit_inventory))
]
}{(if:$select_outfit's "reveals" contains "nipples")[<li>Your nipples are visible</li>](else-if:$select_outfit's "emphasizes" contains "underboob")[<li>(twirl:"Shows off underboob","A lot of underboob","Highlights your underboob")</li>](else-if:$select_outfit's "emphasizes" contains "sideboob")[<li>Shows off your sideboob</li>](else-if:$select_outfit's "emphasizes" contains "cleavage")[<li>(twirl:"Shows off your cleavage","Highlights your cleavage","Prominent cleavage","Shows off cleavage")</li>](else-if:$select_outfit's "emphasizes" contains "boobs")[<li>(display:"describe breasts")(twirl:"Highlights your ","Shows off your ","Emphasizes your ")(print:$breasts)</li>](if:$select_outfit's "emphasizes" contains "butt")[<li>(twirl:"Draws attention to your","Shows off your") (twirl:"butt","ass")</li>](else-if:$select_outfit's "emphasizes" contains "asscheeks")[<li>(twirl:"Draws attention to your","Shows off your") asscheeks</li>](else-if:$select_outfit's "emphasizes" contains "legs")[<li>Shows off your legs</li>]}{
(set:_hoverImage to (macro: str-type _img, str-type _imgHover, codehook-type _hook, [
(out:)[{
(link-rerun:"<img src='" + _img + "' width=50px height=auto onmouseover=this.src='" + _imgHover + "' onmouseout=this.src='" + _img + "' />")[{
(display:"click")
_hook
}]
}]
]))
<span class='borderless'>
|left>[{
(_hoverImage: "img/ui/buttons/64button1left.png", "img/ui/buttons/64button2left.png", [{
(if:$filtered_outfits's length > 1)[
(set:$outfit_index to (cond:it <= 1, $filtered_outfits's length, it - 1))
(rerun:?outfit_screen)
]
}])
}]
|right>[{
(_hoverImage: "img/ui/buttons/64button1right.png", "img/ui/buttons/64button2right.png", [{
(if:$filtered_outfits's length > 1)[
(set:$outfit_index to (cond:it >= $filtered_outfits's length, 1, it + 1))
(rerun:?outfit_screen)
]
}])
}]
</span>
}(css:"font-size:0.8em")[(color:$palette_colors's 4th)[<span class='shadow'>(print:$select_outfit's category of (dm:"lingerie","Lingerie","gym","Activewear","office","Officewear","fetish","Fetishwear","beach","Beachwear","stylin","Fashionable","casual","Everyday","lounge","Loungewear"))</span>]]
(css:"font-size:3vmin")[<span class='shadow'>(for: each _word, ...(words:$select_outfit's name))[(if:(a:"and") contains _word)[(print:_word)](else:)[(print:(upperfirst:_word))](print:" ")]</span>]
(color:$palette_colors's 3rd)[(css:"font-size:1.4em")[$(print:$select_outfit's price)](unless:$select_outfit's buff is "none")[
(if:($used_outfit_check:(safeget:"select_outfit","id")))[~~(print:$select_outfit's buff)~~ Used this week, returns on Sunday.](else:)[(print:$select_outfit's buff)]](if:$select_outfit's "tags" contains "gym scene")[
Unlocks a scene at the gym!](if:$select_outfit's "tags" contains "story scene")[
Unlocks story scene at the beach!]]
(if:$select_outfit's flavor is "You're a magical girl, all right." and $character's archetype is "nerd")[{These idiots have the outfit labeled as CCS when it's CLEARLY Sailor Chibi Moon! (css:"font-size:4vmin")[GAAHH!!!](set:$new_mood to (dm:
"mood","enraged",
"emoji","🤓",
"strength",10,
"length",2,
"cause","since you witnessed such utter INCOMPETENCE. (Nerd Archetype)",
"charm buff",-2,
"intellect buff",2
))(display:"new mood")(display:"refresh stats")}](else:)[(print:$select_outfit's flavor)]
<span class='highlight'>(meter: bind $select_outfit's "sluttiness", 10, "X=", " Sluttiness: " + (text:$select_outfit's "sluttiness") + " 👄", #FFB6C1)(meter: bind $select_outfit's "comfort", 10, "X=", " Comfort: " + (text:$select_outfit's "comfort") + " 😌", #B0E0E6)(if:$select_outfit's "breast support" > 0)[(meter: bind $select_outfit's "breast support", 10, "X=", " Boob support: " + (text:$select_outfit's "breast support") + " 👙", #8FBC8F)]{<ul>(if:$select_outfit's top is $select_outfit's bottom)[<li>(print:(upperfirst:$select_outfit's description))</li>](else:)[<li>(print:(upperfirst:$select_outfit's top))</li>(display:"clothing traits")
<li>(print:(upperfirst:$select_outfit's bottom))]</li>(unless:$select_outfit's shoes is "none")[<li>(print:(upperfirst:$select_outfit's shoes))</li>](if:length of $select_outfit's "reveals" > 0)[<li>Reveals:<ul>(for: each _reveals, ...$select_outfit's "reveals")[<li>(print:(upperfirst:_reveals))</li></ul></li>]](if:length of $select_outfit's "locations" > 0)[<li>Wearable contexts:<ul>(for: each _location, ...$select_outfit's "locations")[<li>{(print:(text:_location) of (dm:
"beach","Beachwear",
"office","Officewear",
"gym","Activewear",
"loungewear","Lounge",
"lounge","Loungewear",
"lingerie","Lingerie",
"casual","Casual",
"stylin","Stylish",
"fetish","Fetishwear"
))}</li></ul></li>]](if:length of $select_outfit's "tags" > 0)[(if:(some-pass: _tag where $outfit_tags contains _tag, ...$select_outfit's "tags"))[<li>Outfit tags:<ul>(for: each _tag, ...$select_outfit's "tags")[(if:$outfit_tags contains _tag)[<li>{($show_tooltip:[(print:(upperfirst:_tag))],[(print:(text:_tag) of $outfit_tags)])}]</li></ul></li>]]]</ul>}</span>{
(if:(is_fem:))[
(display:"filter favorite clothes")
(if:length of $filtered_outfits > 0)[
(if:length of $filtered_outfits > 1)[(set:$filtered_outfits to (twisted:...$filtered_outfits))]
(set:$outside_outfit to $filtered_outfits's 1st)
](else:)[
(set:$outside_outfit to "male clothes")
]
(display:"wear clothes")
(if:$character's "reluctance" < 6)[
(if:(a:"dive watch","gmt watch","chronograph watch") contains $watch_equipped)[
(if:$items contains "unisex watch")[(set:$watch_equipped to "unisex watch")](if:$items contains "ladies watch")[(set:$watch_equipped to "ladies watch")]]]
]
}{
(set:$outfit to (dm:"tags",(a:),"lingerie","none"))
(if:$outside_outfit is "male clothes")[
(set:$unprepared_transform to false)
(display:"apply mens clothes")
](else:)[
(set:$outfit to (getoutfit:$outside_outfit))
(set:$outfit's outer to $outside_outfit)
(if:$outfit's "panties under" is "no" and $outfit's "bra under" is "no")[(set:$underwear to "no underwear")]
(display:"apply lingerie")(display:"womens clothes check reluctance")(display:"refresh stats")]
($passage_tags:"wear_clothes")
}{
(set:$reluctance_debuff to "none")
(unless:$character's "temp pill" is "true" or (is_male:))[
(if:$character's "reluctance" < 6)[(set:$reluctance_debuff to "male clothes")]]
}{
(set:$reluctance_debuff to "none")
(unless:$character's "temp pill" is "true" or (is_male:))[
(if:$character's "reluctance" > 6)[(set:$reluctance_debuff to "lingerie")]
]
(if:(is_bim:) or (is_exhib:))[(set:$reluctance_debuff to "none")]
}{
(set:$reluctance_debuff to "none")
(unless:$character's "temp pill" is "true" or (is_male:))[
(if:$character's "reluctance" > 6)[(set:$reluctance_debuff to "nudity")]
]
(if:(is_bim:) or (is_exhib:))[(set:$reluctance_debuff to "none")]
}{
(set:$reluctance_debuff to "none")
(unless:$character's "temp pill" is "true" or (is_male:))[
(if:(datanames:$outfit) contains "sluttiness")[
(unless:(is_nude:))[
(if:$outfit's sluttiness > 5)[
(if:$character's reluctance > (12 - $outfit's sluttiness))[(set:$reluctance_debuff to "slightly too slutty")]
(if:$character's reluctance > (14 - $outfit's sluttiness))[(set:$reluctance_debuff to "too slutty")]
(if:$character's reluctance > (16 - $outfit's sluttiness))[(set:$reluctance_debuff to "way too slutty")]
]]]]
(if:(is_bim:) or (is_exhib:))[(set:$reluctance_debuff to "none")]
}{
(set:$not_wearing_underwear to false)
(if:$unprepared_transform is true)[
(set:$underwear to "male underwear")
](else:)[
(if:$wear_underwear is false)[
(if:$outfit's "panties under" is "can")[(set:$not_wearing_underwear to true)]
(set:$underwear to "no underwear")
](else:)[
(display:"filter favorite lingerie")
(if:length of $filtered_lingerie > 1)[(set:$filtered_lingerie to (twisted:...$filtered_lingerie))]
(if:length of $filtered_lingerie > 0)[(set:$underwear to $filtered_lingerie's 1st)](else-if:$outside_outfit is "male clothes")[(set:$underwear to "male underwear")](else:)[(set:$underwear to "no underwear")]
]
]
(if:$underwear is "male underwear")[(display:"apply mens underwear")](else-if:$underwear is "no underwear")[
(if:$outfit's "bra under" is "can")[(set:$outfit's tags to $outfit's tags + (a:"no bra"))]
(if:$outfit's "panties under" is "can")[(set:$outfit's tags to $outfit's tags + (a:"no panties"))]
](else:)[(set:$select to $underwear)(display:"get outfit")
(if:$outfit's "bra under" is "can" and $wear_underwear)[
(set:$outfit's "lingerie" to $select_outfit's id)
(if:$outfit's top is $outfit's breasts)[
(set:$outfit's breasts to $select_outfit's breasts)
(set:$outfit's "breast support" to $select_outfit's "breast support")
(set:$outfit's middle to "none")
](else:)[
(set:$outfit's middle to $outfit's breasts)
(set:$outfit's breasts to $select_outfit's breasts)
(set:$outfit's "breast support" to $select_outfit's "breast support")
]
]
(if:$outfit's "panties under" is "can" and $wear_underwear)[
(set:$outfit's pussy to $select_outfit's pussy)
(set:$outfit's "lingerie" to $select_outfit's id)
]
(unless:$outfit's "panties under" is "no" and $outfit's "bra under" is "no")[(set:$outfit's tags to $outfit's tags + $select_outfit's tags)]
]
(unless:(datanames:$outfit) contains "lingerie")[(set:$outfit's "lingerie" to "none")]}{
(unless:$default_outfit is 0)[(unless:$default_outfit contains $character's "id")[(unless:$favorite_outfits contains "default outfit")[(set:$default_outfit to 0)](else:)[(set:$default_outfit to $favorite_outfit's "default outfit")]]]
(unless:$default_outfit is 0)[(unless:$favorite_outfits contains "default outfit")[(set:$favorite_outfits's "default outfit" to $default_outfit)](else:)[(set:$favorite_outfits's "default outfit" to $default_outfit)]]
(unless:(is_male:) or $unprepared_transform is true or $default_outfit is 0)[
(set:$outfit to $default_outfit)
](else-if:$filter is "office")[
(set:_temp to "none")
(set:$outfit to (dm:
"id",$character's id + " mens guy workwear",
"top","loose guys' workshirt",
"breasts","loose guys' workshirt",
"category","casual",
"emphasizes",(a:),
"reveals",(a:),
"price",0,
"description","guys' clothes",
"bottom","pants",
"type","guy's clothes",
"comfort",5,
"breast support",0,
"pussy","pants",
"bra under","can",
"locations",(a:),
"lingerie",_temp,
"panties under","can",
"sluttiness",1,
"tags",(a:"masculine","mens")))
](else:)[
(set:_temp to "none")
(set:$outfit to (dm:
"id",$character's id + " mens guy tshirt",
"top","t-shirt",
"breasts","t-shirt",
"category","casual",
"emphasizes",(a:),
"price",0,
"comfort",5,
"reveals",(a:),
"description","guys' clothes",
"bottom","loose sweatpants",
"breast support",0,
"type","guy's clothes",
"pussy","loose sweatpants",
"bra under","can",
"locations",(a:),
"lingerie",_temp,
"panties under","can",
"sluttiness",1,
"tags",(a:"masculine","mens")))
]
(if:(is_male:) or $default_outfit is 0)[(set:$outfit's "outer" to "male clothes", $outfit's "style" to "mens", $outfit's "shoes" to "sneakers")
(display:"apply lingerie")
(if:(is_fem:))[(display:"mens clothes check reluctance")(if:$core_chars contains $character's "id")[(set:$outfit's "image" to "<img class='greyborder' src='img/characters/outfits/" + $character's "id" + "/casual/mens.jpg' width='100%' height=auto>")]]
(set:$outfit's colors to (a:"white"))](else:)[(display:"apply lingerie")]
}{
(set:$outfit's pussy to (twirl:"boxers","briefs"))
}{
(set:$outfit_loaded to "false", $outfit to (dm:
"top","top",
"breasts","top",
"pussy","underwear",
"bottom","bottom"))<div style='display: none;'>(display:"pick outfit")</div>(display:$stats_refresh)
}(set:_clothing_types to (dm:
"Shower","lounge",
"transactional sex debug","casual",
"day","lounge",
"Do chores","lounge",
"Do your makeup","lounge",
"Do laundry","lounge",
"Watch a movie","lounge",
"Workout","gym",
"Go to the mall","casual",
"Go shopping","casual",
"Go to the beach","beach",
"Find a job","office",
"Go to work","office",
"Hit the bar","stylin",
"Go clubbing","stylin",
"Go to SWP HQ","office",
"Give sales demo","lounge",
"Nothing","lounge",
"Night","lounge"
))(if:(datanames:_clothing_types) contains $next)[(set:$filter to $next of _clothing_types)(set:$clothing_type to $filter)](else:)[(set:$filter to "casual")(set:$clothing_type to $filter)]{
(set:$filtered_lingerie to (a:))
(set:$filtered_lingerie to $favorite_outfits's "lingerie")
(unless:$filtered_lingerie's length > 0)[
(set:$filtered_lingerie to (find:where it matches (p:$character's id, " lingerie ", str), ...$outfit_inventory))
]
}{
(set:$bottom to $outfit's "bottom")
(set:$bottom_plural to $bottom)
(if:$bottom's last is "s" and not ((words:$bottom)'s last is "dress"))[
(set:$that to "those")
(set:$shows to "show")
](else:)[
(set:$bottom_plural to $bottom + "s")
(set:$that to "that")
(set:$shows to "shows")
]
}{
(set:$filter to "All Outfits")
(set:$filtered_outfits to (unique:...(find:where it matches (p:$character's id, " ", str), ...$outfit_inventory)))
}{
(set:_filter to $filter of (dm:
"All Outfits","none",
"Beachwear","beach",
"Officewear","office",
"Activewear","gym",
"Loungewear","lounge",
"Lingerie","lingerie",
"All Outfits not Owned","not owned",
"Casual","casual",
"Stylish","stylin",
"Fetishwear","fetish"))
(unless:$filter is "none")[
(set:$filtered_outfit_favorites to _filter of $favorite_outfits)
](else:)[
(set:$filtered_outfit_favorites to (a:))
]
(set:$filtered_outfits to (unique:...($filtered_outfit_favorites + (find:where it matches (p:$character's id, " ", _filter, " ", str), ...($outfit_inventory-$filtered_outfit_favorites)))))
}{(if:(datanames:$outfit) contains "image")[(replace:?portrait)[($show_tooltip:[(print:$outfit's image)],[(if:(is_nude:))[You're naked.](else:)[(display:"outfit items")]])
]]}{<ul>(set:$text to (a:))(set:_items to (a:$outfit's top,$outfit's breasts,$outfit's bottom,$outfit's pussy,$outfit's shoes))(for: each _clothing_item, ..._items)[(unless:$text contains (lowercase:_clothing_item))[(set:$text to $text + (a:(lowercase:_clothing_item)))]](set:$text to $text - (a:"none","nothing"))(for: each _clothing_item, ...$text)[<li>(print:(upperfirst:_clothing_item))</li>](unless:$character's "temp pill" is "true" or (is_male:))[(if:(a:"C","D","E","F","G") contains $character's "breasts" and $outfit's "breast support" < 3)[(display:"describe breasts")(unless:$soreness_toggle is "Breast Soreness Mechanics: Off")[<li>Your $breasts are (twirl:"not well-supported","bouncing around in your " + $outfit's "breasts").(unless:$soreness < 1)[ Soreness: $soreness]</li>]](unless:$handbag is 0 or not ($outfit contains "colors"))[<li>👜 (print:($caps:$handbag))(set:_handbag_stats to ($get_handbag:$handbag))(if:(_handbag_stats's colors) contains any of $outfit's colors)[🎨](if:(_handbag_stats's types) contains $outfit's style)[👗](if:(_handbag_stats's location) is $clothing_type)[📍] (+$handbag_xp_bonus% XP)</li>]]</ul>(if:$reluctance_debuff is "slightly too slutty")[This outfit is *slightly* too slutty for you to feel comfortable wearing - you're being lightly penalized due to your reluctance of (print:$character's "reluctance").](if:$reluctance_debuff is "too slutty")[This outfit is too slutty for you to feel comfortable wearing - you're being penalized due to your reluctance of (print:$character's "reluctance").](else-if:$reluctance_debuff is "way too slutty")[This outfit is WAY too slutty for you to feel comfortable wearing - you're being heavily penalized due to your reluctance of (print:$character's "reluctance").]}{
(set:$outfit_loaded to "false")(set:$outfit to (dm:
"top","top",
"tags",(a:),
"breasts","top",
"pussy","underwear",
"bottom","bottom"))(display:"wear clothes")(if:(is_fem:) and (datanames:$outfit) contains "image" and $character's "temp pill" is "false")[(set:$outfit_button to "show outfit")(display:"outfit button")(display:"refresh portrait")](display:$stats_refresh)
}{
(if:$outfit_inventory contains $select)[
(display:"get outfit")
(set:$outfit_inventory to (remove: $outfit_inventory, $select))
(display:"sync favorites with inventory")
(if:$type is "ruined")[
<mark>Your (print:$select_outfit's "description") (if:($select_outfit's description)'s last is "s")[have](else:)[has] been ruined.</mark>
](else-if:$type is "silent")[
](else:)[
<mark>Your (print:$select_outfit's "description") (if:($select_outfit's description)'s last is "s" and not ((words:$select_outfit's "description") contains "dress"))[were](else:)[was] removed from your inventory.</mark>
]
(set:$type to "none")
]
}{
(unless:(datanames:$outfit) contains "tags")[(display:"apply mens clothes")]
}{
(set:$track to (twirl:"panties 1","panties 2","panties 3","panties 4","skirt 1","skirt 2"))(if:(datanames:$outfit) contains "id")[(if:(datanames:$outfit) contains "tags")[(if:$outfit's "tags" contains "jingles")[(set:$track to (twirl:"jingle 1","jingle 2"))](else-if:(words:$outfit's "id") contains "bikini")[(set:$track to (twirl:"bikini 1","bikini 2"))](else-if:(words:$outfit's "id") contains "piece")[(set:$track to "one piece 1")](else-if:((words:$outfit's "bottom") contains "skirt") or (words:$outfit's "bottom") contains "dress")[(set:$track to (twirl:"skirt 1","skirt 2"))]]](newtrack:$track,"aud/se/clothing/" + $track + ".mp3")(set:$se to $track)(display:"play sound")
}{
(if:$outfit's tags contains "mens")[
(display:"describe breasts")(display:"describe butt")
(twirl:"Your old mens' clothes ","Your old guys' clothes ","Your male clothes ","Your guy's clothes ")($char_passage:"thought clothes",[(print:$character's id of (dm:
"alina",(twirl:"fit your body awkwardly.","fit you a bit awkwardly.","make you look a little funny.","don't exactly compliment your frame.","don't fit very well.","are really tight around your ass, and loose around your shoulders.","are pretty tight around your $butt."),
"cassidy",(twirl:"are really strained around your $breasts.","look a bit comical on your female body.","look a bit funny on you.","are mightily strained around your $breasts.","are having difficulty containing your $breasts.","don't really compliment your shape."),
"ella",(twirl:"are really strained around your $breasts.","look a bit comical on your female body.","look a bit funny on you.","are mightily strained around your $breasts.","are having difficulty containing your $breasts.","don't really compliment your shape."),
"jade",(twirl:"are really strained around your $breasts.","look a bit comical on your female body.","look a bit funny on you.","are mightily strained around your $breasts.","are having difficulty containing your $breasts.","don't really compliment your shape."),
"jia",(twirl:"fit your body awkwardly.","fit you a bit awkwardly.","make you look a little funny.","don't exactly compliment your frame.","don't fit very well.","are really tight around your ass, and loose around your shoulders.","are pretty tight around your $butt."),
"lana",(twirl:"fit your body awkwardly.","fit you a bit awkwardly.","make you look a little funny.","don't exactly compliment your frame.","don't fit very well.","are really tight around your ass, and loose around your shoulders.","are pretty tight around your $butt.","strain against your $breasts.","have a tough time containing your $breasts.","are not made to flatter your female body shape."),
"liya",(twirl:"fit your body awkwardly.","fit you a bit awkwardly.","make you look a little funny.","don't exactly compliment your big tits.","don't fit very well.","are really tight around your tits, and loose around your shoulders.","are pretty tight around your big, tanned breasts.","strain against your $breasts.","have a tough time containing your $breasts.","are not made to flatter your female body shape."),
"mia",(twirl:"are really strained around your $breasts.","look a bit comical on your female body.","look a bit funny on you.","are mightily strained around your $breasts.","are having difficulty containing your $breasts.","don't really compliment your shape."),
"rae",(twirl:"feel way too big for you.","look massive on you - your body is tiny!","look really big on your tiny female body."),
"scarlit",(twirl:"fit your body awkwardly.","fit you a bit awkwardly.","make you look a little funny.","don't exactly compliment your frame.","don't fit very well.","are really tight around your ass, and loose around your shoulders.","are pretty tight around your $butt.")
))],[])
](else:)[
(if:(datanames:$outfit) contains "image")[(if:(datanames:$outfit) contains "image")[(display:"display outfit")]]
(if:$outfit contains "description")[
(if:$outfit's "description" contains "skirt" and (twist:1,2) is 1)[
(if:$character's "masculinity" > 65)[
(twirl:"Skirts are so different from pants. So much less confining!","Skirts are a unique feeling... it's windy down there!","You're getting used to the feeling of your legs rubbing together.","You suppress the urge to do a twirl in your skirt. It's such an interesting feeling, wearing one!","You're getting used to having more of a breeze between your legs. But actually it's pretty nice!","You notice your hips swaying side to side, popping the skirt slightly up in the air with each step. You'll need to be conscious of that not to give guys a free show.")
](else:)[
(twirl:"Skirts are so different from pants. So much less confining!","Skirts are a unique feeling... it's windy down there!","It's interesting, feeling your legs rubbing together. So different from clothes you'd wear as a guy.","Wearing skirts always gives you the urge to do random twirls.","At this point, you're getting used to having a breeze between your legs. Not to mention nothing *dangling* there.","Sometimes, you think that you'd never want to go back to wearing pants - skirts are so comfy.","When your hips sway you can feel your skirt lifting slightly... it's kind of exciting.")
]
](else-if:(a:"C","D","E","F","G") contains $character's "breasts" and $outfit's "breast support" < 3 and (twist:1,4) is 1)[
(display:"describe breasts")(set:$top to $outfit's "breasts")
(if:$soreness > 6 and not ($soreness_toggle is "Breast Soreness Mechanics: Off"))[(set:_bouncing to (twirl:"flopping","bouncing","jiggling"))
(twirl:"Your $breasts are feeling sore from all the _bouncing around.","Your neck feels sore and tired from walking around without proper support for your $breasts.","You feel a bit uncomfortable from walking around without support for your $breasts.","You're starting to feel sore from walking around without proper support for your $breasts.")
(set:$new_status to (dm:
"status","sore",
"emoji","👙",
"strength",2,
"length",2,
"cause","Your $breasts are sore from walking around without proper support.",
"charm buff",0,
"intellect buff",0,
"fitness buff",-1,
))(display:"new status")(display:"refresh stats")
(display:"walk jiggle image")
](else:)[
(if:$soreness is 0)[
(twirl:"Your $breasts bounce around freely in your $top.","You feel your $breasts jiggling and bouncing. This $top doesn't offer much support.","Your $breasts bounce around in your $top.","Your $breasts bounce and jiggle - this $top doesn't support them very much.")](else:)[
(twirl:"Your $breasts keep bouncing and jiggling.","Your $breasts keep jiggling while you walk around.","Your $breasts jiggle around freely in your $top.","Your $breasts continue flopping around in your $top.")
]
(if:$character's "breasts" is "C")[(inc:'soreness')]
(if:$character's "breasts" is "D")[(inc:'soreness',2)]
(if:(a:"E","F","G") contains $character's "breasts")[(inc:'soreness',3)]
]
](else-if:(text:$outfit's "shoes") contains "heel" and (twist:1,2) is 1)[
(display:"walking sound")
(if:$character's "masculinity" > 65)[
(twirl:"You need to get used to walking heel to toe, not toe to heel.","In heels, you need to walk in smaller steps, otherwise your stride looks awkward.","Wearing heels makes your stride shorter than normal, so you have to take an increased number of small steps to go the same distance you would with normal shoes.","It's definitely tough wearing heels... but it's easiest to visualize yourself walking in a straight line.","You find it helps to arch your feet slightly as you walk.","Your steps are a bit wobbly in these heels.","Walking in heels is definitely throwing you off balance a bit.","You're quickly realizing that you'll need to start with shorter heels before you move onto higher ones.","You make a mental note to practice walking in heels more while you're at home, and not around people.","Wearing heels shifts your center of gravity, meaning you really have to watch your posture so you maintain your balance.","You find yourself needing to take very small steps in these heels.","You mentally remind yourself not to lock your knees while wearing heels.","Posture is the key to balance, especially in heels like these.","While wearing heels, you find it helps to squeeze your butt a bit. It puts your hips forward and helps keeping your core tight.","Honestly, there's no trick to getting used to heels at first. It's just repetition, repetition, repetition. You have to wear them and get used to the odd feeling of being off balance.","You find it helps to turn your toes out to the sides, juuuust a little bit.","You keep catching your heels on the lips of uneven surfaces, how do women deal with this!")
](else:)[
(twirl:"Wearing heels, you consider that a lot of women's fashion is about restricting movement.","You feel so fancy and sexy in heels!","Heels make you feel fancy and pretty and elegant.","The shape and angle that your feet make when placed in high heels accentuates your tits and ass. Biomechanics!","Heels make a really satisfying clicking noise when you walk on hard surfaces. Makes you feel powerful and sexy.","One reason you like wearing heels is for the sound. It's definitely classy.","You notice your heels orient your posture in a way that makes your ass and breasts protrude.","Your feet hurt a little, but wearing heels is worth what they do to your figure!")
]](else-if:$outfit's "reveals" contains "tummy" and $outfit's "description" contains "crop" and $character's "masculinity" > 85 and (twist:1,3) is 1)[
(twirl:"It feels super weird showing off your belly button like this...","Feels really funny to bare your tummy... but that's what girls do.","You never thought about what it would be like to walk around with a bare tummy.","Feels strange, showing off your tummy like this...")
](else-if:$outfit's "description" contains "bikini" and (twist:1,2) is 1)[
(if:$character's "masculinity" > 65)[
(twirl:"You're really on display, wearing a bikini like this. It's a tough feeling to get used to!","You wonder why bikinis are socially acceptable to be worn in public, but lingerie isn't. Not that you're considering wearing a bra outside...","It's weird to think that *you* are going to have bikini tan lines. They don't carry over when you transform back to a guy, right?","You pause for a moment to wonder if your bikini tan lines would transfer back to your male body.","You feel really... sexy when you wear a bikini. The sensation is still so new, so foreign.","As a guy, you'd never get away with wearing this little fabric.","It's insane how this small a volume of fabric can be considered an outfit.","You really hope if you get in the water your nipples won't be visible...","Wearing a bikini is actually way comfier than you expected.","It's nice wearing a two-piece when it's this warm out.","You hope you tied your bikini securely enough.")
](else:)[
(twirl:"Wearing a bikini top like this is quite like wearing a bra - you're on full display.","You pause for a moment to consider how bikinis are somehow socially acceptable in public, yet lingerie is not.","Bikinis reveal so much...","Bikinis are nice, for getting even tan lines.","Damn, going out in a bikini... really makes you feel like a pornstar. Super sexy.","It occurs to you that bikinis are basically underwear, that it's socially acceptable to go out and be seen in. Funny.","You chuckle as you think about how easy it would be to get someone to apply sunscreen for you.","There's so little fabric in your outfit, it's crazy...","The thing with bikini bottoms, is they can give you a wedgie sometimes.","You're showing a lot of skin...","Your bikini bottom keeps riding up your ass, you kind of wish you could see it yourself...")]
](else-if:$outfit's "type" is "one-piece swimsuit" and (twist:1,3) is 1)[
(twirl:"The annoying thing about one-piece swimsuits, is how annoying they are to take off, especially if you have to pee.","The thing you never yoused to think about, is how hard one-piece swimsuits are to take off and put on after they've gotten wet.","One piece swimsuits *look* more comfy than two-piece swimsuits, but they aren't necessarily.","You're glad you can wear something that covers a little bit more at the beach... even if it hugs your figure so tightly.")
](else-if:$outfit's "description" contains "dress" and (twist:1,2) is 1)[
(twirl:"Wearing a dress makes you feel *extremely* feminine.","Sometimes you wish more dresses had fucking pockets.","Wearing a dress is totally great for the hot Summer City weather.","You think about how nice and easy dresses are to wear - a true boon to the lazy.","Dresses are so comfortable! Plus they make you look put together with so little effort...","The breeze feels nice as you walk around. Dresses can be awesome.","In a dress, your range of motion is a bit restricted.","Why don't people add fucking pockets to dresses? God.","Wearing a dress makes you feel sexy and put together.","You think for a moment about how incredibly versatile dresses are.","One issue with wearing dresses, is that your thighs tend to rub together.","You stop for a moment to think about how amazing dresses are. A single garment that you put on your body, and yet people look at you and are like 'wooow where are you going looking so nice?!' And they are literally zero effort, zero matching or planning. Wearing a dress makes you look like you actually tried!","Now it makes sense why girls always carry a purse, you don't have any pockets!")
](else-if:$outfit's "tags" contains "easy access dress")[
(twirl:"You feel a bit... vulnerable in this dress. The thought that someone could just flip up the bottom and... yeah.","You should be okay so long as you don't need to adjust your shoes... Oh no, your foot just fell out of one!","You have to be careful when you sit on a stool... Everyone could see underneath!","You step a little more carefully, one spill in this outfit and everyone will get a free show.")
](else-if:$outfit's "tags" contains "easy access skirt")[
(twirl:"You gotta be careful, even a light breeze could lift up your skirt...","Even just the swaying of your hips is dangerous in this skirt... Is that scary or exciting?","Don't drop anything or you'll be liable to show everything that's underneath that skirt!","Why did you choose a skirt like this if you didn't want to show a little off?","You're getting a lot of attention with that skirt... Isn't that exciting?","Did you remember to wear panties with this skirt? If not the results could be... Exhilarating.")
](else-if:$outfit's "tags" contains "jingles")[
(twirl:"Your outfit jingles as you walk.","Your outfit jingles conspicuously as you move.","Everytime you walk your outfit rings like a bell, drawing attention to you.","There's no way to be conspicuous wearing this outfit, it jingles with every step!")
](else-if:$outfit's "tags" contains "not serious")[
(twirl:"People won't really take you seriously, dressed up like this.","If you want to be taken seriously, you should probably wear something else...","Honestly you look ridiculous, who would take you seriously in that?","Wow, really trying to to make an impression huh? No one will take you seriously.")
](else-if:$outfit's "sluttiness" > 6 and (twist:1,2) is 1)[
(twirl:"You're dressed like such a slut...","What were you thinking dressing like this? Obviously you were looking for a good time...","You can pull this off... Right?","Most girls would blush wearing your outfit — and here you are not blushing at all?","You'd burst into flames if you walked into a church wearing that outfit...","You're *definitely* looking for some attention from guys wearing that outfit.","You're showing a lot of skin...")
](else-if:($outfit's "emphasizes" contains "cleavage" or $outfit's "emphasizes" contains "lots of cleavage") and (a:"B","C","D","E","F","G") contains $character's "breasts")[
(set:$top to $outfit's "top")(display:"describe breasts")
(twirl:"You glance down at your $breasts, prominently displayed in your $top.","Your $breasts are clearly displayed by your $top.","Your $top really emphasizes your $breasts.","You keep trying to keep your $breasts from spilling out your $top, but they can barely stay in place!","Your $breasts can really only move up and down in your $top, but they do with every step...","Your $breasts draw the attention of a lot of guys wearing your $top, it's kind of exciting...","You try to look at your cute shoes but your vision is blocked by your $breasts...")
](else-if:$outfit's "comfort" > 7)[
(set:_description to $outfit's "description")
(twirl:"You love how comfy this outfit is.","This _description is so comfy.","Why are womens' clothes so much more comfortable than guys' clothes?","You could easily sit down and take a nap no problem in this outfit.","This outfit is much less restricting than the others, you feel super comfy wearing this.","You only hope the clothes you have for going out are as comfy as this outfit.","You love how soft and comfy womens' clothes often are.","This outfit actually feels really nice on your skin - all your guys' clothes were so scratchy.")(set:$new_status to (dm:
"status","comfy",
"emoji","😌",
"strength",1,
"length",1,
"cause","You feel really comfy in your " + _description + ".",
"charm buff",1,
"intellect buff",0,
"fitness buff",0,
))(display:"new status")(display:"refresh stats")
](else-if:(checkdm:$outfit,"style","is","cute"))[
(set:$top to $outfit's "top")
(twirl:"You feel really cute in this outfit.","This $top is really cute.","You look like the girl next door wearing this outfit — super cute.","You just hope people don't get the wrong idea from your outfit, you just wanted to look cute.")
](else-if:(checkdm:$outfit,"style","is","slutty"))[
(set:$top to $outfit's "top")
(twirl:"You feel pretty slutty in this outfit.","This outfit is pretty damn slutty.","You know you're going to get a lot of looks wearing this slutty piece.","You wonder if all the looks are because you're hot or if they're from all the skin you're showing.","You can't help but flaunt what you got a little more in this outfit.","You definitely feel like the center of attention when you wear this.")
](else-if:(checkdm:$outfit,"style","is","relaxed"))[
(twirl:"This is quite a relaxed getup - hopefully people won't judge you.","You hope people don't think you're a slob for dressing like this.","It's not the most exciting outfit, but sometimes a girl needs to relax.","The best thing about an outfit like this is you won't get a ton of attention — finally a break.")
](else-if:$outfit's "tags" contains "underwire")[
(twirl:"*Ouch! I didn't know that underwire bras could hurt when they are not adjusted correctly...*","With underwire bras like this, you never forget you're wearing one. You always feel it there, against your skin. Digging into it a bit.","Your favorite part of the day is getting to finally take off this underwire bra...","A correctly-fitted underwire bra feels good, it's so comfortable that you forget you're wearing one.","You haven't thought much about how bras were structured until you started wearing them - the bra cups are hammocks, and the wires are the anchoring points of that hammock. The wires transfer the weight of the breasts into the band.","Bras with an underwire like yours, provide much more lift and shape than the wireless versions.","Underwire bras feel pretty tight or uncomfortable at first... but they are supposed to stretch out and feel slightly more comfy over time.")
](else:)[
(if:$character's "masculinity" > 60)[
(twirl:"It still feels unreal that you're out wearing women's clothes like this.","Clothes meant for women definitely feel a bit more soft and flimsy than guys' clothes. Takes getting used to.","*I suppose I'd like to see a girl wearing this if I was a... **WHEN** I'm a guy again.*","*I thought I'd hate wearing women's clothes but I guess they're just... well, clothes...*","*If I'm going to dress up in girl's clothes I might as well make sure they're nice ones...*","*At least I look pretty, if I'm going to dress up as a girl... might as well be a pretty one.*","*God, I still can't believe I'm really doing this... all dressed up as a woman.*","Wearing women's clothes feels so *right*, now that you have a woman's body.","You feel a little self-conscious, dressed like this.")
](else:)[
(twirl:"At this point, you're pretty used to being out in public in clothes like this - it doesn't feel weird anymore.","You're used to dressing in feminine clothes now, and being seen in them.","You feel the urge to check out your outfit in the next mirror you see.","You really love the variety that womens' clothes offer, and you feel really confident going out like this now.","You don't get worried about being judged for what you wear anymore.","The one thing you wish is that womens' clothes had more pockets.")
]]
]]
}{
(if:(a:"cassidy","mia","jade","ella") contains $character's id and ((checkdm:$outfit,"reveals","contains","cleavage") or (checkdm:$outfit,"reveals","contains","breasts") or (checkdm:$outfit,"reveals","contains","lots of cleavage")))[(replace:?image)[($vid:"scenes/generic/clothes/jiggle/jiggle 1.mp4")]]
}(set:$previous to (text:$next))(if:$wardrobe_button_text is 0)[(set:$wardrobe_button_text to "Clothes")](if:(is_fem:))[(if:$next is "day")[(link:"Wardrobe")[(set:$previous to $next)(if:$outfit_inventory's length > 0)[(display:"wardrobe owned categories")(display:"filter outfits unique")(goto:"wardrobe")](else:)[ *You don't own any women's clothes yet.* ]]](else:)[(link:$wardrobe_button_text)[(display:"wardrobe enter")]]](set:$wardrobe_button_text to "Clothes"){(if:$handbag is 0 and $location_params contains "change clothes")[ *You'll need a handbag to change clothes in this location.* ](else-if:$location_params contains "change clothes" and $today_events contains "handbag change")[ *You can only access your wardrobe once per day in a location like this, even with a handbag.* ](else:)[(set:$previous to (text:$next))(if:$outfit_inventory's length > 0)[(set:$filter to $clothing_type of (dm:"beach","Beachwear","casual","Casual","office","Officewear","lounge","Loungewear","lingerie","Lingerie","stylin","Stylish","fetish","Fetishwear","gym","Activewear"))(display:"wardrobe owned categories")(unless:$owned_categories contains $filter)[(set:$filter to "All Outfits")(display:"filter outfits unique")](else:)[(display:"filtered outfits owned unique")](goto:"wardrobe")](else:)[ *You don't own any women's clothes yet.* ]]}(display:"update palette")(set:$wardrobe to "active"){
<div class='left_screen_wide' data-simplebar>(css:"line-height:100%")[<span class='fourth'>[]<outfit_display|</span>]</div><div class='top_right' data-simplebar>[]<right_screen|</div>
(display:"populate outfit display")(display:"wardrobe sidebar")
}{
(set:$old_filter to $filter)
(set:$index to 0)
(set:$selections to (dm:))
(set:$outfit_filter to (text:$filter of (dm:"none","none","All Outfits","none","Beachwear","beach","Officewear","office","Activewear","gym","Loungewear","lounge","Lingerie","lingerie","All Outfits not Owned","not owned","Casual","casual","Stylish","stylin","Fetishwear","fetish")))
(replace:?outfit_display)[{
(for: each _clothing_item, ...$filtered_outfits)[
(inc:'index')
(set:$selections's (text:$index) to _clothing_item)
(set:_image to ("<img class='wobbly' src='img/characters/outfits/" + $character's id + "/"+ (words:$selections's (text:$index))'s 2nd + "/" + (joined:" ",...(subarray:(words:$selections's (text:$index)),3,length of (words:$selections's (text:$index)))) + ".jpg' width='100%' height=auto>"))
(if:$filter is "All Outfits")[(set:$span to '<span class="none">')](else:)[(set:$span to (cond: $favorite_outfits's $outfit_filter contains $selections's (text:$index), '<span class="favorite">','<span class="none">'))]
(print:$span + '(link:"' + (text:_image) + '")[(set:$select to "' + (text:$selections's (text:$index)) + '")</span>(display:"click")(display:"wardrobe select outfit")]')
]}]
(live:0.5s)[(unless:$old_filter is $filter)[(if:$filter is "All Outfits")[(display:"filter outfits unique")](else:)[(display:"filtered outfits owned unique")](display:"populate outfit display")](unless:$wardrobe is "active")[(stop:)]]
}{
(replace:?right_screen)[(display:"day display")($centered:[(color:$palette_colors's 3rd)[(if:$previous is "day")[Wardrobe](else:)[$current_location]]])<div class='options'>(link-repeat:"Favorite All")[(display:"click")(display:"favorite primary")](link-repeat:"Clear Favorites")[(display:"click")(display:"clear favorites")](nl:1)(link:"Exit")[(set:$next to $previous)(set:$wardrobe to "inactive")(stop:)(display:"go back wardrobe")]</div>
<div class='centered'>
(if:(is_fem:) and ($character's "masculinity" < 67 or (is_exhib:)))[(checkbox: 2bind $wear_underwear, " Wear underwear")(nl:2)](else:)[(set:$wear_underwear to true)]
(print:"Filter outfits:
")<span class='full'>(if:length of $owned_categories > 1)[(dropdown: 2bind $filter, ...$owned_categories)](else:)[(set:$filter to "All Outfits")All Outfits(nl:1)]</span>
<span class='highlight'>(unless:$previous is "day")[(This location's clothing type: (print:$clothing_type of (dm:"beach","Beachwear","casual","Casual","office","Officewear","lounge","Loungewear","lingerie","Lingerie","stylin","Stylish","fetish","Fetishwear","gym","Activewear")))(nl:2)](if:$previous is "day")[To equip an outfit, click on it, and select the "Wear as" checkboxes for the context (Casual, Beachwear, etc.) you want to wear it.(nl:2)
If you select multiple outfits for the same context, one will be picked at random from your selections. (nl:2)
To view your currently selected outfits, filter by a specific context, and all selected outfits will be highlighted in (color:"bisque")[yellow].](else:)[Since you're already at a location, you can manually equip an outfit by selecting it and clicking "Wear Now".]</span>
</div>]
}{
(set:$owned_categories to (a:"All Outfits"))
(set:$owned_categories_unsorted to (a:))
(for: each _clothing_item where it matches (p:$character's id + " ", str), ...$outfit_inventory)[(set:$owned_categories_unsorted to $owned_categories_unsorted + (a:(words:_clothing_item)'s 2nd))]
(if:$owned_categories_unsorted contains "beach")[(set:$owned_categories to $owned_categories + (a:"Beachwear"))]
(if:$owned_categories_unsorted contains "casual")[(set:$owned_categories to $owned_categories + (a:"Casual"))]
(if:$owned_categories_unsorted contains "office")[(set:$owned_categories to $owned_categories + (a:"Officewear"))]
(if:$owned_categories_unsorted contains "gym")[(set:$owned_categories to $owned_categories + (a:"Activewear"))]
(if:$owned_categories_unsorted contains "lounge")[(set:$owned_categories to $owned_categories + (a:"Loungewear"))]
(if:$owned_categories_unsorted contains "lingerie")[(set:$owned_categories to $owned_categories + (a:"Lingerie"))]
(if:$owned_categories_unsorted contains "stylin")[(set:$owned_categories to $owned_categories + (a:"Stylish"))]
(if:$owned_categories_unsorted contains "fetish")[(set:$owned_categories to $owned_categories + (a:"Fetishwear"))]
}{
(set:$wardrobe to "card selected")
(display:"get outfit")
(set:$next to "wardrobe select outfit next")(display:"next")
}<div class='left_screen_30'>[(print:$select_outfit's "image")]<outfit_display|</div><div class='left_screen_50'>[(display:"clothing stats")]<center_screen|</div>(display:"wardrobe sidebar select")<div class='top_right' data-simplebar>{(display:"day display")(nl:1)(color:"#4a2424")[*Wardrobe*](nl:1)
<div class='options'>(link:"Back")[(display:"click")(display:"wardrobe save changes")(set:$next to "wardrobe")(display:"next")]</div>
(display:"wardrobe favorite options")}</div>{
(display:"wardrobe save changes")(set:$outside_outfit to $select_outfit's "id")(display:"load specific outfit")(set:$next to $previous)(if:(datanames:$location_params) contains "ambience")[(set:$next to "changing room")(display:"next")](else:)[(display:"go back wardrobe")](display:"outfit button")(if:$location_params contains "change clothes")[(set:$today_events to it + (a:"handbag change"))($play:"sound","handbag")]
}{
(if:$select_outfit's locations contains "beach")[(set:$favorite_outfits's beach to $favorite_outfits's beach - (a:$select_outfit's id))(if:$favorites's beach is true)[(set:$favorite_outfits's beach to (a:$select_outfit's id) + $favorite_outfits's beach)]]
(if:$select_outfit's locations contains "casual")[(set:$favorite_outfits's casual to $favorite_outfits's casual - (a:$select_outfit's id))(if:$favorites's casual is true)[(set:$favorite_outfits's casual to (a:$select_outfit's id) + $favorite_outfits's casual)]]
(if:$select_outfit's locations contains "office")[(set:$favorite_outfits's office to $favorite_outfits's office - (a:$select_outfit's id))(if:$favorites's office is true)[(set:$favorite_outfits's office to (a:$select_outfit's id) + $favorite_outfits's office)]]
(if:$select_outfit's locations contains "gym")[(set:$favorite_outfits's gym to $favorite_outfits's gym - (a:$select_outfit's id))(if:$favorites's gym is true)[(set:$favorite_outfits's gym to (a:$select_outfit's id) + $favorite_outfits's gym)]]
(if:$select_outfit's locations contains "lounge")[(set:$favorite_outfits's lounge to $favorite_outfits's lounge - (a:$select_outfit's id))(if:$favorites's lounge is true)[(set:$favorite_outfits's lounge to (a:$select_outfit's id) + $favorite_outfits's lounge)]]
(if:$select_outfit's locations contains "lingerie")[(set:$favorite_outfits's lingerie to $favorite_outfits's lingerie - (a:$select_outfit's id))(if:$favorites's lingerie is true)[(set:$favorite_outfits's lingerie to (a:$select_outfit's id) + $favorite_outfits's lingerie)]]
(if:$select_outfit's locations contains "stylin")[(set:$favorite_outfits's stylin to $favorite_outfits's stylin - (a:$select_outfit's id))(if:$favorites's stylin is true)[(set:$favorite_outfits's stylin to (a:$select_outfit's id) + $favorite_outfits's stylin)]]
(if:$select_outfit's locations contains "fetish")[(set:$favorite_outfits's fetish to $favorite_outfits's fetish - (a:$select_outfit's id))(if:$favorites's fetish is true)[(set:$favorite_outfits's fetish to (a:$select_outfit's id) + $favorite_outfits's fetish)]]
(set:$favorite_outfits_character's (text:$character's id) to $favorite_outfits)
(if:$favorites's default is true)[(set:$default_outfit to $select_outfit)](else-if:not ($default_outfit is 0 or $select_outfit is 0))[(if:$default_outfit's id is $select_outfit's id)[(set:$default_outfit to 0)]]
(if:$filter is "All Outfits")[(display:"filter outfits unique")](else:)[(display:"filtered outfits owned unique")]
}{
(set:$current_location to $location_params's "name")[(display:"character status")]<status|<div class='center_screen' data-simplebar>[(print:$location_params's "changing location pic")
(print:(twirl:"You find a quiet place to get changed.","You find somewhere to get changed.","You get changed in " + $location_params's "changing location name" + "."))
(set:$ambience to $location_params's "ambience")(display:"play ambience")[<div class='options'><span class='shadow'>Getting changed...</span></div>]<message|]<screen|</div><div class='top_right' data-simplebar>[]<right_screen|(display:$location_params's "location refresh")</div>(live:1s)[(replace:?message)[(display:"clothes sound")<div class='options'><span class='shadow'>(if:(datanames:$outfit) contains "tags")[(if:$outfit's tags contains "collar")[Adjusting collar...](else-if:$outfit's tags contains "straps")[Adjusting straps...](else-if:$outfit's tags contains "garter")[Adjusting garter...](else-if:$outfit's tags contains "stockings")[Adjusting stockings...](else-if:$outfit's tags contains "zipper")[Pulling up zipper...](else-if:$outfit's tags contains "long changing")[This takes a really long time to put on...](else-if:$outfit's tags contains "strings")[Tying strings...](else:)[Finishing up...]</span></div>]](stop:)](live:3s)[(replace:?message)[
(if:((is_exhib:)))[
(if:($outfit's "sluttiness" >= 6) and (($status's "status" is "uncomfortable") or ($status's "status" is "very uncomfortable")))[(display:"reset status")]
(if:($status's "status" is "uncomfortable" and $outfit's "sluttiness" < 6))[(print:"
")<mark>[(twirl:"These clothes feel constraining...","Maybe a more revealing outfit would feel better...","It's not exposing as much as you'd like...")]]
(else-if:($status's "status" is "very uncomfortable" and $outfit's "sluttiness" < 6))[(print:"
")<mark>[(twirl:"This feels very wrong.","Your outfit is way too stuffy for you.","Not nearly enough skin showing.")]]
(else-if:($status's "status" is "uncomfortable" and $underwear is not "no underwear"))[(print:"
")<mark>[(twirl:"Your underwear feels too restrictive.","You'd feel more comfortable without underwear.","You feel weird now wearing something under your outfit.")]]
(else-if:($status's "status" is "very uncomfortable" and $underwear is not "no underwear"))[(print:"
")<mark>[(twirl:"You feel almost locked in place while wearing underwear.","Underwear no longer feels right.","It would feel way more freeing if you weren't wearing underwear.")]]]
(print:"
")(display:"pants squeeze")(display:"thought clothes")(if:$status's "status" is "sore" and $outfit's "breast support" > 3)[
*This outfit supports my breasts better.*]
<div class='options'>[]<options|(link-repeat:$location_params's "home option")[(if:(is_nude:))[(replace:?options)[(if:$location_params contains "change clothes")[(set:$today_events to it - (a:"handbag change"))]*Not while I'm naked!*(nl:1)]](else:)[(set:$next to $location_params's "home")(display:"next")]]<div>](stop:)]
}{
($char_passage:"pants squeeze",[{(if:$character's "id" is "lana" or $character's "id" is "mia" or $character's "id" is "alina" or $character's "id" is "jade")[(if:$outfit's "bottom" is "jeans" or $outfit's "bottom" is "jeggings")[
(print:(twirl:
"<video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/jeans 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"<video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/jeans 2.mp4' autoplay='' loop='' muted='' playsinline/>",
"<div class='top_left_pic'><video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/jeans 3.mp4' autoplay='' loop='' muted='' playsinline/></div>",
"<div class='top_left_pic'><video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/jeans 4.mp4' autoplay='' loop='' muted='' playsinline/></div>",
"<div class='top_left_pic'><video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/jeans 5.mp4' autoplay='' loop='' muted='' playsinline/></div>",
"<div class='top_left_pic'><video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/jeans 6.mp4' autoplay='' loop='' muted='' playsinline/></div>",
"<video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/jeans 7.mp4' autoplay='' loop='' muted='' playsinline/>"))
]
(if:(a:"lana casual blue sweatshirt","lana casual grey sweatpants","lana casual support your local fuckboy","lana gym camo yoga pants","lana gym teal running wear","lana lounge grey knit leggings","lana lounge relaxed fit","jade stylin going out") contains $outfit's "id")[
(print:(twirl:
"<div class='top_left_pic'><video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/grey leggings 1.mp4' autoplay='' loop='' muted='' playsinline/></div>",
"<div class='top_left_pic'><video disableRemotePlayback src='img/scenes/generic/clothes/tight squeeze/grey leggings 2.mp4' autoplay='' loop='' muted='' playsinline/></div>"))
]
]}],[])
}{
(if:$card_select is "common")[
(set:_common_cards to (twisted:"02S","03S","04S","04S","05S","06S","07S","09S","10S","11S","12S","14S","15S","17S","18S","19S","20S","22S","23S","24S","25S","26S","28S","29S","30S","31S","32S","33S","34S","36S","37S","38S","40S","41S","42S","43S","44S","46S","47S","48S","49S","51S","52S","53S","55S","57S","58S","59S","60S"))(set:$card_select to 1st of _common_cards)]
(if:$card_select is "uncommon")[
(set:_uncommon_cards to (twisted:"02A","03A","04A","04A","05A","06A","07A","09A","10A","11A","12A","14A","15A","17A","18A","19A","22A","23A","24A","25A","26A","28A","29A","30A","31A","32A","33A","34A","35A","36A","37A","38A","39A","40A","41A","42A","43A","44A","46A","47A","48A","49A","51A","52A","53A","55A","57A","58A","59A","60A","01S","08S","13S","16S","21S","27S","35S","39S","45S","50S","54S","56S"))(set:$card_select to 1st of _uncommon_cards)]
(if:$card_select is "rare")[
(set:_rare_cards to (twisted:"01A","08A","13A","16A","20A","21A","27A","35A","39A","45A","50A","54A","56A"))(set:$card_select to 1st of _rare_cards)]
}{
(unless:(a:"rare","common","uncommon") contains $card_select)[
(set:$card_select to "common")
(if:(twist:1,3) is 1)[(set:$card_select to "uncommon")]
(if:(twist:1,25) is 1)[(set:$card_select to "rare")]
]
(display:"trading card draw rarity")
(display:"trading card get info")
}{
(set:$trading_card to (dm:))
($use_global: "$trading_card_database", "window.GE.trading_card_database", [{
(set:$trading_card to 1st of (find:_card where (text:_card's id) is (text:$card_select), ...$trading_card_database))
}])
}{
($use_global: "$trading_card_database", "window.GE.trading_card_database", [{
(set:$trading_cards to (find:_card where $card_inventory contains (text:_card's id), ...$trading_card_database))
}])
}{<span class='fourth'><span class='borderless'>
[(if:$card_inventory's length > 1)[(set:$sorted_card_inventory to (unique:...(sorted:...$card_inventory)))](else:)[(set:$sorted_card_inventory to $card_inventory)]
(set:$filtered_card_inventory to $card_inventory)
(display:"trading cards get info")
(for: each _trading_card, ...$trading_cards)[(print:"(link:'" + (text:_trading_card's "img base") + "')[(set:$se to 'card')(display:'play sound')(set:$card_select to '" + (text:_trading_card's id) + "')(display:'trading card get info')(replace:?screen)[(display:'card display')]]")]]<cards|</span></span>
<div class='options'>(link:"Back")[(display:"click")(display:"go back")]</div>
}(display:"card stats")
<div class='options'>(link:"Back")[($play:"sound","card back")(replace:?screen)[(display:"card inventory")]]</div><div class='trading_card'><span class='borderless'>[(link:$trading_card's "img base")[(display:"card flip reverse for no reason")]]<card_image|</span></div>(color:$palette_colors's 3rd)[(nl:1)(css:"font-size:4vw")[(print:$trading_card's "id_base")/60] (if:$trading_card's "type" is "foil")[ <span class='chromatic'>(color:"white")[(foil)]</span>]
<span class='shadow'>(color:$palette_colors's 2nd)[(print:$trading_card's "name")]</span>
Card set: (print:(upperfirst:$trading_card's "set"))
Card rarity: (print:(upperfirst:$trading_card's "rarity"))
Value: $(print:$trading_card's "value")
You have (print:(count:$card_inventory,$trading_card's "id")) of these.]{
($play:"sound","card")
(replace:?card_image)[(link:"<img class=borderless src=img/tc/reverse.png width=100% height=auto>")[($play:"sound","card back")(replace:?card_image)[(link:$trading_card's "img base")[(display:"card flip reverse for no reason")]]]]
}(display:"bimbo reluctance")(display:"reluctance choice")
There's an X-Change Trading Card in the X-Change pill package.($play:"sound","open pack")
(display:"trading card draw")(display:"card stats")(set:$card_inventory to $card_inventory + (a:$card_select))(unless:$location_params is 0)[(set:$unprepared_transform to ($handbag is 0 and $location_params contains "change clothes"))](display:"apply mens clothes")(display:"apply mens underwear")
<div class='options'>(link:"Take it")[(display:"register reluctance")(if:$take_type is "continue")[(replace:?status)[(display:"character status")](if:$next is "day")[(set:$next to "day post transform")](display:"go back")](else:)[(display:"advance time")]]</div>{(display:"trading card draw")
(display:"card stats")(set:$card_inventory to $card_inventory + (a:$card_select))}{
(set:$generate_specific_curiosity to (macro: str-type _reason, str-type _curiosity_core_description, [
(set:$curiosity to 1st of ((find:_curiosity where _curiosity's description is _curiosity_core_description, ...$curiosity_quest_set) + (a:"false")))
(unless:$curiosity is "false")[(set:$curiosity to it + (dm:"success","false"))
(set:$curiosity's description to _reason + $curiosity's description)
(set:$time_from_curiosity to 0)]
(out:)[]
]))
}{
(set:$curiosity_triggers to $curiosity_triggers + (cond:
(is_male:), (ds:"male"),
$character's "reluctance" > 6 and $character's "reluctance" <= 10, (ds:"high reluctance"),
$character's "reluctance" > 3, (ds:"mid reluctance"),
(ds:"low reluctance")
))
(if:(is_fem:))[(set:$curiosity_triggers to it - (ds:"male"))(set:$curiosity_triggers to it + (ds:"female"))]
(set:$curiosity_triggers to (cond:
$character's "masculinity" > 74, $curiosity_triggers + (ds:"high masculinity"),
$character's "masculinity" > 49, $curiosity_triggers + (ds:"mid masculinity"),
$curiosity_triggers + (ds:"low masculinity")
))
(if:$status's "status" is "sexually frustrated" or $status's "status" is "very sexually frustrated")[(set:$curiosity_triggers to it + (ds:"sex","frustrated"))(set:$curiosity_trigger_description to "Because you're sexually frustrated, ")]
(unless:$global_events contains "take pill" or $global_events contains "take pill spike")[(if:(is_male:))[(set:$curiosity_triggers to it + (ds:"pill"))]]
(set:$matching_curiosity to (find: _quest where $curiosity_triggers contains all of _quest's "triggers", ...$curiosity_quest_set))
(if:length of $matching_curiosity > 0)[
(set:$curiosity to (twirl:...$matching_curiosity))
(set:$curiosity to it + (dm:"success","false"))
(unless:$curiosity contains "type")[(set:$curiosity to it + (dm:"type","normal"))]
(display:"generate curiosity description")
(set:$time_from_curiosity to 0)]
}{
(set:_description to (upperfirst:(cond:$curiosity_trigger_description is "false","",$curiosity_trigger_description) + (twirl:"you're curious about ","you're interested in ","you're wondering about ","you feel like ")))
(set:$curiosity's "description" to (_description + it))
}{
(set:$curiosity_quest_set to (a:
(dm:
"description",(twirl:"transforming into a woman.","trying out a woman's body."),
"objective","Take any X-Change pill, or do a New-U transform.",
"triggers",(ds:"male","mid masculinity"),
"duration",5,
"solution","transform to woman"),
(dm:
"description",(twirl:"approaching a girl a the bar.","testing your luck with a girl at the bar.","talking to a lady at the Broken Drum."),
"objective","Talk to a woman at the bar.",
"triggers",(ds:"male","high masculinity"),
"duration",5,
"solution","girl approach"),
(dm:
"description","fucking a girl.",
"objective","Have sex with a girl, any girl!",
"triggers",(ds:"male","sex"),
"duration",15,
"solution","girl fuck"),
(dm:
"type","branching",
"description","cumshot facials... 💦",
"objective","But will you",
"masculine objective","give someone a facial",
"feminine objective", "receive one yourself?",
"triggers",(ds:"facial dream"),
"duration",15,
"solution",(dm:
"masculine","give facial",
"feminine","receive facial")),
(dm:
"type","branching",
"description","watching porn.",
"objective","But will you",
"masculine objective","watch mainstream",
"feminine objective", "X-Change™ porn?",
"triggers",(ds:"sex"),
"duration",5,
"solution",(dm:
"masculine","mainstream porn",
"feminine","x-change porn")),
(dm:
"description","getting a girl's number.",
"objective","Get a woman's number at the bar.",
"triggers",(ds:"male","high masculinity"),
"duration",5,
"solution","girl number"),
(dm:
"description","hitting on women at the bar.",
"objective","Successfully use a pickup line at the bar.",
"triggers",(ds:"male","high masculinity"),
"duration",5,
"solution","girl pickup line"),
(dm:
"description","buying a girl a drink at the bar.",
"objective","Buy any drink for a woman at the bar.",
"triggers",(ds:"male","high masculinity"),
"duration",5,
"solution","girl alcohol"),
(dm:
"description","getting coffee from the mall.",
"objective","Buy a coffee from the Jitters Cafe at the mall.",
"triggers",(ds:"high reluctance","male"),
"duration",5,
"solution","coffee"),
(dm:
"description","getting some alcohol somewhere.",
"objective","Purchase a drink at the bar or club.",
"triggers",(ds:"high reluctance","male"),
"duration",5,
"solution","alcohol"),
(dm:
"description","working out.",
"objective","Finish a workout at the gym.",
"triggers",(ds:"high reluctance","male"),
"duration",5,
"solution","workout"),
(dm:
"description","spending some time at the beach.",
"objective","Choose \"Go to the beach\" as a daytime activity.",
"triggers",(ds:"high reluctance","male"),
"duration",5,
"solution","beach"),
(dm:
"description","exploring the mall.",
"objective","Choose \"Go to the mall\" as a daytime activity.",
"triggers",(ds:"high reluctance","male"),
"duration",5,
"solution","mall"),
(dm:
"description","going dancing at a club.",
"objective","Dance at the club on Friday or Saturday.",
"triggers",(ds:"high reluctance","male"),
"duration",5,
"solution","dancing"),
(dm:
"description","learning what advantages female clothes provide.",
"objective","Gain a bonus for wearing an outfit as female, such as working out in workout clothes.",
"triggers",(ds:"high reluctance","mid masculinity"),
"duration",5,
"solution","clothes bonus"),
(dm:
"description","exploring your female body, intimately.",
"objective","Masturbate at night in your room as female.",
"triggers",(ds:"high reluctance","mid masculinity"),
"duration",5,
"solution","female masturbation"),
(dm:
"description","understanding how guys will treat you in your female body.",
"objective","Get approached by a guy while female.",
"triggers",(ds:"high reluctance","mid masculinity"),
"duration",5,
"solution","guy met"),
(dm:
"description","styling your hair differently.",
"objective","Get your hair done at the salon in the mall.",
"triggers",(ds:"high reluctance","mid masculinity"),
"duration",5,
"solution","hairstyle"),
(dm:
"description","experiencing how relaxed you'll feel at the beach in your new body.",
"objective","Spend enough time at the beach to gain the Relaxed mood.",
"triggers",(ds:"high reluctance","mid masculinity"),
"duration",5,
"solution","relaxed"),
(dm:
"description","trying what it feels like to wear more revealing clothing.",
"objective","Wear an outfit with at least a 6 in Sluttiness.",
"triggers",(ds:"high reluctance","mid masculinity"),
"duration",5,
"solution","slutty clothes"),
(dm:
"description","giving a guy your number.",
"objective","Give a guy your number after sex or a blowjob.",
"triggers",(ds:"mid reluctance"),
"duration",10,
"solution","number get"),
(dm:
"description","experiencing shame-free sex with a stranger.",
"objective","Have sex with a stranger without experiencing the Ashamed mood.",
"triggers",(ds:"mid reluctance","sex"),
"duration",10,
"solution","shame-free sex"),
(dm:
"description","satisfying a guy completely.",
"objective","Finish a sexual encounter with a guy with maxed out Satisfaction.",
"triggers",(ds:"mid reluctance"),
"duration",10,
"solution","satisfaction"),
(dm:
"description","impressing a guy with a fetish outfit.",
"objective","Wear a fetish outfit when inviting a guy into your home.",
"triggers",(ds:"mid reluctance"),
"duration",10,
"solution","fetish outfit"),
(dm:
"description","experiencing many orgasms during sex.",
"objective","Have at least three orgasms during a sexual encounter.",
"triggers",(ds:"low reluctance"),
"duration",15,
"solution","three orgasms"),
(dm:
"description","a massive dick penetrating you.",
"objective","Be penetrated by a guy with a length and fatness equaling at least 18.",
"triggers",(ds:"low reluctance"),
"duration",15,
"solution","well endowed"),
(dm:
"description","experiencing an orgasm from good oral sex.",
"objective","Orgasm from oral sex done by a guy with at least an Oral Skill of 7.",
"triggers",(ds:"low reluctance"),
"duration",15,
"solution","perfect cunnilingus"),
(dm:
"description","performing a particularly skillful sex position.",
"objective","Choose a sex position during sex at home with a skill level of at least 8.",
"triggers",(ds:"low reluctance"),
"duration",15,
"solution","skilled sex")
))
($passage_tags:"init_curiosity_quests")
(if:$curiosity is 0)[(display:"reset curiosity")]
}{
(set:$curiosity to "false")(set:$curiosity_triggers to (ds:))(set:$curiosity_trigger_description to "false")(set:$time_from_curiosity to 0)
}{
(if:$curiosity is not "false")[
(if:$curiosity's "success" is "false")[
(if:$curiosity's "type" is "branching")[
(if:$curiosity_check is ($curiosity's "solution")'s "feminine")[
(set:$curiosity's "success" to "true feminine")(set:$gain to -1)(display:"gain masculinity silent")($play:"sound","ui good",1000)
](else-if:$curiosity_check is ($curiosity's "solution")'s "masculine")[
(set:$curiosity's "success" to "true masculine")(set:$gain to 1)(display:"gain masculinity silent")($play:"sound","ui good",1000)
]
](else:)[
(if:$curiosity_check is $curiosity's "solution")[(set:$curiosity's "success" to "true")(display:$stats_refresh)(set:$action_points to $max_action_points)(display:"update action points")($play:"sound","ui good",1000)]]]]
}{
(if:$time < 1)[(if:$curiosity is not "false")[(unless:$curiosity's "success" is "false")[(display:"reset curiosity")]]]
}{
(if:$curiosity_quests_active is "Curiosity Quests: Inactive")[
(display:"reset curiosity")
](else-if:$curiosity is "false")[
(inc:'time_from_curiosity')
(if:$time_from_curiosity > 10)[(display:"generate curiosity")]
](else:)[
(if:$curiosity's "success" is "false")[
(set:$curiosity's "duration" to it - 1)(if:$curiosity's "duration" <= 0)[(display:"reset curiosity")]
]
]
}{
(set:$curiosity_check to "mall")(display:"curiosity check")
}{
(set:$curiosity_check to "beach")(display:"curiosity check")
}{
(set:$curiosity_check to "workout")(display:"curiosity check")
}{
(set:$curiosity_check to "alcohol")(display:"curiosity check")
}{
(set:$curiosity_check to "coffee")(display:"curiosity check")
}{
(set:$curiosity_check to "dancing")(display:"curiosity check")
}{
(set:$curiosity_check to "girl alcohol")(display:"curiosity check")
}{
(set:$curiosity_check to "girl pickup line")(display:"curiosity check")
}{
(set:$curiosity_check to "girl number")(display:"curiosity check")
}{
(set:$curiosity_check to "girl approach")(display:"curiosity check")
}{
(if:(dm-names:$pills_db) contains $select or (a:"Breeder","Clone") contains $pill_taken)[(set:$curiosity_check to "transform to woman")(display:"curiosity check")]
}{
(if:$type is "mainstream")[(set:$curiosity_check to "mainstream porn")(display:"curiosity check")](else:)[(set:$curiosity_check to "x-change porn")(display:"curiosity check")]
}{
(set:$curiosity_check to "guy met")(display:"curiosity check")
}{
(set:$curiosity_check to "female masturbation")(display:"curiosity check")
}{
(if:(is_fem:))[
(if:$status's "status" is "well rested" or $status is "comfy")[(set:$curiosity_check to "clothes bonus")(display:"curiosity check")]
(if:buffs of (get_charm:"modifiers") contains "+1 from outfit" or buffs of (get_charm:"modifiers") contains "+2 from outfit")[(set:$curiosity_check to "clothes bonus")(display:"curiosity check")]
(if:$status's "status" is "relaxed")[(set:$curiosity_check to "relaxed")(display:"curiosity check")]
(if:buffs of (get_charm:"modifiers") contains "+1 from your hairstyle")[(set:$curiosity_check to "hairstyle")(display:"curiosity check")]
]
}{
(if:$outfit's "sluttiness" > 5)[(set:$curiosity_check to "slutty clothes")(display:"curiosity check")]
}{
(set:$curiosity_check to "number get")(display:"curiosity check")
}{
(unless:$npc is 0)[(if:$npc contains "oral skill")[(if:$type is "oral" and $npc's "oral skill" > 7)[(set:$curiosity_check to "perfect cunnilingus")(display:"curiosity check")]]]
}{
(if:$mood's "mood" is not "ashamed")[(set:$curiosity_check to "shame-free sex")(display:"curiosity check")](if:$his_satisfaction is 10)[(set:$curiosity_check to "satisfaction")(display:"curiosity check")](if:(mood:"fucked silly"))[(set:$curiosity_check to "three orgasms")(display:"curiosity check")]
}{
(if:(cock:"girth","npc") + (cock:"length","npc") >= 18)[(set:$curiosity_check to "well endowed")(display:"curiosity check")]
}{
(if:$select_position's "skill level" >= 8)[(set:$curiosity_check to "skilled sex")(display:"curiosity check")]
}{
(if:$scene_type is "sex bedroom" and ($outfit's category is "fetish" or $outfit's locations contains "fetishwear"))[(set:$curiosity_check to "fetish outfit")(display:"curiosity check")]
}{(if:(twist:1,4) is 1)[(set:$breasts to $character's "breasts" + "-cup " + (twirl:"breasts","boobs","tits"))](else:)[(if:(twist:1,3) is 1)[(set:$breasts to $character's "bra" + " " + (twirl:"breasts","boobs","tits"))](else:)[(if:(twist:1,2) is 1)[(set:$breasts to (twirl:"breasts","boobs","tits"))(if:$character's "breasts" is "E" or $character's "breasts" is "F")[(set:$breasts to (twirl:"breasts","boobs","udders","tits","milkers","breasts","boobs","bazongas"))]](else:)[(if:($character's "breasts" is "E" or $character's "breasts" is "F") and (twist:1,2) is 1)[(if:(twist:1,2) is 1)[(set:$breasts to (twirl:"massive","monstrous","mega") + " " + (twirl:"milkers","mammaries","melons"))](else:)[(set:$breasts to (twirl:"bobbling","big ol'","buxom","broad","bulky","big fat","bouncy","big, natural") + " " + (twirl:"breasts","boobs","bazongas","boobies","breasts"))]](Else:)[(set:$breasts to (twirl:"tits","breasts","knockers","milkers","tits","boobs","boobies","breasts"))]]]](if:$milk_timer > 0 and (twist:1,7) is 1)[(set:$breasts to (twirl:"leaky ","milky ") + $breasts)]}{($char_passage:"describe butt",[(set:$phat to $character's "id" of
(dm:
"alina",(twirl:"big, fat","round","peachy","thick","fat","fat","big, jiggling","fat, jiggling","big latina","phat latina","fat latina","dump-truck"),
"cassidy",(twirl:"big, fat","round","peachy","thick","fat","fat","big, jiggling","fat, jiggling","big latina","phat latina","fat latina","thick latina","juicy"),
"ella",(twirl:"big, fat","round","peachy","thick","fat","fat","big, jiggling","fat, jiggling","big latina","phat latina","fat latina","thick latina","juicy"),
"jade",(twirl:"jiggling","round","big","phat asian","big asian","jiggling"),
"jia",(twirl:"big, fat","pale, round","pale, peachy","thick","fat","fat","big, jiggling","fat, jiggling","big pale","phat, pale","fat, pale","dump-truck"),
"lana",(twirl:"big, fat","round","peachy","thick","fat","fat","big, jiggling","fat, jiggling","big, trashy-white-girl","big, bimbo-sized","mega-size","dump-truck"),
"liya",(twirl:"cute","tight","perky","cute","jiggling","jiggling"),
"mia",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous"),
"rae",(twirl:"cute","tight","perky","cute","cute lil'"),
"scarlit",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","juicy","beautiful")
))],[])
(if:$outfit's "emphasizes" contains "asscheeks" or $outfit's "reveals" contains "asscheeks")[(set:$butt to (twirl:"ass","butt","rear","ass","tush","ass","ass","butt","badonkadonk","asscheeks","asscheeks","asscheeks","asscheeks","asscheeks","asscheeks","asscheeks","asscheeks","asscheeks","asscheeks"))](else:)[(set:$butt to (twirl:"ass","butt","rear","ass","tush","ass","ass","butt","badonkadonk"))]
(set:$butt to (twirl:$phat + " " + $butt,$butt))
}{
(set:$cock to (twisted:"shaft","meat","manhood","erection","penis","cock","cock","cock","dick","dick","dick","cock","rod","fuck-stick","meat","length","phallus","cock","cock","dick","dick","fuck-muscle","schlong","cock","cock","cock","manhood","wiener","manhood","wang","boner"))
(if:(twist:1,20) is 1)[(set:$cock to (twisted:...($cock + (a:"ambassador","*Arbor Vitae*","dingwallace","gigglestick","maypole","tally wacker","ham candle","pecker","liver buster","hangle-smangler","willy","heat-seeking moisture missile","cum gun","plonker"))))]
(if:(cock:"rating","npc") > 8)[(set:$cock to (twisted:...($cock + (a:"monsterprick","cockpillar","monstercock","monsterdick","fuckpillar","stud-cock","third leg","johnson"))))]
(if:(cock:"rating","npc") <6)[(set:$cock to (twisted:"prick","cock","dick","penis","erection","dick","willy","boner"))]
(set:$desc to (twisted:"veiny",$npc's "cockdesc",$npc's "cockdesc","rock-hard",$npc's "cockdesc",$npc's "cockdesc","throbbing"))
(if:(cock:"length","npc") > 8)[(set:$desc to (twisted:...($desc + (a:"long","lengthy","big","big","massive","manly","big"))))]
(if:($his_pleasure_threshold - $his_pleasure) < 3)[(set:$desc to (twisted:...($desc + (a:"twitching","throbbing","twitching"))))]
(if:$orgasms > 1)[(set:$desc to (twisted:...($desc + (a:"beautiful","orgasmic","magnificent","godly","pleasure-granting"))))]
(if:$npc's "cockdesc" is "uncut")[(set:$desc to (twisted:...($desc + (a:"uncircumcised"))))]
(if:(cock:"girth","npc") > 8)[(set:$desc to (twisted:...($desc + (a:"girthy","fat","big, fat","thick","big, thick","weighty","hefty","huge","equine","magnum","beefy"))))]
(if:(cock:"rating","npc") is 10)[(set:$desc to (twisted:...($desc + (a:"godlike","massive",""))))]
(unless:$scene is 0)[(if:$scene's "events" contains "blowjob" and $npc's "cock" is "out")[(set:$desc to (twisted:"throat-slimed","spit-coated","spit-covered","spit-covered","shiny, wet","freshly-sucked","sloppy",$npc's "cockdesc",$npc's "cockdesc","spit-slimed","freshly blown"))]]
(if:$npc's "cock" is "in you" and ((cock:"girth","npc")) > 8)[(set:$desc to (twisted:...($desc + (a:"pussy-stretching","insides-rearranging","pussy-stuffing","pussy-plugging"))))]
(if:$npc's "cock" is "in you" and ((cock:"length","npc")) > 8)[(set:$desc to (twisted:...($desc + (a:"pussy-skewering"))))]
(set:$desc to $desc's 1st + " ")
(set:$cock to $cock's 1st)
(set:$cock to (twirl:$desc + $cock, $cock))
}{
(set:$pussy_desc to (twirl:"tight little","tight","trembling","pliant"))
(if:$character's "race" is "asian" and (twist:1,2) is 1)[(set:$pussy_desc to (twirl:"tight asian","little asian"))]
(if:$lubrication > 5 and (twist:1,2) is 1)[(set:$pussy_desc to (twirl:"sopping wet","wet little","well-lubricated","quivering"))(if:$character's "race" is "asian" and (twist:1,2) is 1)[(set:$pussy_desc to (twirl:"wet asian","wet little asian"))](if:$character's "race" is "latin" and (twist:1,2) is 1)[(set:$pussy_desc to (twirl:"wet latina","wet little latina"))]]
(if:$orgasms > 0 and (twist:1,2) is 1)[(set:$pussy_desc to (twirl:"trembling","quivering","spasming"))]
(if:(knows_preg:) and (twist:1,4) is 1)[
(set:$pussy_desc to (twirl:"pregnant","fertilized"))
]
(set:$pussy to (twirl:"pussy","pussy","pussy","cunt","snatch","pussy","slit","pussy",(text:$pussy_desc) + " slit","pussy","womanhood","$pussy_desc pussy",(text:$pussy_desc) + " pussy",(text:$pussy_desc) + " pussy"))
}{
(set:$hairdesc to (twirl:"color","texture","plain"))
(set:$hair to "hair")
($char_passage:"describe hair",[(set:$color to $character's "id" of
(dm:
"alina",(twirl:"brown","gingerbread","coffee-colored","brown","brunette","brown","light brown","shiny brown","dark"),
"cassidy",(twirl:"brown","dark brown","brown","brunette","brown","dark brown","shiny brown","dark"),
"ella",(twirl:"brown","dark brown","brown","brunette","brown","dark brown","shiny brown","dark"),
"jade",(twirl:"raven-black","raven-colored","dark","inky-black","black","black","black","shiny black","shiny black","asian","midnight-colored","dark","black","silky black"),
"jia",(twirl:"fire-red","red","scarlit","fire-red","fiery","red","red","strawberry-colored","blazing red","red","red","coppery"),
"lana",(twirl:"brown","gingerbread","coffee-colored","brown","brunette","brown","light brown","shiny brown"),
"liya",(twirl:"brown","gingerbread","coffee-colored","brown","brunette","brown","light brown","shiny brown","dark"),
"mia",(twirl:"blonde","golden","blonde","bleach-blonde","wheat-colored","blonde","beachy","blonde"),
"rae",(twirl:"raven-black","raven-colored","dark","inky-black","black","black","black","shiny black","shiny black","asian","midnight-colored","dark","black","silky black"),
"scarlit",(twirl:"raven-black","raven-colored","dark","inky-black","black","black","black","black","shiny black","midnight-colored","dark","black","curly black")
))
(if:$hairdesc is "color")[
(set:$hair to $color + " hair")](else-if:$hairdesc is "texture")[
(if:$hairstyle is 0)[
(set:$texture to $character's "id" of
(dm:
"alina",(twirl:"silky","shiny brown","wavy brown","light brown","flowing brown"),
"cassidy",(twirl:"silky","shiny brown","wavy brown","light brown","flowing brown"),
"ella",(twirl:"silky","shiny brown","wavy brown","flowing brown","softly textured"),
"jade",(twirl:"silky","shiny brown","wavy brown","flowing brown","softly textured"),
"jia",(twirl:"shimmering red","shiny red","beautiful red","gorgeous red","coppery","shiny red"),
"lana",(twirl:"silky","shiny brown","wavy brown","light brown","flowing brown"),
"liya",(twirl:"silky","shiny brown","wavy brown","light brown","flowing brown"),
"mia",(twirl:"beautiful, blonde","shiny blonde","silky blonde"),
"rae",(twirl:"silky","raven colored","wispy black","silky black","shiny, black"),
"scarlit",(twirl:"naturally dark","natural dark","naturally curly","curly","beautifully curly","beautiful black","beautiful curly","black","beautiful, black","stunning, naturally curly")
))(set:$hair to $texture + " hair")](else:)[
(display:"hairstyle name")
(set:$hair to $color + " " + $hairstyle_name)]]],[])
(if:$hair's last is "s")[(set:$amount to "plural")](else:)[(set:$amount to "singular")]
}{(print:'<div class="top_right_half"><table><tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(216, 191, 216, 1) 0%,rgba(216, 191, 216, 1) 100%);background-size:' + (text:(round:((cock:"girth","npc")/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + '🍆 Girth: ' + (text:(cock:"girth","npc")) + '/10 🍆</td></tr><tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(173, 216, 230, 1) 0%,rgba(173, 216, 230, 1) 100%);background-size:' + (text:(round:((cock:"length","npc")/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + '📏 Length: ' + (text:(cock:"length","npc")) + '/10 📏</td></tr><tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(240, 128, 128, 1) 0%,rgba(240, 128, 128, 1) 100%);background-size:' + (text:(round:((cock:"balls","npc")/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + '🍒 Balls size: ' + (text:(cock:"balls","npc")) + '/10 🍒</td></tr></table></div>')}(set:$gain to (floor:((cock:"rating","npc"))/4))(if:$gain>0)[(nl:1){($passage_tags:"npc_cock_rating")}(display:"gain arousal and lubrication")]{
{(if:(is_fem:))[<div class'options'><mark>Yo that's actually a pussy!($play:"sound","bruh")</mark></div>](else:)[(print:'<table><tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(216, 191, 216, 1) 0%,rgba(216, 191, 216, 1) 100%);background-size:' + (text:(round:((cock:"girth")/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + '🍆 Girth: ' + (text:(cock:"girth")) + '/10 🍆</td></tr><tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(173, 216, 230, 1) 0%,rgba(173, 216, 230, 1) 100%);background-size:' + (text:(round:((cock:"length")/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + '📏 Length: ' + (text:(cock:"length")) + '/10 📏</td></tr><tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(240, 128, 128, 1) 0%,rgba(240, 128, 128, 1) 100%);background-size:' + (text:(round:((cock:"balls")/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + '🍒 Balls size: ' + (text:(cock:"balls")) + '/10 🍒</td></tr></table>')]}
}{
(set:$scene_type to "blowjob")
(if:(datanames:$blowjob) contains "interrupt chance")[(set:$interrupt_chance to $blowjob's "interrupt chance")(set:$interrupt_roll to $blowjob's "interrupt roll")](else:)[(set:$interrupt_chance to 0)(set:$interrupt_roll to 1)]
(set:$satisfaction to 0)
(display:"sex sound variants")
(set:$variant to (twirl:1,2,1,1))(display:"blowjob transactional initialize " + (text:$character's "id"))
(replace:?portrait)[(print:"<img class='border' src='img/characters/bj/bwc/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](set:$stats's "blowjobs given" to $stats's "blowjobs given" + 1)
(if:(datanames:$npc) contains "tags")[(set:$tags to $npc's tags)](else:)[(set:$tags to (a:))]
(set:$minigame to (dm:
"difficulty",7,
"babe type","clothed",
"cock type","nsfw",
"masculinity level",65,
"reason 1",(twirl:"You looked cute giving blowjobs.","Did you like sucking his cock?","Didn't you like sucking that big, juicy cock?"),
"reason 2","How did you like sucking that cock?",
"reason 3","You looked so cute and desperate, sucking that guy off.",
"afterwards","blowjob transactional finish"))
(if:(datanames:$npc) contains "tags")[
(set:$minigame's "reason 1" to (twirl:"You had your lips wrapped around " + $npc's "name" + "'s cock like you were gonna suck out his soul, haha.","You have the makings of a fine little cock-sucking slut, I'm sure " + $npc's "name" + " would agree.","If only you could've seen yourself, lips wrapped around that " + $npc's "unfamiliar name" + "'s " + $npc's "cockdesc" + " cock."))
(set:$minigame's "reason 2" to (twirl:"Did you actually *enjoy* sucking " + $npc's "name" + "'s cock?","Did you like the feeling of pleasing " + $npc's "name" + ", using just your mouth?","Did you feel degraded, inferior, with your lips wrapped around that " + $npc's "unfamiliar name" + "'s " + $npc's "cockdesc" + " cock?"))
(if:$npc's age > 39)[(set:$minigame's "reason 3" to (twirl:"That guy you sucked off... he was old enough to be your father.","Have a thing for blowing old guys, eh?","That guy you just blew was old enough to be your dad. How does that make you feel?"))]
(if:$npc's tags contains "fuckboy")[(set:$minigame's "reason 3" to (twirl:"That guy just saw you as a warm pair of lips. He didn't care about you.","That guy knows he's better than you.","You really sucked that fuckboy off.","I can't believe you blew a total fuckboy like that. You're really hopeless!"))]
(if:$npc's tags contains "chad")[(set:$minigame's "reason 2" to (twirl:"That guy is superior to you in every way. Of course you sucked his cock.","Of course you sucked off that total chad - you're his inferior, by far."))]
]
(set:$quicktime_params to (dm:
"difficulty","medium",
"type","bj",
"victory","He loves how eager you are.",
"defeat","*It's just so big...*",
"skill check","bj",
"skill check difficulty",50,
"points to win",45,
"points",15,
"sequence",(a:"up","down","up","down","up","up","none","down","up","down","left","right"),
"quicktime timer",1,
"result passage","blowjob transactional result",
"backdrop",$img
))
(display:"quicktime bj sequence randomize")
(set:$img to "<video src='img/"+ $img + "' autoplay='' loop='' muted='' playsinline/>")
(display:"blowjob sounds")
(set:$next to "quicktime initialize")(display:"change screen")}</div>{(if:$variant is 1)[(set:$img to "scenes/characters/alina/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/cassidy/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"dark 1","dark 2","dark 3","dark 4","dark 5","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/ella/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"dark 1","dark 2","dark 3","dark 4","dark 5","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/jade/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 4","light 5","light 6","light 7","light 8","light 10","light 12","nude 1","nude 2","nude 3","nude 4","dark 1","dark 2","dark 3","dark 4","dark 5") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/jia/bj/transactional " + (text:(twist:1,6)) + ".mp4")](else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/lana/bj/transactional " + (text:(twist:1,6)) + ".mp4")](else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/liya/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/mia/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/rae/bj/transactional " + (text:(twist:1,7)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 4","light 5","light 6","light 7","light 8","light 10","light 12","nude 1","nude 2","nude 3","nude 4","dark 1","dark 2","dark 3","dark 4","dark 5") + ".mp4")]}{(if:$variant is 1)[(set:$img to "scenes/characters/scarlit/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)[(set:$img to "scenes/generic/sex/bj/" + (twirl:"dark 1","dark 2","dark 3","dark 4","dark 5","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{
(if:$interrupt_roll <= $interrupt_chance and not ($disable_caught is "Getting Caught Disabled: True"))[
(display:$blowjob's "interrupt passage")
]
(else:)[
(if:$double_time is "true")[
(set:$load to "big")
]
(if:(win:))[
(display:"blowjob transactional cum")
]
(else:)[
<mark>His satisfaction -1!</mark>(print:"
")
(dec:'satisfaction')
(display:"blowjob transactional facefuck")
(twirl:"Unsatisfied with your blowjob,","Not satisfied with your sub-par sucking,","Not satisfied with your performance,")
(print:$npc's "name")
(twirl:"takes control","takes charge","takes charge of things").
(set:$timer to (twist:45,75))
(set:$next to "blowjob transactional cum")
(display:"wait while being facefucked")
]
]
}{(display:"blowjob transactional facefuck " + $character's "id")
(set:$img to "<video src='img/scenes/characters/" + $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(display:"bj rough sounds")
}{(set:$img to "alina/bj/rough " + (text:(twist:1,2)))
(set:$text to $img of (dm:
"alina/bj/rough 1","floor",
"alina/bj/rough 2","floor"))}{(set:$img to "cassidy/bj/rough " + (text:(twist:1,4)))
(set:$text to $img of (dm:
"cassidy/bj/rough 1","floor",
"cassidy/bj/rough 2","couch",
"cassidy/bj/rough 3","floor",
"cassidy/bj/rough 4","couch"))}{(set:$img to "ella/bj/rough " + (text:(twist:1,3)))
(set:$text to $img of (dm:
"ella/bj/rough 1","wall",
"ella/bj/rough 2","floor",
"ella/bj/rough 3","floor"))}{(set:$img to "jade/bj/rough " + (text:(twist:1,2)))
(set:$text to $img of (dm:
"jade/bj/rough 1","floor",
"jade/bj/rough 2","floor"))}{(set:$img to "jia/bj/rough " + (text:(twist:1,2)))
(set:$text to $img of (dm:
"jia/bj/rough 1","couch",
"jia/bj/rough 2","floor"))}{(set:$img to "lana/bj/rough " + (text:(twist:1,3)))
(set:$text to $img of (dm:
"lana/bj/rough 1","floor",
"lana/bj/rough 2","floor",
"lana/bj/rough 3","floor"))}{(set:$img to "liya/bj/rough " + (text:(twist:1,6)))
(set:$text to $img of (dm:
"liya/bj/rough 1","floor",
"liya/bj/rough 2","floor",
"liya/bj/rough 3","floor",
"liya/bj/rough 4","floor",
"liya/bj/rough 5","floor",
"liya/bj/rough 6","floor"))}{(set:$img to "mia/bj/rough " + (text:(twist:1,6)))
(set:$text to $img of (dm:
"mia/bj/rough 1","floor",
"mia/bj/rough 2","floor",
"mia/bj/rough 3","couch",
"mia/bj/rough 4","floor",
"mia/bj/rough 5","couch",
"mia/bj/rough 6","couch"))}{(set:$img to "rae/bj/rough " + (text:(twist:1,4)))
(set:$text to $img of (dm:
"rae/bj/rough 1","couch",
"rae/bj/rough 2","floor",
"rae/bj/rough 3","floor",
"rae/bj/rough 4","floor"))}{(set:$img to "scarlit/bj/rough " + (text:(twist:1,2)))
(set:$text to $img of (dm:
"scarlit/bj/rough 1","floor",
"scarlit/bj/rough 2","upside down"))}(replace:?right_options)[](if:(twist:1,2) is 1)[(print:"<video disableRemotePlayback src='img/scenes/generic/sex/pre/bwc/jerking.mp4' autoplay='' loop='' muted='' playsinline/>")](else:)[(print:$img)]
(if:(win:))[<mark>His satisfaction +1!</mark>(inc:'satisfaction')
](if:(Random:1,2) is 1)[(print:(upperfirst:$npc's "sex name")) (twirl:"groans, he's gonna cum!","gives a loud moan.","Moans loudly. He's about to blow his load!","groans heavily, and his cock twitches. He's about to cum.")](else:)[(print:(upperfirst:$npc's "sex name"))'s (twirl:"cock twitches in your mouth","cock twitches","cock starts to throb in your mouth"). (twirl:"He's gonna cum.","He's gonna blow!")]
<div class='options'>(link:"On my face!")[(set:$choice to "face")($cs:"blowjob transactional cum choice")](link:"In my mouth!")[(set:$choice to "mouth")($cs:"blowjob transactional cum choice")]</div>{
(set:$stats's "facials received" to it + 1)
(set:$curiosity_check to "receive facial")(display:"curiosity check")
(if:($has_ap_mod:"cumslut mod"))[(display:"action point mod trigger")]
}(if:$result is "fail" or (twist:1,3) is 1 or (checkdm:$npc,"tags","contains","fuckboy") or ((checkdm:$npc,"tags","contains","chad") and (twist:1,2) is 1))[(set:$his_choice to (twirl:"face","mouth"))](else:)[(set:$his_choice to $choice)](if:$load is "big" and (twist:1,2) is 1)[(set:$his_choice to "mouth")](if:$his_choice is "face")[(display:"sex cum on face")(display:"register receive facial")(if:$character's reluctance > 6 and $character's masculinity > 70)[($remember:"cum facial",2 * $character's reluctance,$npc's name,$img,"dream",(cond:$choice is $his_choice,"asked","didnt ask for it"),"dream facial choice")]](else:)[(display:"sex cum in mouth")](print:$img)(if:$text contains "big load")[(set:$sound to $se)(display:"play sound")](else:)[(display:"his cum sounds")]
(unless:$choice is $his_choice)[(if:(twist:1,2) is 1)["(if:$tags contains "fuckboy")[(twirl:"Nah","Naw"), (if:$his_choice is "mouth")[(twirl:"take your medicine,","you're gonna drink it,")](else:)[(twirl:"I'm gonna make you prettier","I'm gonna make you look good","I'm gonna paint your face"),] (twirl:"ho","thot",$petname),](else-if:(checkdm:$npc,"tags","contains","chad"))[(if:$his_choice is "face")[(twirl:"Prefer painting your face","I prefer cumming on sluts' faces","I'd rather cover your face","I'd rather cum on your face","Nah, I'm nutting on your face"),](else:)[(twirl:"Just take your medicine","You're gonna swallow it","You're gonna take it in your mouth","You're gonna swallow","You're gonna drink it","It's going in your mouth"),]](else:)[(twirl:"I don't think so,","Nah,","No,")]" he grunts](else:)[(twirl:"He shakes his head","He just grunts")](if:$his_choice is "face")[, (twirl:"angling his cock toward your face instead","pointing his cock at your face instead").](else:)[. "(twirl:"Say 'ah'.","Open wide.","Open wide, slut.","Open wide!")"] (if:$text contains "jerk")[(if:$his_choice is "mouth")[(twirl:"Submissively, you take it in your hand and start jerking it, mouth open.","Mouth opening dutifully, you take his erection and start jerking it.","Dutifully, you take his dick in your hands and open your mouth.")]]](else-if:$his_choice is "face")["(twirl:"Hah, sure,","Heh,","NNNnghh...","MMMMnnnn!!!","Oh FUCK yes,","God, yes! NNnnggh-")" (twirl:"he points his cock at your face","he points his cock at your face, as he beats off","he groans mightily, ready to unload").](else-if:$his_choice is "mouth")["(twirl:"Hah, sure....","Heh...","NNNnghh...","MMMMnnnn!!!","Oh FUCK yes...","God, yes! NNnnggh-") (twirl:"Say ah!","Open wide!","Open wide, slut.","Open up...")" (if:$text contains "jerk")[(twirl:"you take a hold of his cock and finish him off, like a good girl.","you grasp his meaty cock to finish him off.")]](if:$text contains "big load")[
(twirl:"Oh FUCK.","Holy FUCK.","God-DAMN!") (twirl:"This is a big load...","This is an absolutely massive load.","This fucking load is absolutely massive.")](else-if:$his_choice is "face")[
(display:"cum face description")(if:$cum_text contains "hair" and not ($hairstyle is 0))[(nl:2)<mark>(print:$npc's "name")'s cum got in your hair, ruining your (display:"hairstyle name")$hairstyle_name.</mark>(set:$hairstyle to 0)(set:$hairstyle_timer to 0)(display:"refresh portrait")
](if:$cum_text contains any of (a:"eyes","cumdump","face","up nose","nose","forehead"))[(display:"ruin makeup")](replace:?portrait)[(print:"<img class='border' src='img/characters/cum/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](set:$character's "status" to "cum")(set:$npc_cum to $npc's "sex name")](else-if:$his_choice is "mouth")[(display:"cum mouth description")](if:$his_choice is "face" and not ($text contains "in mouth"))[
<mark>Final satisfaction rating: (if:$satisfaction is -2)[DISAPPOINTED](if:$satisfaction is -1)[QUITE UNIMPRESSED](if:$satisfaction is 0)[UNIMPRESSED](if:$satisfaction is 1)[SATISFIED](if:$satisfaction is 2)[VERY SATISFIED](if:$satisfaction is 3)[*SUPREMELY* SATISFIED]</mark>]
<div class='options'>(if:$text contains "big load")[(link:"Try not to gag")[(set:$sex_loop_continue to "true")(display:"big load minigame")]](else-if:$text contains "in mouth")[(link:"Spit")[(set:$choice to "spit")($cs:"blowjob transactional cum spit swallow choice")](link:"Swallow")[(set:$choice to "swallow")($cs:"blowjob transactional cum spit swallow choice")]](else:)[(display:"masculinity crisis link")]</div>(set:$cum_img to $img){
(set:$quicktime_params to (dm:
"objective",(twirl:"Don't gag!","Take that load!","Be a good girl!","Open wide!","Handle that load!"),
"timing message",(twirl:"but not faster than his cumshots.","just don't go faster than he cums.","but not faster than those cumshots."),
"result passage","big load minigame result",
"backdrop",$backdrop,
"sex loop",$sound,
"skill check","gag reflex",
"skill check difficulty",50,
"time",25,
"rhythm",$rhythm,
"interrupt passage","big load minigame interrupt",
"interrupts", 2,
"type","big load"
))
($cs:"dont cum initialize")}(print:$img)
(if:(win:))[{
(if:$text contains "closed lips 1")[Despite the heavy ropes of cum dripping down your lips and chin,](else-if:$text contains "grimace 1")[Even while (print:$npc's "sex name") deposits massive jets of hot, salty cum into your mouth, across your face, and onto your tongue,](else-if:$text contains "still mouth 1")[Even as (print:$npc's "sex name") drops a hot, messy load into your mouth, down your chin, and up your damn nose,](else-if:$text contains "still mouth 2")[Even with (print:$npc's "sex name") spurting countless salty, pungent jets of steaming cum directly into your mouth,](else-if:$text contains "still mouth 3")[Even though your mouth is being injected with a massive load of (print:$npc's "sex name") gooey ball-sauce,](else-if:$text contains "still mouth 4")[Your mouth can barely contain this heavy, sticky load of (print:$npc's "sex name")'s love-juice. But even as some of it oozes down your chin,](else-if:$text contains "still mouth big 1")[Your palate is absolutely doused with gooey jets of this man's baby batter. Strands hit your lips, run down your chin and cheeks... but somehow,](else-if:$text contains "still mouth chin 1")[Jet after jet of nasty, sticky, salty cum squirts straight into your mouth, collecting oozily amongst your poor lower teeth. Some dribbles and slides down your chin, forming a spermy little soulpatch. Despite all this,](else-if:$text contains "still mouth chin 2")[He literally presses his phallus against your face as he smears you with sticky sprays of salty semen. Despite the overwhelming sensation of being drowned in the contents of (print:$npc's "sex name")'s balls,](else-if:$text contains "still mouth chin 3")[Hot, heavy helpings of salty, sticky semen drape across your tongue. It's thick. It's pungent. It's sliding down your chin. But somehow,](else-if:$text contains "still tongue 1")[Keeping your tongue extended is a challenge as (print:$npc's "sex name") drains his balls over it. You taste everything, the saltiness. The bleachiness. The warm sickliness. It slides gooily across all your little taste buds, making you endure every little flavor that God never designed to be tasted. Despite all this,](else-if:$text contains "tongue chin 1")[(print:$npc's "sex name") squirts his monstrous load all over your tongue, and more specifically, your chin. He liberally paints your face with a beard even Santa would be proud of. Despite the heavy, gooey dousing,]
(twirl:"you maintain your composure and take it like a good girl.","you just take it like a good girl.","you manage to just take it, submissively.","you're able to keep yourself from gagging or complaining.","you manage to endure it - frozen, looking up at your oral inseminator.","you take it like a champ.")}
](else:)[(if:(twist:1,2) is 1)[(twirl:"It's just too much.","God, it's just so much!","Fuck this.","It's just too. Much. Cum.") ](if:$text contains "closed lips 1")[Heavy ropes of (print:$npc's "sex name")'s jizz drip down your lips and chin, and even though you try to close your mouth, a few salty globs still blast your tongue.](else-if:$text contains "grimace 1")[You're overwhelmed by the massive jets of hot, salty jizz that (print:$npc's "sex name") deposits into your mouth, across your face, and onto your tongue.](else-if:$text contains "still mouth 1")[You're overwhelmed by the hot, messy load that is pumped into your mouth, down your chin, and even up your damn nose!](else-if:$text contains "still mouth 2")[With all these countless salty, pungent jets of steaming baby batter being pumped directly into your mouth, you're overwhelmed.](else-if:$text contains "still mouth 3")[You're overwhelmed by the massive load of gooey ball-sauce being injected into your mouth.](else-if:$text contains "still mouth 4")[Your mouth can barely contain this heavy, sticky load of (print:$npc's "sex name")'s love-juice.](else-if:$text contains "still mouth big 1")[Your palate is absolutely doused with gooey jets of this man's baby batter. Strands hit your lips, run down your chin and cheeks...](else-if:$text contains "still mouth chin 1")[Jet after jet of nasty, sticky, salty cum squirts straight into your mouth, collecting oozily amongst your poor lower teeth. Some dribbles and slides down your chin, forming a spermy little soulpatch.](else-if:$text contains "still mouth chin 2")[He literally is pressing his phallus against your face as he coats your face with sticky sprays of salty semen. You're overwhelmed by the sensation of being drowned in the contents of (print:$npc's "sex name")'s balls.](else-if:$text contains "still mouth chin 3")[Hot, heavy helpings of salty, sticky semen drape across your tongue. It's thick. It's pungent. It's sliding down your chin.](else-if:$text contains "still tongue 1")[Keeping your tongue extended is a challenge as (print:$npc's "sex name") drains his balls over it. You taste everything, the saltiness. The bleachiness. The warm sickliness. It slides gooily across all your little taste buds, making you endure every little flavor that God never designed to be tasted.](else-if:$text contains "tongue chin 1")[(print:(upperfirst:$npc's "sex name")) squirts his monstrous load all over your tongue, and more specifically, your chin. He liberally paints your face with a beard even Santa would be proud of.] (twirl:"You cough and sputter","You gag and cough","You gag and cough it up")(twirl:".","... it's not pretty."," - not your finest moment.")(if:(twist:1,2) is 1)[
(print:$npc's "name") (twirl:"chuckles at your pathetic display.","laughs at you, zipping his pants back up.","just laughs.","shakes his head and chuckles at your sticky situation.")]](set:$sex_loop_continue to "false")
<div class='options'>(if:(win:))[(link:"Spit")[(set:$choice to "spit")(if:$scene_type is "blowjob")[(set:$next to "big load finish")](else:)[(set:$next to "sex transactional big load finish")](display:"change screen")](link:"Swallow")[(set:$choice to "swallow")(if:$scene_type is "blowjob")[(set:$next to "big load finish")](else:)[(set:$next to "sex transactional big load finish")](display:"change screen")]](else:)[(link:(twirl:"Ugh...","FML...","God...","Yuck..."))[(set:$choice to "fail")(if:$scene_type is "blowjob")[(set:$next to "big load finish")](else:)[(set:$next to "sex transactional big load finish")](display:"change screen")]]</div>{
(set:$cum_npc to $npc)
(set:$blowjob's "satisfaction" to $satisfaction)
(set:$next to $blowjob's "result passage")
(display:"change screen")
}{
(if:(datanames:$quicktime_params) contains "type")[(if:$quicktime_params's "type" is "big load")[(set:$se to "gag " + (text:(twist:1,7)))(display:"play sound")]]
(if:(twist:1,2) is 1)[
(if:$character's "masculinity" > 79)[(twirl:"Your cheeks burn red with shame as another man fills your mouth.","Your brain can't decide if this is hot, or just super gross...","Fuck, you never cum THIS much...","Holy hell this is a lot of cum...","You're temporarily revolted by the thought of a man pumping cum into your mouth.")](else:)[
(Either:"Your tastebuds are drenched with jizz.","Hot, steamy sperm fills your mouth.","When will it end??","He's probably gonna ruin your clothes too...")]](else:)[
(if:$text contains "closed lips 1")[(twirl:"Fat ropes of cum dribble down your chin.","It's so pungent and slimy.","Big slimy loads drape across your lips.")](else-if:$text contains "grimace 1")[(twirl:"You moan as a warm jet hits the back of your throat.","Hot, slimy nut-butter swirls around your tongue and teeth.","He's groaning loudly as he douses your pretty face.")](else-if:$text contains "still mouth 1")[(twirl:"A slimy strand of cum shoots up your nose.","Cum drips down your chin.","Fat wads of cum ooze from your lips, back down into your mouth.")](else-if:$text contains "still mouth 2")[(twirl:"The massive, creamy load pools in your mouth.","Jets of sperm hit the back of your mouth.")](else-if:$text contains "still mouth 3")[(twirl:"His cock is like a firehose, spewing jizz straight into your mouth.","Some of the weaker jets just dribble and ooze down your chin.")](else-if:$text contains "still mouth 4")[(twirl:"Some of the jets escape your mouth, oozing down the sides of your face.","When is he gonna stop??","It's pungent and bleachy.")](else-if:$text contains "still mouth big 1")[(twirl:"You try to keep still as you're positively hosed down.","Jet after fat jet of nut-butter... how much more can you take?")](else-if:$text contains "still mouth chin 1")[(twirl:"The first few strands make it into your mouth, but the rest dribble and ooze down your chin.","You must look like such a slut, holding your mouth open for him like this.","Some runs off your tongue, down your chin and onto the floor.")](else-if:$text contains "still mouth chin 2")[(twirl:"Little squirts get in your nose.","It's clear and runny, positively coating your lower face.")](else-if:$text contains "still mouth chin 3")[(twirl:"These jets of sperm are so hot and thick.","The taste of semen on your tongue is overpowering.","Some shots miss your tongue and ooze down your face.")](else-if:$text contains "still tongue 1")[(twirl:"You try your best to keep your tongue extended while he thoroughly inseminates it.","Baby batter oozes around your tongue like frosting.")](else-if:$text contains "tongue chin 1")[(twirl:"It's hot, wet and runny.","FUCK that's a lot of cum.","Half of his load is totally missing your face, running down your chin.")]
]
}{
(set:$index to 0)
(set:$cum_location to "face")(set:$switches to (a:))
(set:_cum_non_locations to $text - (a:"nose","forehead","cheek","tongue","upper lip","forehead","hair","chin","lips","tits","neck"))
(set:$cum_locations to $text - _cum_non_locations)
(if:$cum_locations's length is 2)[(set:$cum_location to $cum_locations's 1st + " and " + $cum_locations's 2nd)](else-if:$cum_locations's length > 2)[
(set:$cum_location to "")
(for: each _cum_location, ...$cum_locations)[
(inc:'index')
(if:$index < $cum_locations's length)[
(set:$cum_location to $cum_location + _cum_location + ", ")
](else:)[
(set:$cum_location to $cum_location + " and " + _cum_location)
]]](else-if:$cum_locations's length is 1)[(set:$cum_location to $cum_locations's 1st)]
(if:$text contains "jerk")[(if:$character's "arousal" > 9)[(twirl:"Hopelessly aroused,","Burning with arousal,","Hopelessly horny,","Horny as a bitch in heat,","Like a bitch in heat,","Overwhelmed with horniness,","Overwhelmed by female hormones,") (twirl:"you wrap your hands around his cock and start jerking it","you aim his cock at your face and start tugging on it","you start jerking him off","you grab his cock and jerk him off","you take hold of his dick and jerk him to completion","you grab his cock, feeling it twitch in your hands as he orgasms").](else-if:(is_bim:))[(twirl:"You finish the job like a good bimbo.","You finish the job like any good bimbo should.","You jerk him off into your face like any good bimbo slut should.","You start jerking him off like the brainless bimbo you are.")](else-if:$character's "masculinity" > 75)[(twirl:"He tells you to finish him off, and you obey.","He indicates for you to jerk him off into your face, and you submit.","He tells you to finish the job.","He tells you to grab his cock and stroke.","He tells you to stroke his cock when he orgasms.")](else:)[(twirl:"You grab his cock and start stroking it.","You wrap your fingers around his cock and start stroking.","You stroke him to completion.")](nl:2)(if: $text contains "open mouth")[(set:$switches to $switches + (a:"open mouth silent"))]
](else-if:$text contains "jiggle tits" and (twist:1,2) is 1)[(display:"describe breasts")(if:$character's "arousal" > 9)[(twirl:"Hopelessly aroused,","Burning with arousal,","Hopelessly horny,","Horny as a bitch in heat,","Like a bitch in heat,","Overwhelmed with horniness,","Overwhelmed by female hormones,") (twirl:"you jiggle your $breasts","you cup your $breasts as he achieves orgasm","you jiggle your breasts like a bitch").](else-if:(is_bim:))[(twirl:"You jiggle your $breasts like a bimbo.","You grab your $breasts and jiggle them like the stupid bimbo you are.","You jiggle your $breasts like the bimbo you are.")](else:)[(twirl:"You hold your $breasts, jiggling them.","You cup your $breasts while he orgasms, it feels like the right thing to do.")](nl:2)(if: $text contains "open mouth")[(set:$switches to $switches + (a:"open mouth silent"))]
](else-if:$text contains "open mouth" and (twist:1,2) is 1)[(set:$switches to $switches + (a:"open mouth"))(if:$character's "arousal" > 9)[(twirl:"Hopelessly aroused,","Burning with arousal,","Hopelessly horny,","Horny as a bitch in heat,","Like a bitch in heat,","Overwhelmed with horniness,","Overwhelmed by female hormones,") (twirl:"you open your mouth wide","you open your mouth","you dutifully open you mouth","your mouth hangs open","you open your mouth wide").](else-if:(is_bim:))[(twirl:"You open your mouth wide like the good little bimbo you are.","You open your mouth and stick your tongue out like a bimbo slut.","Your tongue lolls open.","You open your mouth wide like a good little slut.")](else-if:$character's "masculinity" > 75)[(twirl:"You open your mouth.","He tells you to open your mouth, and you obey.","You open your mouth, feeling like a bitch in doing so.","Your mouth opens, slowly.","You slowly open your mouth.","Like some sort of slut, you open your mouth and let your tongue hang out.")](else:)[(twirl:"You open your mouth wide to receive the load.","You open your mouth and let your tongue hang out.","You open your mouth like a total slut.","You open your mouth.")](nl:2)
](else-if:$text contains "open mouth")[(set:$switches to $switches + (a:"open mouth silent"))](if:$text contains "runny")[(set:$cum_desc to (twirl:"runny","warm, runny","hot, runny","wet, runny") + " " + (twirl:"cum","cum","jizz","ball snot","spunk","cum","kiddie kretor","sextoplasm","love juice","cum","dick sneeze","spunk","baby gravy"))](else:)[(set:$cum_desc to (twirl:"thick","warm","hot","wet, sticky","hot, gooey","warm, sticky","hot, gooey") + " " + (twirl:"cum","man-cream","cum","jizz","ball snot","spunk","cum","semen","population paste","brogurt","cum"))]
(if:$character's "masculinity" > 80 and (twist:1,2) is 1)[(set:$cum_desc to (twirl:"gross","thick, wet","pungent, sticky","gross and gooey","gross","wet, sticky","masculinity-erasing","musky","masculinity-erasing") + " " + (twirl:"ball-snot","baby batter","sperm","semen","baby gravy"))]
(set:$ropes_desc to (twirl:"rope after rope","spurts","thick strands","fat spurts","thick ropes","thick jets","ropes","spurt after spurt","squirt after squirt","thick squirts"))
(set:$his_name to $npc's "name")
(if:$text contains "cumdump")[
(set:_splurt_1 to (twirl:"SPLURT","SPLURT","SPLIRT","SPLURT"))(set:_splurt_2 to (twirl:"SPLUURRRT","SPLURRRTTT","SPLOOOORT","SPLURRRRT"))
(set:_splurt_3 to (twirl:"SPLUUUURRRT","SPLOOOOORRRTTT","SPLOOOOOOOORT","SPLURRRRRRRT"))(css:"font-size:3vmin")[(text-style:(twirl:"rumble","shudder","blur","fidget","buoy","sway"))[(twirl:_splurt_1 + ", " + _splurt_1 + ", ", _splurt_1 + ", " + _splurt_1 + ", " + _splurt_1 + ", ")(print:_splurt_2 + ", " + _splurt_2 + ", " + _splurt_3)!!!]](nl:2)(twirl:"$his_name douses you with a mega-load of $cum_desc, all over your $cum_location.","$his_name positively hoses you down with a monster load, all over your $cum_location.") (if:(twist:1,2) is 1)[(print:" ")*(twirl:"He's turning me into a total cumdump.","I must look like a fucking cumdump.","I feel like I'm fucking drowning in it...")*]
](else-if:$text contains "spray")[(if:$index > 2 and (twist:1,2) is 1)[(twirl:"$his_name sprays $ropes_desc of $cum_desc all over your $cum_location","$his_name paints your $cum_location with $ropes_desc of $cum_desc").](else:)[(twirl:"$his_name paints your face","$his_name hoses you down","You're hosed down","Your face is irreverently painted") with $ropes_desc of $cum_desc.(if:$index > 3)[ (twirl:"It gets everywhere... your $cum_location","It goes all over your $cum_location").]]](else-if:$text contains "ooze")[(if:$text contains "hold")[$his_name (twirl:"grabs you and ensures you can't flinch.","holds you steady for your dousing.","grabs a handful of your hair.") ](twirl:"A thick ejaculation","A big ballful","A nasty ballful","A hearty sliming") of $cum_desc (twirl:"oozes","slides") (twirl:"down onto","down") your $cum_location.](else-if:$text contains "spurt")[(if:(twist:1,2) is 1)[(set:_splurt_1 to (twirl:"SPLURT","SPLURT","SPLIRT","SPLURT"))(set:_splurt_2 to (twirl:"SPLUURRRT","SPLURRRTTT","SPLOOOORT","SPLURRRRT"))<span class='shadow'>(twirl:_splurt_1 + ", " + _splurt_1 + ", ", _splurt_1 + ", " + _splurt_1 + ", " + _splurt_1 + ", ")(print:_splurt_2)!!!</span>(nl:2)
](if:(twist:1,3) is 1)[(twirl:"$his_name paints your face","$his_name hoses you down","You're hosed down","Your face is irreverently painted") with $ropes_desc of $cum_desc.](else-if:(twist:1,2) is 1)[(print:(twirl:"Spurts","Jets","Squirts","Ropes","Wads") + " of $cum_desc") (twirl:"spray across your","paint your","drench your","drape across your") $cum_location.](else:)[(twirl:"$his_name paints your $cum_location with $ropes_desc of $cum_desc.","$his_name hoses your $cum_location down with $ropes_desc of $cum_desc.",(upperfirst:$ropes_desc) + " of $cum_desc hit your $cum_location.",(upperfirst:$cum_desc) + " erupts across your $cum_location.")](if:$text contains "eyes")[ Some of it gets in your eyes. *(twirl:"That stings!","That stings!","Fuck, that stings!","Fuck!")* (if:$text contains "up nose")[*(twirl:"And up my goddamn nose too.","And up my frikkin nose! It smells like bleach.")*]]](else-if:$text contains "spatter")[(twirl:"$his_name spatters your face with","Your face gets spattered by $his_name's","Your face gets spattered with") $cum_desc.](else:)[]
(if:$text contains "interrupted" and $character's "masculinity" > 75 and (twist:1,3) is 1)[*(twirl:"Oh god, how humiliating...","I just let him do this, with someone watching...","Ugh...") (twirl:"They saw everything.","They saw me get hosed down like that.","They saw everything...")*(print:" ")](else:)[(if:$character's "masculinity" > 90)[(if:(twist:1,2) is 1)[(if:$switches contains "open mouth silent")[*(twirl:"This is humiliating... and I'm opening my mouth like a total whore...","Fuck, why am I sticking my tongue out like a total slut...","Goddamn it, this is degrading. Why did I stick my tongue out? Like a fucking pornstar.")*](else:)[(print:" ")*(twirl:"This is humiliating...","This is really humiliating.","God damn, this is humiliating. I must look like some kind of pornstar.","God, this is demeaning.","I can't believe I'm letting him do this...","Jeez, I must look like some kind of slut.")*]]]](if:$text contains "up nose" and (Random:1,3) is 1)[
(print:" ")(twirl:"You blow 'cum bubbles' from your nose.","It freaking got up your nose too!","You're blowing cum-bubbles from the jizz that went up your nose.")](if:$text contains "back of mouth" and $text contains "gag")[(nl:2)(twirl:"You gag as some hits the back of your mouth.","You gag a bit when you feel it squirt against the back of your mouth.","You gag when it hits the back of your mouth.")
]}{(if:$text contains "jerk")[Opening your mouth, you (twirl:"quickly pump your hand up and down his cock","jerk him off").](else-if:$text contains "balls deep")[(twirl:"Without warning","Suddenly"), (print:$npc's "name") thrusts his cock straight down your throat. (twirl:"Face crammed against his crotch","Chin crammed against his ballsack"), (twirl:"you feel his dick twitch as he sends jets of hot seed directly into your stomach.","he groans as he squirts fat jets of sperm directly into your stomach.","you gag as he unloads directly into your stomach.") (if:$character's "masculinity" > 85)[(twirl:"The merciful thing is that his jizz totally bypasses your tastebuds.","At least this means you don't have to taste it.")](if:(twist:1,2) is 1)[ Finally, he pulls out. You cough and drool a bit.]
](else-if:$text contains "internal")[(print:$npc's "name")'s cock (twirl:"twitches between your lips","throbs and twitches between your lips","throbs","twitches"), (twirl:"shooting","injecting","shooting") (print: (twirl:"rope after rope","spurts","thick strands","fat spurts","thick ropes","thick jets","ropes","spurt after spurt","squirt after squirt","thick squirts")) of (print: (twirl:"thick","warm","hot","wet, sticky","hot, gooey","warm, sticky","hot, gooey") + " " + (twirl:"cum","man-cream","cum","jizz","ball snot","spunk","cum","semen")) (twirl:"directly into your mouth","straight into your mouth").](else-if:$text contains "external")[(print:$npc's "name")'s cock (twirl:"throbs","twitches"), shooting (print:(twirl:"rope after rope","spurts","thick strands","fat spurts","thick ropes","thick jets","ropes","spurt after spurt","squirt after squirt","thick squirts")) of (print: (twirl:"thick","warm","hot","wet, sticky","hot, gooey","warm, sticky","hot, gooey") + " " + (twirl:"cum","man-cream","cum","jizz","ball snot","spunk","cum","semen")) (if:$text contains "direct")[directly into your mouth.](else-if:$text contains "messy")[all over your face and chin, not just your mouth.(set:$character's "status" to "cum")](else:)[(twirl:"into your mouth").]]
(if:$text contains "in mouth")[(nl:2)(twirl:"The pungent, salty mess swirls around your tongue.","Now you have to decide what to do with the salty load on your tongue.","Now you gotta decide what to do with this big, salty load.","Now, what will you do with his load?")](else-if:$text contains "spit")[
(twirl:"You quickly spit it out.","You let his load leak out of your mouth.","You quickly spit his load out, since it tastes pretty nasty.")]
}{(if:$choice is "spit")[($play:"sound","spit")(live:500)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)]](else-if:$choice is "swallow")[(set:$se to "swallow big")(set:$today_events to $today_events + (a:"swallow","swallow big"))(display:"play sound")](else:)[(set:$se to "gag " + (text:(twist:1,7)))(display:"play sound")(stop:)(live:250)[($play:"sound","spit")(stop:)](live:750)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)](live:2s)[(set:$se to "gag " + (text:(twist:1,7)))(display:"play sound")(stop:)(live:250)[($play:"sound","spit")(stop:)](live:750)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)](stop:)]]}(if:$choice is "swallow")[<mark>His satisfaction +2!</mark>
(inc:'satisfaction',2)(twirl:"You steel yourself and","Steeling yourself, you","You","Looking up at him, you","Looking up at your *generous* sperm donor, you","Submissively, you") (twirl:"swallow.","take a big gulp.") (twirl:"You feel the hot, slimy mess slide down your throat, and into your stomach.","You taste every bit of the sticky, cummy mess oozing down your throat.","You can tell your breath is gonna smell like cum for the foreseeable future.","You feel his warm, wet cum trickle and glop down your throat.")
"(twirl:"Good girl,","That's it,","Wow,","That's right,","Perfect,")" (print:$npc's "sex name") (twirl:"says in satisfaction","says, approvingly","says in admiration","says, grinning") (twirl:"as you consume his babies","as you drink the contents of his balls","as he watches you drink his ball-snot","as he watches you drink his jizz","as you show your clean tongue","when you show your clean tongue").](else-if:$choice is "spit")["(twirl:"What a pity!","A pity,","Too bad,","Wasting all that good cum,")" he (twirl:"jokes","smiles down at you","smiles at you","smiles at you condescendingly").](else:)[<mark>His satisfaction -1!</mark>(replace:?portrait)[(print:"<img class='border' src='img/characters/cum/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](set:$character's "status" to "cum")
"(twirl:"You're such a mess now.","It's not poison!","You're not a very good whore yet, if you can't handle a little cum,","You should learn how to swallow cum like a good girl,")" he says (twirl:"condescendingly","with a smirk").(dec:'satisfaction')](display:"refresh portrait")
<mark>Final satisfaction rating: (if:$satisfaction is -2)[DISAPPOINTED](if:$satisfaction is -1)[QUITE UNIMPRESSED](if:$satisfaction is 0)[UNIMPRESSED](if:$satisfaction is 1)[SATISFIED](if:$satisfaction is 2)[VERY SATISFIED](if:$satisfaction is 3)[*SUPREMELY* SATISFIED]</mark>
<div class='options'>(set:$next to $minigame's "afterwards")(display:"masculinity crisis link")</div>{(if:$choice is "spit")[(print:"<video disableRemotePlayback src='img/scenes/generic/sex/cum/mouth/spit.mp4' autoplay='' loop='' muted='' playsinline/>")($play:"sound","spit")(live:500)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)]](else-if:$choice is "swallow")[(display:"sex swallow")]}(if:$choice is "swallow")[<mark>His satisfaction +1!</mark>
(inc:'satisfaction',2)(twirl:"You steel yourself and","Steeling yourself, you","You","Looking up at him, you","Looking up at your *generous* sperm donor, you","Submissively, you") (twirl:"swallow.","take a big gulp.") (twirl:"You feel the hot, slimy mess slide down your throat, and into your stomach.","You taste every bit of the sticky, cummy mess oozing down your throat.","You can tell your breath is gonna smell like cum for the foreseeable future.","You feel his warm, wet cum trickle and glop down your throat.")
"(twirl:"Good girl,","That's it,","Wow,","That's right,","Perfect,")" (print:$npc's "sex name") (twirl:"says in satisfaction","says, approvingly","says in admiration","says, grinning") (twirl:"as you consume his babies","as you drink the contents of his balls","as he watches you drink his ball-snot","as he watches you drink his jizz","as you show your clean tongue","when you show your clean tongue").](else-if:$choice is "spit")["(twirl:"What a pity!","A pity,","Too bad,","Wasting all that good cum,")" he (twirl:"jokes","smiles down at you","smiles at you","smiles at you condescendingly").](display:"refresh portrait")
<mark>Final satisfaction rating: (if:$satisfaction is -2)[DISAPPOINTED](if:$satisfaction is -1)[QUITE UNIMPRESSED](if:$satisfaction is 0)[UNIMPRESSED](if:$satisfaction is 1)[SATISFIED](if:$satisfaction is 2)[VERY SATISFIED](if:$satisfaction is 3)[*SUPREMELY* SATISFIED]</mark>
(print:'($set_status:"cum breath","' + (text: $npc's "sex name") + ' came in your mouth, and your breath smells...")')<div class='options'>(display:"masculinity crisis link")</div>{(if:$choice is "spit")[($play:"sound","spit")(live:500)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)]](else-if:$choice is "swallow")[(set:$se to "swallow big")(display:"register swallow")(display:"play sound")](else:)[(set:$se to "gag " + (text:(twist:1,7)))(display:"play sound")(stop:)(live:250)[($play:"sound","spit")(stop:)](live:750)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)](live:2s)[(set:$se to "gag " + (text:(twist:1,7)))(display:"play sound")(stop:)(live:250)[($play:"sound","spit")(stop:)](live:750)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)](stop:)]]}(if:$choice is "swallow")[(set:$gain to 2)<div class='options'>(display:"gain his satisfaction")</div>
(twirl:"You steel yourself and","Steeling yourself, you","You","Looking up at him, you","Looking up at your *generous* sperm donor, you","Submissively, you") (twirl:"swallow.","take a big gulp.") (twirl:"You feel the hot, slimy mess slide down your throat, and into your stomach.","You taste every bit of the sticky, cummy mess oozing down your throat.","You can tell your breath is gonna smell like cum for the foreseeable future.","You feel his warm, wet cum trickle and glop down your throat.")
"(twirl:"Good girl,","That's it,","Wow,","That's right,","Perfect,")" (print:$npc's "sex name") (twirl:"says in satisfaction","says, approvingly","says in admiration","says, grinning") (twirl:"as you consume his babies","as you drink the contents of his balls","as he watches you drink his ball-snot","as he watches you drink his jizz","as you show your clean tongue","when you show your clean tongue").](else-if:$choice is "spit")["(twirl:"What a pity!","A pity,","Too bad,","Wasting all that good cum,")" he (twirl:"jokes","smiles down at you","smiles at you","smiles at you condescendingly").](else:)[(replace:?portrait)[(print:"<img class='border' src='img/characters/cum/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](set:$character's "status" to "cum")"(twirl:"You're such a mess now.","It's not poison!","You're not a very good whore yet, if you can't handle a little cum,","You should learn how to swallow cum like a good girl,")" he says (twirl:"condescendingly","with a smirk").(set:$gain to -2)(display:"gain his satisfaction")](display:"refresh portrait")
(display:"sex transactional end")(set:$chance to $caught_chance){(if:$disable_caught is "Getting Caught Disabled: True")[(set:$scene's "interrupt chance" to 0)(set:$caught_chance to 0)]
(print: "<script>GE.updateChance(" +
(text: $caught_chance) + ");</script>")
(live:1s)[(set:$caught_chance to $scene's "interrupt chance")
(print: "<script>GE.updateChance(" +
(text: $caught_chance) + ");</script>")(replace:?chance)[(print:$scene's "interrupt chance")%](stop:)]}{
(if:$ruined_outfits is 0)[(set:$ruined_outfits to (a:))]
(if:$outfit_inventory contains $select)[
(display:"get outfit")
(set:$ruined_outfits to $ruined_outfits + (a:$select))
(set:$outfit_inventory to (remove: $outfit_inventory, $select))
(display:"sync favorites with inventory")
(if:$type is "ruined")[
<mark>Your (print:$select_outfit's "description") (if:($select_outfit's description)'s last is "s")[have](else:)[has] been ruined.</mark>
](else-if:$type is "silent")[
](else:)[
<mark>Your (print:$select_outfit's "description") will be unwearable in future, until washed.</mark>
]
(set:$type to "none")
]
}{
(if:(datanames:$outfit) contains "colors")[(unless:(is_nude:))[
(if:(a:"black","blue","brown","green","grey","orange","pink","purple","red","white") contains (text:($outfit's colors)'s 1st))[(set:$color to (text:($outfit's colors)'s 1st))](else:)[(set:$color to "black")]
(if:$color is "black")[(set:$img to "black 1")]
(if:$color is "black")[(set:$img to "black 1")]
(if:$color is "blue")[(set:$img to (twirl:"blue 1","blue 2"))]
(if:$color is "brown")[(set:$img to (twirl:"brown 1","brown 2","brown 3"))]
(if:$color is "green")[(set:$img to "green 1")]
(if:$color is "grey")[(set:$img to (twirl:"grey 1","grey 2","grey 3"))]
(if:$color is "orange")[(set:$img to "orange 1")]
(if:$color is "pink")[(set:$img to (twirl:"pink 1","pink 2","pink 3"))]
(if:$color is "purple")[(set:$img to (twirl:"purple 1","purple 2"))]
(if:$color is "red")[(set:$img to (twirl:"red 1","red 2","red 3"))]
(if:$color is "white")[(set:$img to "white 1")]
(if:$color is "yellow")[(set:$img to "yellow 1")]
(if:$outfit's tags contains "waterproof")[<mark>Your (print:$outfit's "description") (if:($outfit's description)'s last is "s" and not ((words:$outfit's "description") contains "dress"))[are](else:)[is] waterproof, so (print:$npc's "name")'s cum doesn't ruin (if:($outfit's description)'s last is "s" and not ((words:$outfit's "description") contains "dress"))[them](else:)[it].<mark>](else:)[(set:$select to $outfit's "id")(display:"ruin outfit")(set:$outfit's image to "<img class='greyborder' src='img/scenes/generic/sex/cum/clothes/" + $img + ".jpg' width='100%' height=auto>")(set:$outfit's "status" to "cum")(display:"refresh portrait")]
]]
}{(if:$time_events contains "bruce steal")[(set:$global_events to it + (a:"bruce steal"))($remember:"bruce steal",20,$npc's id,"<img class='greyborder' src='img/npc/girls/" + (text:"id" of $npc) + "/strip/" + (text:$variant) + " 1.jpg' width=100% height=auto>","none")](set:_girl_fuck_event to ($npc's "id") + " bargirl fuck")(unless:$global_events contains _girl_fuck_event)[(set:$global_events to it + (a:_girl_fuck_event))](display:"Fertilizer trigger")
(if:((get_fitness:) + (get_intellect:) + (get_charm:)) < 15)
[(set:_girl_fuck_event to ($npc's "id") + " bargirl lowstats fuck")(unless:$global_events contains _girl_fuck_event)[(set:$global_events to it + (a:_girl_fuck_event))](display:"Smooth Operator trigger")]
}(set:$her_pleasure_max to 10)(if:$npc's "traits" contains "size queen")[(set:$her_pleasure_max to 15)](set:$your_pleasure_max to $orgasm_control's "level" + 9)(set:$your_pleasure_close to $your_pleasure_max-3)(set:$your_pleasure_edge to $your_pleasure_max-1)(set:$her_pleasure_edge to $her_pleasure_max - 1)(set:$her_pleasure_close to $her_pleasure_max - 3)(set:$character's "cock" to "away")(set:$girl_select to $npc's "id")(display:"girl sex tracks")(set:$sex_events to (a:))(set:$sex_loop_continue to "true")(unless:(checkdm:$npc,"id","is","mariselle"))[(set:$ambience to 0)(display:"play ambience")]{(if:(datanames:$npc) contains "unfamiliar name")[(if: not ($npc's "events" contains "name"))[(set:$her_name to "the " + (lowercase:$npc's "unfamiliar name"))](else:)[(set:$her_name to $npc's "name")]](else:)[(set:$her_name to $npc's "name")](set:$character's "arousal" to $character's "arousal" + (twist:2,5))(set:$energy to (max:3,(get_fitness:)))(set:$max_energy to (max:3,(get_fitness:)))(set:$variant to 1)<div class='top_left_pic'>(print:"<img class='greyborder' src='img/npc/girls/" + (text:"id" of $npc) + "/strip/" + (text:$variant) + " 1.jpg' width=100% height=auto>")</div>(set:$your_pleasure to 0)(display:"refresh stats sex")(set:$her_pleasure to 0)(set:$stage to 0)(if:$character's "race" is "black")[(set:$img to "bbc")](else:)[(set:$img to "bwc")](set:$her_arousal to (twist:2,5))(if:$npc's "traits" contains "religious")[(set:$npc's "arousal" to (twist:1,4))](if:$npc's "traits" contains "bimbo")[(set:$her_arousal to (twist:3,6))](if:$npc's "traits" contains "slut")[(set:$her_arousal to (twist:4,7))](set:$her_arousal to $her_arousal + (floor:((get_charm:)-5)/2))(set:$her_arousal to $her_arousal + (floor:((get_fitness:)-5)/2))(set:$her_arousal to (min:10,$her_arousal))(set:$her_arousal to (max:0,$her_arousal))(set:$events to (a:"","",""))
(if:$npc's "events" contains "sex")[(set:$first_time to "false")](else:)[(set:$first_time to "true")](set:$npc's "events" to $npc's "events" + (a:"sex"))(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl fuck mariselle intro")](if:(checkdm:$npc,"id","is","alexia"))[(display:"girl fuck alexia intro")](else-if:$time_events contains "bruce steal")[(if:$npc's "traits" contains "bitch")[
"(twirl:
"Bruce is going to be so fucking mad! But what he doesn't know won't hurt him.",
"I've always hated how possessive Bruce is. Time to show him he doesn't own me.",
"Bruce thinks he's got me wrapped around his finger. Let's give him something to really be mad about.",
"Maybe this will teach Bruce he's not God's gift to women after all.",
"Bruce is gonna lose his shit when he finds out... and that makes this so much hotter.")" She giggles.
](else-if:$npc's "traits" contains "slut")[
"(twirl:
"Bruce may be hung, but a girl needs variety. And you look like just what I need.",
"Bruce isn't the only one who gets to have fun. I bet you can make me scream just as loud.",
"Let's see if you can outdo Bruce. I love a bit of competition.",
"Bruce has had me plenty of times. Now it's your turn to show me what you've got.",
"Mmm, sneaking around like this makes me so wet. Bruce would be furious... but he doesn't own this pussy.")"](else:)[
"(twirl:
"I shouldn't be doing this... Bruce would be so angry. But I can't help myself.",
"Promise you won't tell Bruce? He gets so jealous... but I need this.",
"This is crazy... Bruce will kill us both if he finds out. But I don't care anymore.",
"I know this is wrong, but... something about you just makes me want to be bad.",
"Bruce thinks he owns me, but... I make my own choices. And right now, I choose you.")"
]](else:)[(if:$npc's "traits" contains "slut")[(if:(twist:1,2) is 1)["(if:(Random:1,2) is 1)[(twirl:"Mmmm...","Come here, big boy...","I'm so fucking horny...","Here's a secret about me: I'm always horny.","Mmm, finally.","I'm so wet already...") ](twirl:"Let's do this.","Let's fuck.","Let's get busy!","Show me what you got.","I want your cock.","I see your cock straining against your pants, hah.","Let's get busy!","I need to get fucked.","I realllyyyy need to get fucked.","I need this.")"](else:)[(upperfirst:$her_name) (twirl:"seems extremely eager to fuck.","gives you an extremely sultry smile.","tells you that she's ready to get fucked.","tells you how wet she is.","tells you how horny she is.","giggles at the shape of your cock protruding from your pants.","tells you she really needs to get fucked.")]
](else-if:$npc's "traits" contains "bimbo")[
(if:(twist:1,2) is 1)[(upperfirst:$her_name) (twirl:"giggles, a bit air-headedly","giggles and blushes","may be a bit stupid... but she's obviously horny","might not be the smartest girl out there, but she wants you - and that's what matters","obviously is ready for a good dicking down").](else:)["(twirl:"Let's like, do this!","Hehehe, what do you want to do with me?","Mmmm.... heheheh.","I'm really... horny... hehe.","Hehehe... we're gonna dooo it!","How are you gonna, like, do me?")"]
](else-if:$npc's "traits" contains "religious")[
(if:(Random:1,2) is 1)[(upperfirst:$her_name) (twirl:"seems really shy about this.","seems nervous.","seems really nervous.","looks at you apprehensively - but obviously excited as well.","looks like she could either kiss you, suck your dick, or cry.","seems like she's experiencing a LOT of emotions right now.","looks like she's not mentally prepared for this... but is gonna go for it anyway.")](else:)[
"(twirl:"I think... I'm about to sin...","Boys like you... make girls like me stumble in their faith, hehe...","Jeez... we're really gonna do it?","Ooooh my gosh. I can't believe I'm really doing this...")" (twirl:"she giggles","she blushes") (twirl:"nervously","excitedly","nervously").
]
](else-if:$npc's "traits" contains "likes assertive")[
"(twirl:"Show me what you got, big boy!","I can see how much you want me... hehe,","Tonight is all about you, honey. Lead the way,","I want you so bad,","I just want you to know I'm dripping wet...","Your wish is my command now,","Do whatever you want to me, big boy...","Come here...","Just so you know, I like being told what to do,")" $her_name (twirl:"says, demurely.","says.","giggles.","blushes.","says, smiling.","says.")
](else:)[(twirl:"She looks at you, lust in her eyes.","She smiles, ready for you.","She's ready for you.","She smiles, temptingly.","She gives you a 'come-hither' expression.")]]}(display:"girl fuck options")(display:"npc screen update sex girl")(if:$first_time is "true")[(twirl:"Mariselle saunters towards you, her hips swaying with each step. Her eyes are half-lidded, a smoky glance that promises a night of debauchery.
“I've been thinking about your big, delicious cock all night, guapo... I can't wait to feel it stretching my tight cunt open,” she purrs.",
"Mariselle looks at you, her dark eyes sparkling with base desire.
“I've been dreaming about your massive dick filling me up since my last song on stage,” she confesses, her words dripping with raw, animalistic lust. As she walks towards you, her bountiful tits bounce deliciously under her tight crop top, the fabric straining to contain them.",
"With a sly grin, Mariselle bites her lower lip, her eyes blaring with ravenous desire.
“I found it hard to focus on my songs, all I could think about was your huge cock inside me,” she admits, her caramel skin glowing under the dim lights. She saunters towards you, her curvaceous ass barely covered by her thin thong, each step a tantalizing dance of seduction.",
"Mariselle walks towards you, her voluptuous body moving with a sinful grace. “Your big cock has been on my mind, mi amor. I've been wet for you since the moment I saw it,” she whispers.",
"In her crop top and tiny thong, Mariselle is a walking wet dream. She saunters towards you, her massive tits threatening to spill out with each step. “I can't wait to feel your meaty cock inside me, guapo,” she murmurs, her voice a husky whisper that sends shivers down your spine.")](else:)[(twirl:"Mariselle saunters towards you, her hips swaying seductively with each step. Her eyes smolder with desire.
“You know how much I love your huge, long cock, guapo... I can't stop thinking about it when I'm on stage,” she purrs.",
"Mariselle looks at you, her dark eyes gleaming with lust.
“Every time I sing, I can't help but imagine your massive, veiny dick filling me up, driving me wild with pleasure. It's like a sweet addiction I can never get enough of,” she admits, her words dripping with desire.",
"With a sultry smile, Mariselle arches her back, pushing her massive tits forward.
“I've been craving your donkey dong, mi amor. It's been on my mind all night, tempting me with its girth and length. I can't wait to have it inside me again, stretching my tight pussy to its limits,” she declares.",
"Mariselle walks towards you, her body a sizzling temptation in her skimpy outfit.
“I can't stop fantasizing about your enormous, throbbing cock, even when I'm on stage. I need you inside me again, mi amor, driving me wild with ecstasy and making me scream your name,” she whispers.")]<div class='top_right_pic'>(set:$sex_loop to 0)(display:"play sex loop")(set:$select to "happy")(display:"girl update npc image")(display:"regain energy")(set:$events to $events + (a:"strip 1"))(set:$stage to 1)(print:"<img class='greyborder'
src='img/npc/girls/" + (text:"id" of $npc) + "/strip/" + (text:$variant) + " 2.jpg' width=100% height=auto>")(set:$character's "arousal" to $character's "arousal" + 1)</div>(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl mariselle strip 1")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl alexia strip 1")](else:)[(if:(twist:1,2) is 1)[(if:$npc's "traits" contains "bitch")[(twirl:"She might be a little bitch, but FUCK is she hot.","You don't mind that she's a little bitchy - she is so freaking hot.","Who cares if she's a bitch? She's hot!","She might be a bitch, but fuck is she hot!","God dammit she's fine. Who cares if she's a lil bitchy? You can put up with that!")](else-if:$npc's "traits" contains "bimbo")[(twirl:"Yeah she's definitely a bimbo. An extremely fuckable bimbo.","She may be a bimbo, but fuck she's hot.","Right now, you don't care that she's a bit of an airhead.","Why do bimbos always have the best bodies?","She might not have much brains between her ears, but she definitely has a great body.","She's so hot!","She has way more beauty than brains. But you're totally fine with that.")](else-if:$npc's "traits" contains "feminist")[(twirl:"She's way hotter than your typical feminist.","She obviously gets tons of attention with a body like that - maybe that's why she seems to hate men.","She's fucking hot, especially for a feminist.","It feels like a flex to fuck such a hot feminist.")](else-if:$npc's "traits" contains "religious")[(twirl:"You thank sweet Jesus for creating an angel like this!","Wow, religious girls really are the hottest.","Fuck, religious girls... they are a tasty forbidden fruit.","You hope her religious tendencies don't keep her from getting freaky.")](else-if:$npc's "traits" contains "sporty")[(twirl:"Her sporty body is a sigh to behold.","Her fitness-oriented lifestyle has made her body truly a sight to behold.","She is so fucking hot... must be all those sports she does, keeping her body in perfect shape.","She's in such good shape.","She's so fucking hot - her fitness routines have kept her body looking incredible.")](else-if:$npc's "traits" contains "nerdy")[(twirl:"She's way hotter than your typical nerd.","She might be a nerd... but damn she's a fuckable one.","She is the type of nerd you could really get used to.","She might be a nerd - but her body is still amazing.")](else-if:$npc's "traits" contains "rich")[(twirl:"She might be a bit rich and snobbish...","She may be a rich, sheltered girl...","She might be a rich girl,") (twirl:"but fuck she's hot.","but damn, she's fine.","but she's so damn hot.")](else:)[(twirl:"Her body is amazing.","She's so fucking hot.","She's incredibly hot.","You grin at her, eagerly.")]](else:)[(twirl:"You watch eagerly","You grin at her","You watch, enraptured,","Your cock hardens even more","Your dick goes diamond-hard","You feel your heart thumping in your chest") (twirl:"as she starts removing her clothes","as she strips","as she starts revealing her amazing body","as she begins removing her clothes").]](display:"girl fuck options")(display:"refresh stats sex"){
(twirl:"Mariselle peels off her crop top with a slow, deliberate tease, her eyes locked on yours as she reveals the enticing swell of her massive tits, barely restrained by the lacy black bra.",
"With a sultry smirk, Mariselle tugs her crop top up and over her head, never breaking eye contact with you. As her huge, bountiful tits spill out, still encased in a lacy black bra, she poses provocatively, letting you appreciate her obscene proportions.",
"Mariselle lifts her crop top, inch by tantalizing inch, her eyes locked on yours as she teasingly unveils the tantalizing sight of her massive tits barely contained by a lacy black bra. She tosses the top aside, posing seductively, letting you take in the mouthwatering view of her voluptuous curves.",
"Mariselle hooks her fingers under the hem of her crop top, lifting it with a slow, deliberate motion. Her eyes smolder with desire as her massive tits come into view, encased in a lacy black bra that strains to hold them. She playfully tosses the top away before striking a lewd pose, inviting you to admire her obscene proportions.",
"Maintaining intense eye contact, Mariselle seductively removes her crop top, revealing the massive mounds of her tits barely tamed by a lacy black bra. Tossing the top to the side, she arches her back and strikes a provocative pose, proudly displaying her voluptuous figure for your admiration.")
}<div class='top_left_pic'>(set:$sex_loop to 0)(display:"play sex loop")(set:$select to "happy")(display:"girl update npc image")(display:"regain energy")(set:$events to $events + (a:"strip 2"))(set:$stage to 2)(print:"<img class='greyborder'
src='img/npc/girls/" + (text:"id" of $npc) + "/strip/" + (text:$variant) + " 3.jpg' width=100% height=auto>")(set:$character's "arousal" to $character's "arousal" + 1)</div>{(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl mariselle strip 2")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl alexia strip 2")](else:)[(if:(Random:1,2) is 1)[(set:_text to (twirl:"tits","ass","pussy"))(if:_text is "tits")[(twirl:"Your eyes are transfixed on her","You love her","You can't take your eyes off her","Mesmerized, you stare at her") (if:$npc's "id" is "gabbie")[(twirl:"massive","giant","gargantuan","dangling") (twirl:"tits","udders","cow tits","tits","breasts").](else:)[(twirl:"soft, jiggling","delightfully quivering","beautiful","soft") (twirl:"breasts","tits","rack").]](else-if:_text is "ass")[(if:(Random:1,2) is 1)[(twirl:(upperfirst:$her_name),"She") (twirl:"has such a nice","has a fantastic","has a glorious","has such a tight little") (twirl:"ass","badonkadonk","butt").](else:)[You (twirl:"really like","are a huge fan of","stare at") her (twirl:"ass","fat ass").]](else:)[(twirl:"Her pink little pussy is just waiting to be ravaged...","That cute pink pussy, is just waiting for you.","Her clean little pussy looks so inviting.","Mmm, you can't wait to experience that pussy.")]](else:)[
(if:$character's "race" is "black" and $npc's "likes" contains "black")[
(twirl:"She looks lustfully at your big black cock.","She looks eagerly at your big black dick.","She tells you how much she wants your big black cock.","Her eyes are eagerly fixated on your big black cock.")
](else:)[
(if:$npc's "likes" contains "rough sex")[
(if:$npc's "traits" contains "slut")[(twirl:"She tells you in no uncertain terms, that she likes rough sex.","She tells you she likes getting treated roughly.","She tells you not to be too gentle with her - a true slut!")](else:)["(twirl:"No need to be gentle with me... hehe...","Just so you know... I like it rough.","I like it when guys give it to me... rough...","I like it a bit... rough...")" (twirl:"She blushes.","She smiles, submissively.","She smiles.")]
](else-if: $npc's "likes" contains "gentle sex")[
(twirl:"She tells you she likes being treated gently.","She says she likes it when guys are gentle with her.","She says she likes it when guys are gentle.")
]
]
]]}(display:"girl fuck options")(display:"refresh stats sex"){
(twirl:"With a sly grin, Mariselle unhooks her bra, letting it fall away and her massive tits bounce freely.
Next, she hooks her thumbs into her thong, shimmying it down her voluptuous hips and over her round, bouncing ass. Her fingers slide through the v-shape, tugging it down to reveal her pussy, already glistening with anticipation. As the thong drops to the floor, she stands naked before you, her hands squeezing her breasts together, her body a testament to raw, uninhibited sensuality.",
"Keeping her smoky gaze locked on you, Mariselle reaches behind to unclasp her bra, letting it fall away and releasing her huge, bountiful tits. As her nipples harden under your heated gaze, she hooks her fingers into her thong, sliding it down her voluptuous hips and round, bouncing ass.",
"Mariselle unclasps her bra, freeing her massive tits that tumble out, their nipples already hardening. The bra falls to the floor, discarded. With a teasing smile, she hooks her fingers into the waistband of her thong, sliding it down her voluptuous hips and over her thick, round ass cheeks.",
"With a seductive smile, Mariselle slowly peels off her lacy black bra, letting her massive tits spill out. Her nipples are already perky, puckered in anticipation, the sight making your mouth water. Next, she lowers her thong, the V-shaped fabric sliding down her voluptuous hips and over her bouncing ass cheeks, revealing her soaked pussy.")(nl:2)"(twirl:"Mmm, mira eso, guapo. My big tits and fat ass are all for you. ¿Qué esperas? Come taste this dripping pussy, and let me smother you with my huge tetas while you fuck me senseless.",
"Ay, papi, puedes ver lo húmeda que estoy? My big, round ass and massive tits are craving your meaty cock. Use me, fuck me, and watch me bounce on your huge dick like the filthy puta I am.",
"¿Te gusta lo que ves, mi amor? My giant tits and fat ass are just begging for your huge cock to pound me into oblivion. Come aquí, and let me show you just how dirty I can be.",
"Ven y devórame, guapo. My voluptuous body is desperate for your massive dick. I want to feel you stretching my tight, wet pussy while I smother your face with my tetas enormes.",
"¿Listo para ver cuánto puedo manejar, papi? I've been aching for a huge cock to fill me up and make me scream. My gigantic tits and fat ass are yours to play with, so abuse them like you've never abused a filthy, slutty cuerpo before.")"
}{
(set:$sex_loop to "bj loop " + $npc's "id" + " " + (text:$img))
(display:"play sex loop")
(set:$position to "bj")
(if:$type is "normal")[
(display:"girl sex you pleasure gain")
(set:$events to $events + (a:"bj"))
(if:$stage is 1)[
(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/bj 1.mp4' autoplay='' loop='' muted='' playsinline/>")
](else:)[
(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/bj 2.mp4' autoplay='' loop='' muted='' playsinline/>")
]
(display:"girl sex register her pleasure")
(display:"girl fuck options")
](else:)[
(if:$stage is 1)[
(set:$current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/bj 1.mp4")
](else:)[
(set:$current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/bj 2.mp4")
]
(set:$quicktime_params to (dm:
"objective","Keep your pleasure under control!",
"skill check","orgasm control",
"skill check difficulty",50,
"timing message","but not faster than she sucks.",
"result passage","girl bj edge result",
"backdrop",$current_img,
"sex loop",$sex_loop,
"time",20,
"rhythm",750,
"interrupt passage","girl bj edge interrupt",
"type","resist cum",
"interrupts", 2
))
(set:$sex_events to $sex_events + (a:"blowjobs received"))
(set:$next to "dont cum initialize")
(display:"change screen")
]}{
(if:($has_ap_mod:"casanova mod"))[(display:"action point mod trigger")]
(set:$stats's "sex as guy" to it + 1)
(set:$curiosity_check to "girl fuck")(display:"curiosity check")
}{
(set:$sex_loop to (text:$position) + " loop " + $npc's "id" + " " + (text:$img))
(display:"play sex loop")
(set:$current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/" + (text:$position) + " 1.mp4")
(display:"refresh stats sex")
(set:$select to "sex")
(display:"girl update npc image")
(set:$events to $events + (a:$position))
(if:$position is "riding" and not ($type is "edge"))[(display:"regain energy")]
(if:$type is "normal")[
(print:"<video disableRemotePlayback src='img/" + (text:$current_img) + "' autoplay='' loop='' muted='' playsinline/>")
(display:"girl sex you pleasure gain")
(display:"girl sex her pleasure gain")
](else-if:$type is "edge")[
(display:"girl sex edge")
](else-if:$type is "rough")[
(set:$current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/" + (text:$position) + " 2.mp4")
(display:"girl sex rough")
](else-if:$type is "slow")[
(print:"<video disableRemotePlayback src='img/" + (text:$current_img) + "' autoplay='' loop='' muted='' playsinline/>")
(display:"girl sex you pleasure gain slow")
(display:"girl sex her pleasure gain slow")
](else-if:$type is "she rough")[
(set:$current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/" + (text:$position) + " 2.mp4")
(print:"<video disableRemotePlayback src='img/" + (text:$current_img) + "' autoplay='' loop='' muted='' playsinline/>")
(display:"girl sex you pleasure gain she rough")
(display:"girl sex her pleasure gain rough")
](else-if:$type is "she rough edge")[
(set:$current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/" + (text:$position) + " 2.mp4")
(display:"girl sex edge")
]
(if:$your_pleasure > $your_pleasure_close)[
(display:"girl sex you close")
](else:)[
(if:(twist:1,3) is 1)[
(display:"girl sex sound text")
(display:"girl sex you close")
](else:)[
(if:(twist:1,2) is 1)[
(display:"girl sex moan text")
](else:)[
(display:(twirl:"girl sex moan text","girl sex sound text"))
(display:"girl sex you speak")
]
]
]
(display:"girl sex register her pleasure")
(display:"girl fuck options")
}<div class='options'>[(if:$her_pleasure >= $her_pleasure_max)[(link:(twirl:"She orgasms!","She cums!"))[($cs:"girl she cums")]](else:)[(if:$your_pleasure >= $your_pleasure_max)[(display:"girl cum options")](else:)[(display:"girl check give blowjob")(if:$bj is "true")[(link:"Next")[($cs:"girl bj begin")]](else-if:$bj is "strip")[(link:"Next")[($cs:"girl sex she strips you")]](else:)[(if:$stage is 0)[(unless:$events contains "kiss")[(link:(twirl:"Make out"))[($cs:"girl kiss")]](link:"Next")[($cs:"girl strip 1")]](else-if:$stage is 1)[(unless:$events contains "kiss")[(link:(twirl:"Make out"))[($cs:"girl kiss")]](unless:$events contains "breasts")[(link:(twirl:"Feel her up"))[($cs:"girl breasts")]](link:"Next")[($cs:"girl strip 2")]](else-if:$stage > 1)[(if:$stage is 2)[(if:$energy >= 1)[(unless:$events's last is "lick")[(link:"Go down on her ⚡")[(dec:'energy')(display:"refresh stats sex")(set:$position to "lick")($cs:"girl lick")]]](link:"Kiss her")[($cs:"girl kiss")]](if:$character's "cock" is "out")[(link:"Fuck (Missionary)")[(set:$next to "girl sex")(set:$position to "missionary")($cs:"girl fuck options type")](link:"Fuck (Doggystyle)")[(set:$next to "girl sex")(set:$position to "doggy")($cs:"girl fuck options type")](link:"Fuck (Cowgirl)")[(set:$next to "girl sex")(set:$position to "riding")($cs:"girl fuck options type")]](else:)[(link:"Take your pants off.")[($cs:"girl sex you strip")]]]]]]]<options|</div>{(set:$character's "cock" to "out")
(if:(checkdm:$npc,"id","is","mariselle"))[Mariselle zips down your pants, her eyes gleaming with anticipation. As your throbbing, fat schlong springs free, it slaps against her cheek, leaving her gasping.](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl sex alexia she strips you")](else:)[She unzips your pants.](nl:2)($play:"sound","unzip")
(display:"girl cock reaction")
}{(set:$character's "cock" to "out")
You unzip. (nl:2)($play:"sound","unzip")
(display:"girl cock reaction")
}{(display:"describe your cock")
(set:$continue to "true")(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl cock reaction text mariselle")](else:)[(unless:$npc's "events" contains "seen cock")[
(if:$time_events contains "bruce steal")[(display:"girl cock reaction text bruce")](else:)[(display:"girl cock reaction text")]]]
(display:"your cock rating")
(if:$continue is "true")[(display:"girl fuck options")](else:)[<div class='options'>(link:"She kicks you out")[(display:"advance time")]</div>](set:$npc's "events" to it + (a:"seen cock"))
}{
(if:(cock:"length") > 8)[
(if:$npc's "traits" contains "bitch")[
"(twirl:
"Holy fuck... Bruce is hung... but... No wonder you've got such big dick energy.",
"Shit, you might actually be bigger than Bruce. This just got even more interesting.",
"Damn, putting Bruce to shame with that monster. I'm gonna enjoy every inch of this revenge.",
"Now I see why you're so confident. Bruce might actually have some competition.",
"Fuck me... Bruce is gonna be even more pissed when he finds out what he's up against.")"
](else-if:$npc's "traits" contains "slut")[
"(twirl:
"Oh my god, you're even bigger than Bruce! I hit the jackpot tonight.",
"Mmm, Bruce is hung but you... you're going to absolutely destroy me.",
"Fuck yes, I needed a cock this size. Bruce is good but this is next level.",
"I can't wait to feel every thick inch of you stretching me out.",
"Two hung studs fighting over me? I must have been very good in a past life.")"
](else:)[
"(twirl:
"Oh wow... you're actually bigger than Bruce. I can't believe I'm saying this but... I want it so bad.",
"I... I didn't expect you to be even more well-endowed than Bruce. This is crazy...",
"Bruce is already so big, but you... how am I going to handle all of that?",
"No wonder you were so confident... you're massive. Even bigger than Bruce...",
"I feel so naughty comparing you two but... you definitely win in this department.")"
]](else-if:(cock:"length") < 6)[
(set:$continue to "false")
(if:$npc's "traits" contains "bitch")[
"(twirl:
"Are you fucking kidding me? Bruce would laugh his ass off if he saw this pathetic excuse for a cock.",
"And here I thought you might actually be competition for Bruce. What a joke.",
"Yeah... I think I'll stick with Bruce's monster cock instead of this disappointment.",
"Did you really think you could compete with Bruce with that tiny thing? Please.",
"And here I was, risking Bruce's wrath for... this? Not worth it.")"
](else-if:$npc's "traits" contains "kind")[
"(twirl:
"Oh... um... I'm sorry but... Bruce is just... a lot bigger. Maybe we shouldn't...",
"I feel terrible saying this but... compared to Bruce... this wouldn't satisfy me.",
"You seem really sweet but... I'm used to Bruce's size. This wouldn't work.",
"I don't want to hurt your feelings but... Bruce has spoiled me for anything smaller.",
"Maybe we should stop here... Bruce has certain... advantages in this department.")"
](else:)[
"(twirl:
"Sorry but... Bruce has ruined me for anything this small.",
"Yeah... no. Bruce would kill me if he found out, and this isn't worth dying for.",
"I need something a lot bigger than this to risk Bruce's anger.",
"Bruce may be an ass sometimes but at least he's got the equipment to back it up.",
"This isn't going to work. I'm used to Bruce's size.")"
]](else:)[
"(twirl:
"Not quite as big as Bruce, but I bet you know how to use it better.",
"Mmm, a nice cock. Bruce might have a bit more length but this will do nicely.",
"This is going to be fun.",
"You're not quite as hung as Bruce, but that's still plenty to work with.",
"A good solid cock. Maybe not quite Bruce's monster, but I'm not complaining.")"
]
}{
(if:(cock:"length") > 7)[
"(twirl:
"Uff, that huge cock of yours makes me so wet. I'm such a puta for big dicks, always craving the delicious stretch when they fill me up.",
"Your massive cock is a sight for sore eyes, papi. I'm such a dirty whore for these huge dicks - they make my pussy drip.",
"Mmmm, that huge dick of yours is going to ruin me, and I can't fucking wait. I love being a slut for big cocks, especially ones that promise to stretch my dripping pussy to the limit.",
"Damn, your huge cock is making me drool. I'm a dirty whore when it comes to big dicks, especially ones that promise to turn my tight holes into a sloppy mess.",
"I'm such a puta for big cocks, I just need them stretching me open over and over again.",
"That monstrous cock of yours is a thing of beauty, papi. I'm a dirty slut for big dicks, and yours looks like it can really give my tight, greedy holes the pounding they crave.")"](else:)[
(set:$global_events to it - (a:"mariselle pass"))
"(twirl:"¿Eso es todo? I thought your cock was much bigger! It's hard to get excited over something so... disappointing.",
"What happened, papi? Did your cock shrink? I remember it being much bigger. Such a shame, I was really looking forward to a good, hard fuck tonight.",
"Is that your cock? Where did the big one go? I'm a size queen, honey. If that's all you got, then I'm not interested.",
"¿Dónde está la verdadera polla? That cock there is nothing compared to what I thought you had. A girl like me needs a massive cock, not a little... disappointment.",
"Espera, ¿eso es todo? I thought you were packing a giant cock. Guess I was wrong. I'm all about big dicks, honey, and that there just won't cut it.")"
(set:$continue to "false")
(set:$gain_attraction to -5)
(set:$gain_respect to -2)
(set:$gain_friendship to -1)
(display:"change relationship")
]
}{
(if:$npc's "traits" contains "bitch")[
(display:"girl cock reaction text bitch")
](else-if:$npc's "traits" contains "kind")[
(display:"girl cock reaction text kind")
](else-if:$npc's "traits" contains "slut")[
(display:"girl cock reaction text slut")
](else-if:$npc's "traits" contains "nerdy")[
(display:"girl cock reaction text nerdy")
](else:)[
(display:"girl cock reaction text default")
]
(if:$continue is "false")[(set:$npc's "events" to it + (a:"hates cock"))]
}{
(if:(cock:"length") < (twist:3,5))[
(print:(upperfirst:$her_name) + " " + (twirl:
"takes a disdainful look at your revealed package and crosses her arms before remarking with a sardonic tone,",
"can't hide her bitter laughter as she finally spots your stripped-down manhood. With a wave of her hand, she scoffs,",
"opens her mouth in a cruel 'O' of surprise as she lays eyes on $your_cock for the first time. An unimpressed smirk stretches across her face as she retorts,",
"catches sight of your nudity and barely suppresses a smirk. She sounds unimpressed as she rhetorically asks,",
"blinks deliberately as you whip out your penis, pursing her lips in distaste. She seizes the moment to shoot a barbed comment your way,",
"gauges your exposed cock and a devastating smirk slowly forms on her lips. She shoots a sharp look your way as she taunts,",
"turns to look at $your_cock, then bursts out laughing, resting a hand on her upper chest to steady herself, before delivering a devastating blow,",
"manages to suppress an audible giggle at your unfortunate size. With the meanest of smirks, she proceeds to drop the comment,",
"smirks cruelly as she gets a look at your nudity, her mean bitchy side shining through as she nastily teases,",
"gawks once, guffaws twice, then makes a show of wiping a tear from the corner of her eye before she gets to the point of utter humiliation,",
))
"(twirl:
"I've seen baby carrots more impressive than that. Does it come with a map so I don't lose it?",
"I've seen thumbtacks bigger than that. You can put it away now.",
"Really? That's all you've got? Ugh. And you talked such a big game.",
"You've got to be kidding me, right? You shouldn't brag about something that needs a magnifying glass to be seen.",
"Please, I've had toothpicks bigger than that. No wonder you needed all that bravado.",
"That's it? That's what you've been bragging about? Ugh, I've seen cocktail sausages with more girth.",
"That minuscule thing could get lost in a keyhole. I'm out.",
"Oh, a cocktail wiener party, and nobody told me!",
)"
(set:$continue to "false")
(set:$gain_attraction to -5)
(set:$gain_respect to -2)
(set:$gain_friendship to -1)
(display:"change relationship")
](else-if:(cock:"length") < 6)[
(print:(upperfirst:$her_name) + " " + (twirl:
"looks at $your_cock then bursts out laughing, placing a hand over her mouth to regain her composure. When she finally collects herself, she teases,",
"freezes as she looks at $your_cock, a mixture of amusement and pity in her eyes. She laughs out,",
"raises her brows at $your_cock and then smirks. With a low chuckle, she playfully mocks,",
"stares at $your_cock, her eyes widening slightly before a smirk plays on her lips. She chuckles and says,",
"looks at $your_cock. She grins widely and playfully jests,",
"takes a moment to break into laughter as she looks at $your_cock. She teases, with playfulness,",
"looks at $your_cock, and bursts into a downright laugh. She playfully quips,",
"giggles at the sight of $your_cock and rolls her eyes. She winks and jests,",
))
"(twirl:
"I guess size isn't everything. At least you're... cute?",
"That is... cute. So, don't worry, I'm sure you're good with your fingers.",
"You won't be setting any records but... points for bravery.",
"Oh baby, did you lose some of it in a bet? Nevermind... big things come in small packages, right?",
"Well, that puts the 'cock' in 'cocktail wiener'. Let's just get this over with.",
"So the legends of men exaggerating their size are true. Well, it's not a sprint—it's a marathon.",
"Well, it's not the size of the wave, it's the motion of the ocean... right? Let's tell ourselves that.",
"Oh, it's actually kind of cute, in a miniature kind of way. Let's see what you can do with it.",
)"
(set:$gain_attraction to -1)
(display:"change relationship")
](else-if:(cock:"length") > 8)[
(print:(upperfirst:$her_name) + " " + (twirl:
"can't keep her eyes off of $your_cock, eyes wide and mouth agape in shock. She murmurs, still in disbelief",
"is momentarily speechless as she stares at $your_cock. Her reaction when she finally finds her voice is a mix of awe and desire",
"swallows audibly as she takes in the sight of $your_cock. Throwing caution to the wind, she finally says",
"can barely tear her gaze away from $your_cock, seemingly entranced. Words finally come to her, laced with anticipation and longing",
"briefly stifles a gasp as she takes in $your_cock. She remarks, her words teetering on the brink of vulgarity",
"can't even try to stifle her gasp, her usually sharp tongue tamed by the sight of $your_cock. She blurts out,",
))
"(twirl:
"Oh shit, you're one of those hung like a horse types, aren't you?",
"Well, it looks like you weren't all talk. That is a mouthful... and then some.",
"You sure that's a cock and not a third leg? I think I'll need both hands for this one.",
"I'm going to have to unhinge my jaw like a snake to take that monster.",
"Wow, you'd put some porn stars to shame. I wouldn’t be surprised if it has its own zip code.",
"Holy shit... you got enough cock for an entire varsity team. I've definitely got my work cut out for me.",
"That's one mountain I wouldn’t mind climbing for the hell of it.",
"Well, I'll be damned! You're one huge brickhouse.",
"Christ... Better lube that monster up good, fucker's almost scary.",
)"
(set:$gain_attraction to 3)
(set:$max_attraction to 10)
(set:$gain_respect to 2)
(set:$gain_friendship to 1)
(display:"change relationship")
](else:)[
(print:(upperfirst:$her_name) + " " + (twirl:
"smirks as her eyes drop to take in $your_cock. Lifting her brow, she remarks,",
"shoots you a glance and pauses, her eyes drifting to $your_cock. With a coy smirk she mutters,",
"can't help but take note of $your_cock. A slow, teasing smile crosses her lips as she says,",
"raises an intrigued eyebrow at $your_cock, her gaze fixated on your revealed size. She chides,",
"lets out a low whistle of surprise at the sight of your impressive manhood. With a smirk she purrs,",
"fixates momentarily on $your_cock. She meets your eyes once more, the words dripping with sarcasm as she teases,",
"appraises your bare body with a visible intake of breath. Her eyes meet yours and she remarks,",
"can't keep a comical smirk off her face as she sizes you up. With a flicker of mischief in her eyes she delivers,",
))
"(twirl:
"Well, isn't that a pleasant surprise. Not too shabby, all things considered.",
"A point for you, it seems size does match the ego after all. ",
"Not gonna lie, you’re packing way more than I expected.",
"It's a nice enough cock, but no need to let it go to your head.",
"Huh, would you look at that. So you weren't all brag, were you?" ,
"Well, won’t you look at that? Not as disappointing as I expected.",
"Oh wow, a decent package! Hope the performance matches.",
"Well, that's promising. Don't disappoint me now.",
)"
(set:$gain_attraction to 2)
(set:$max_attraction to 10)
(set:$gain_respect to 1)
(set:$gain_friendship to 1)
(display:"change relationship")
]
}{
(if:(cock:"length") < 2)[
(print:(upperfirst:$her_name) + " " + (twirl:
"stares at your revealed package, her eyes widening in surprised disappointment. In a flustered stammer, she gently lets you down,",
"can't mask the second-hand embarrassment washing over her from the unfortunate display. Stammering slightly, she breaks the hard news,",
"is startled at $your_cock, quickly looking away, flushing with embarrassment. She stammers apologetically,",
"fails to stop a quiet gasp escaping her at the sight of $your_cock. Blushing and stammering, she attempts to recover gracefully,",
"raids her diplomatic arsenal of words of comfort at the sight of $your_cock. Gently trying to let you down, she whispers,",
"struggles to find her voice, the sight of $your_cock having caught her completely off guard. Stifling her shock, she delivers her comment,",
"flinches at the sight of $your_cock and her cheeks heat up in secondhand embarrassment. Trying to keep the unease out of her voice, she says,",
))
"(twirl:
"I-I’m sorry, but... I don't think we should continue.",
"Um, m-maybe we can do something else?",
"I-I'm really sorry... It's just... um... maybe we could... just chill, tonight?",
"I think... um... maybe... we should take things slow?",
"I-It's not as if size is everything... We can find other ways...",
"I... um... Can we just cuddle tonight, perhaps? I'm really tired.",
"Um... I'm not ready yet... I hope you understand.",
)"
(set:$continue to "false")
(set:$gain_attraction to -1)
(set:$gain_respect to -1)
(display:"change relationship")
](else-if:(cock:"length") < 4)[
(print:(upperfirst:$her_name) + " " + (twirl:
"takes in $your_cock, her eyebrows knitting together in slight disappointment. But she tries not to show it, optimistically remarking,",
"glances at $your_cock, a hint of fleeting disappointment flashing in her eyes. Concealing it, she gently comments,",
"looks at your nudity, swallowing an inaudible sigh. But she shakes it off, mustering up an encouraging smile as she stays positive,",
"has her eyes focused on $your_cock, trying to hide the mild letdown she might feel. Remaining upbeat, she says,",
"glimpses at $your_cock, her lips pressing into a thin line to mask her dismay. Yet, she remains optimistic while saying,",
"shifts her gaze to $your_cock, her initial excitement deflating. But she quickly recovers, flashing you a warm smile as she assures,",
))
"(twirl:
"So... it's not that size matters, really, it's more about how it's used, right?",
"It's not the size of the boat, it's the motion of the ocean... right?",
"Well, they do say it's not about the size, but how you use it, you know.",
"Some say it's not the size, but what you do with it that counts, I'm sure we can make it fun.",
"Well, I've heard it's not about size, it’s about the technique. So let's see what you got!",
"Remember, it's not the size that matters, it's how you use it – we'll make it work.",
)"
(set:$gain_attraction to -1)
(display:"change relationship")
](else-if:(cock:"length") > 8)[
(print:(upperfirst:$her_name) + " " + (twirl:
"gasps in surprise at the sight of $your_cock, her eyes as wide as saucers. Overwhelmed, she stammers,",
"does a double-take at $your_cock, her face turning pink and her eyes going wide. Gobsmacked, she blurts out,",
"blinks at the sight of your impressive manhood, momentarily stunned. Drawing in her breath, she blurts out,",
"looks at $your_cock, then looks away in disbelief, then looks back again. Caught off guard, she exclaims,",
"gulps upon catching sight of $your_cock. Her eyes are wide, and she can barely contain her excitement as she says,",
"gets a look at $your_cock and she blushes deeply, in awe of what she's seeing. Awestruck she murmurs,",
))
"(twirl:
"Wow... you're really gifted, aren't you? That's... quite the package.",
"Oh my... That's quite a monster you have there.",
"Goodness! You're uh... a lot bigger than I expected.",
"Holy... You're hung like a stallion!",
"Wow... that's impressive, to say the least. Are you sure that's real?",
"You could give any pornstar a run for their money with that one.",
"God... that's a beast of its own kind. And I'm not complaining.",
"Oh... um wow. That's... that's seriously big. Not that I'm complaining.",
"Is that a bazooka in your pants or are you just happy to see me? No, it figuratively is a bazooka.",
"Good Lord... that's quite a weapon you have there, hope I can handle it.",
"Damn, you're packing some serious heat there, lover boy. I hit the jackpot, didn't I?",
"You've got enough goods for two men. Now that’s a pleasant surprise.",
"Well, hello there, Moby Dick! You sure you're not part horse?",
"Christ, look at the size of that thing. You must need a wheelbarrow to carry that beast around.",
)"
(set:$gain_attraction to 3)
(set:$max_attraction to 10)
(set:$gain_respect to 2)
(set:$gain_friendship to 1)
(display:"change relationship")
](else:)[
(print:(upperfirst:$her_name) + " " + (twirl:
"brightens at the sight of $your_cock, an approving amusement sparkling in her eyes. With a light laugh, she compliments,",
"smiles appreciatively as her gaze lands on $your_cock. Raising an eyebrow suggestively, she teases,",
"sizes up $your_cock, a playful grin tugging on the corner of her mouth.",
"glances at $your_cock, her cheeks flushing.",
"checks out $your_cock, her eyes lighting up.",
"casts her eyes on $your_cock, a soft flush creeping on her cheeks. She chuckles softly,",
"lets her gaze wander over your nudity, a pretty flush tinging her cheeks.",
))
"(twirl:
"Not bad at all, you've got a good package. Me likey.",
"Look at you! Definitely nothing to feel shy about.",
"Well aren't you packing? Quite impressive indeed.",
"Nice cock! You've definitely got the goods.",
"Oh, you're packing huh? This is pleasantly surprising.",
"Well, hello there. Seems like you're not only handsome outside.",
"You've got a nice piece there. I do think it's 'playtime'.",
"Well, look at that soldier. Sure looks ready for some action.",
"Oh, you're quite the show-off, aren't you? Keep it up.",
)"
(set:$gain_attraction to 1)
(display:"change relationship")
]
}{
(if:(cock:"length") < 3)[
(print:(upperfirst:$her_name) + " " + (twirl:
"snorts in amusement, looking at $your_cock. With a wicked grin, she remarks,",
"rolls her eyes at the sight of $your_cock. Letting out a mock sigh, she teases,",
"sneers in disappointment at $your_cock and scoffs,",
"laughs, shaking her head as she looks at $your_cock. She smirks and drawls,",
))
"(twirl:
"You call that a cock? I've seen bigger clits.",
"That's it? Baby, I've fingered guys with bigger things up their asses.",
"Where's the rest of it? You can't please anyone with that tiny thing.",
"That little thing isn't worth my time. Don't bother, sweetheart.",
)"
(set:$continue to "false")
(set:$gain_attraction to -5)
(set:$gain_respect to -2)
(set:$gain_friendship to -1)
(display:"change relationship")
](else-if:(cock:"length") < 6)[
(print:(upperfirst:$her_name) + " " + (twirl:
"gives $your_cock a pointed look, a smirk playing on her lips. She shrugs and says,",
"glances at $your_cock and chuckles. She teases,",
"looks at $your_cock and shakes her head in amusement. She comments,",
"eyes $your_cock with mild disappointment. She chuckles and remarks,",
))
"(twirl:
"Well, it's not the worst I've seen. But you're gonna have to work a lot harder.",
"Could be better, hon. Hope you know how to use that thing.",
"You've got your work cut out for you with that one. But hey, I'm open to trying.",
"Not the best, not the worst. We can work with that, I guess.",
)"
(set:$gain_attraction to -1)
(display:"change relationship")
](else-if:(cock:"length") > 8)[
(print:(upperfirst:$her_name) + " " + (twirl:
"lets out a low whistle, her eyes wide with shock and undisguised lust. She licks her lips and murmurs,",
"smirks as she looks at $your_cock, her eyes flashing with delight and anticipation. She comments,",
"laughs in genuine surprise and delight. Looking at $your_cock, she grins and drawls,",
"raises an impressed eyebrow at the sight of $your_cock. She gives you a suggestive wink and purrs,",
))
"(twirl:
"Well now, that's a cock worthy of a fucking queen. Good thing I'm up to the task.",
"Holy fuck, you're packing some serious meat. That monster is gonna make me cum buckets.",
"Well, that’s an offer I can’t refuse. Looks like I'm in for a rough ride.",
"That beast is gonna stretch me in all the best ways. Can't wait to feel you deep.",
"Fuck, that thing is massive. You’re gonna wreck my tight little hole, aren’t you?",
"God, that’s a massive dick. You’re gonna fuck me dumb with that monster.",
)"
(set:$gain_attraction to 5)
(set:$max_attraction to 10)
(set:$gain_respect to 4)
(set:$gain_friendship to 2)
(display:"change relationship")
](else:)[
(print:(upperfirst:$her_name) + " " + (twirl:
"looks at $your_cock appreciatively. She gives you a flirtatious grin and says,",
"sizes you up with a pleased smile on her face. She comments,",
"smiles widely at $your_cock, an approving nod following. She then teases,",
"takes in $your_cock with a satisfied smirk. She says,",
))
"(twirl:
"That's some good dick you got there. Now, let's put it to good use.",
"I knew you had a good cock. I'm going to have fun riding that.",
"You've got just the right size. My pussy is already throbbing.",
"That's the kind of dick I love - big and hard. I can't wait to feel you inside.",
"Well, aren't you a handsome devil? Nice cock, by the way. I have a feeling it'll fit perfectly.",
"That cock of yours is going to look even better going in and out of me. Let’s get to it.",
)"
(set:$gain_attraction to 2)
(set:$max_attraction to 10)
(set:$gain_respect to 2)
(set:$gain_friendship to 1)
(display:"change relationship")
]
}{
(if:(cock:"length") < 3)[
(print:(upperfirst:$her_name) + " " + (twirl:
"blinks in surprise, then furrows her brow, glancing at $your_cock. She audibly gulps then says with a slight stutter,",
"looks at $your_cock with wide eyes, then quickly averts her gaze, blushing furiously. She stammers,",
"takes a long moment to process the sight of $your_cock, then tries to conceal her shock with a nervous giggle and shyly suggests,",
"glances down at $your_cock, then her eyes quickly dart away, her cheeks turning a bright shade of pink. She giggles awkwardly and then mumbles,",
"blushes furiously at the sight of $your_cock, her eyes flitting to the side in shy avoidance. Nervously laughing behind her hand, she suggests,",
"gasps softly at $your_cock, her cheeks instantly flaming red. Her eyes dart to yours and then back to the floor, her voice barely above a whisper,",
"catches sight of your undressed state, her cheeks progressively reddening. She stammers out, avoiding your gaze,",
"is taken aback by $your_cock, a blush creeping up her neck.",
))
"(twirl:
"Um... maybe we could... y'know... play some video games instead?",
"Oh... uh... how about a round of Mario Kart? I think that might be... safer?",
"Uh... is it... um... possible we could switch to a board game or something?",
"Oh... um... Maybe we could just... um... watch an anime or something?",
"Um... m-maybe we could... play some video games instead?",
"How about we... um... play a round of *insert favorite video game*?",
"I-I'm really sorry... It's just... um... maybe we could... just chill, tonight?",
"I think... um... maybe... we could try that... umm... new co-op game?",
)"
(set:$continue to "false")
(set:$gain_attraction to -1)
(set:$gain_respect to -1)
(display:"change relationship")
](else-if:(cock:"length") < 5)[
(print:(upperfirst:$her_name) + " " + (twirl:
"takes in $your_cock, a soft blush dusting her cheeks. She gulps, then shyly says,",
"peeks at $your_cock, her cheeks turning a delicate shade of pink. She gives you a nervous smile and comments,",
"steals a quick look at $your_cock, her cheeks flushing a rosy hue. She stammers a little and then chirps,",
"glances down at $your_cock then quickly looks at you, her face turning bright red. She gives a nervous giggle and then mutters,",
"gawks at $your_cock, then reflexively covers her eyes, her cheeks blossoming into a blush. She stutters, then finally manages to say,",
))
"(twirl:
"I... um... it's not the size, right? It's how you... um... use it?",
"S-so... size doesn't matter, right? It's the... um... motion of the... ocean?",
"I... um... heard that size isn't everything... so...",
"Oh, um... well, they do say size isn't everything, right?",
"Well, um, I heard it's not the size but the technique, so... um... yeah.",
)"
(set:$gain_attraction to -1)
(display:"change relationship")
](else-if:(cock:"length") > 8)[
(print:(upperfirst:$her_name) + " " + (twirl:
"blinks rapidly at the sight of $your_cock, her eyes going as wide as saucers. She swallows hard, then squeaks out in disbelief,",
"does a double-take at $your_cock, her face turning a bright shade of pink. Her wide eyes nearly cross and she stutters,",
"fixates on $your_cock, her eyes growing large and her cheeks blooming into a deep blush. A tiny bit of drool forms at the corner of her mouth as she softly stammers,",
"gawks at your impressive manhood, her cheeks flaming red and her eyes wide. A cute little drool forms at the corner of her mouth as she exclaims,",
"blinks in surprise at $your_cock, her eyes going a bit cross. Stammering in disbelief, she murmurs,",
"scores an accidental eyeful of $your_cock, her eyes widening behind invisible glasses. She blushes a deep red, stuttering out,",
"stares at $your_cock, her mouth forming a small 'o' of shock. She manages to squeak out,",
"pales at the sight of your impressive manhood, gulping audibly. She manages to stutter out,",
))
"(twirl:
"Oh my... that's... uh... impressive. Really, really impressive.",
"Wow... you're... um... really well-endowed, aren't you?",
"Th-that's... um... big. Like, really big.",
"Goodness... That's... um... quite a sight. Like, WOW.",
"Holy cow... That's... a lot bigger than I expected.",
"Wow... That's... um... a lot to take in...",
"Gosh... you're... um... very gifted, aren't you?",
"Oh my... That's... certainly... um... well-endowed.",
"Oh my... That's... um... quite big. I didn't... um... didn't realize they came in that... um... size.",
"Wow... um... that's... big. I mean, really big... I've never... um... seen one that um... big.",
"That's... um... quite large. I... um... didn't expect... um... it to be so... um... big.",
"Oh wow... that's... um... really something. I've... um... never seen anything... like it.",
)"
(set:$gain_attraction to 3)
(set:$max_attraction to 10)
(set:$gain_respect to 2)
(set:$gain_friendship to 1)
(display:"change relationship")
](else:)[
(print:(upperfirst:$her_name) + " " + (twirl:
"swallows nervously as she looks at $your_cock. Her cheeks heat up and she says,",
"glances at $your_cock, then quickly looks away, her cheeks turning a cute shade of pink. She stammers,",
"quickly looks at $your_cock, then back to you, her face turning a soft pink. She smiles shyly and mumbles,",
"gives a quick peek at $your_cock, then blushes and quickly averts her gaze. She giggles nervously and comments,",
"takes a peek at $your_cock, then blushes furiously, looking away. She stammers out,",
))
"(twirl:
"Well, um, that looks... um... very nice indeed.",
"Uh, you've got a... a very nice, um... size.",
"Oh, um... that's... uh... a good size, right?",
"That's... um... quite nice. Not, um, too big or too small.",
"Oh, um... That's a... um... good size, I guess. Just right.",
"W-wow, that's... um... quite nice. You should be... um... proud.",
"Oh, um... That's... a nice size... I mean... um... it looks good.",
"Um... I think... um... it's a... um... quite a good size... right?",
)"
(set:$gain_attraction to 1)
(display:"change relationship")
]
}{
(if:(cock:"length") < 3)[
(print:(upperfirst:$her_name) + " " + (twirl:
"glances at $your_cock before her face twists into a mix of surprise and disappointment. She rolls her eyes and snaps,",
"looks at $your_cock, her eyebrows raising in incredulous surprise. She scoffs and bluntly states,",
"takes in the disheartening sight of your manhood, a dissatisfied smirk tugging at the corner of her mouth. She drawls,",
))
"(twirl: "Sorry, but this isn't gonna do it for me.",
"I've seen baby carrots bigger than that. I think it's best you leave.",
"You're definitely not equipped for the job. Save us both the trouble and see yourself out.",
"Oh... well, I've seen bigger on a Ken doll. But uh, thanks for showing me.",
"I think I've misplaced my magnifying glass. Might need it to find that little thing.",
"Isn't that precious? It's like a little button. Maybe a bit too little for me.",
"I've had mouthfuls of gummy worms bigger than that... ",
"Is that... it? Honey, I don't think that's gonna do the job.",
"Well, usually the idea is to fill me, not make me squint.",
"Okay, I’m a little confused. Is it your outie belly button or...?",
"I've had orgasms from pinky fingers that were bigger.",
"I'm sorry, but I think I'll need something a bit more substantial. Not my kind of toy, sweetie.",
"In my experience, a man needs something a bit more... substantive than that.",
)"
(set:$continue to "false")
(set:$gain_attraction to -5)
(set:$gain_respect to -2)
(set:$gain_friendship to -1)
(display:"change relationship")
](else-if:(cock:"length") < 4)[
(print:(upperfirst:$her_name) + " " + (twirl:
"takes a gander at $your_cock, her face clearly showing her disappointment. With a shrug, she remarks,",
"eyes $your_cock, a flicker of disappointment flashing in her eyes. Nonchalantly, she comments,",
"glances at $your_cock, her lips tilting into a frown of dissatisfaction. She sighs and mutters,",
))
"(twirl:
"Well, I suppose we can do something with that.",
"We'll need to be creative to work with that.",
"It's not much, but we'll make do.",
)"
(set:$gain_attraction to -2)
(display:"change relationship")
](else-if:(cock:"length") > 8)[
(print:(upperfirst:$her_name) + " " + (twirl:
"takes one look at $your_cock and her eyes widen in surprise. A sultry smirk replaces her initial shock as she huskily remarks,",
"eyes $your_cock appreciatively, a pleased grin spreading across her face. She purrs,",
"gives $your_cock a once-over, her eyes lighting up in delight. She gives a low whistle and praise,",
"checks out your impressive package, her eyes sparkling with clear interest. She compliments,",
))
"(twirl:
"Someone's packing a punch. I think we're going to have a lot of fun.",
"Impressive. This is going to be a good night.",
"Well, aren't you a pleasant surprise. This is going to be interesting.",
"I hit the jackpot, didn't I? You're definitely well-endowed.",
"That’s a hell of a package you’ve got there. Can’t wait to unwrap it.",
)"
(set:$gain_attraction to 3)
(set:$max_attraction to 10)
(set:$gain_respect to 2)
(set:$gain_friendship to 1)
(display:"change relationship")
](else:)[
(print:(upperfirst:$her_name) + " " + (twirl:
"looks over $your_cock, a satisfied nod following. She gives a slight smile and compliments,",
"checks out your package, a pleased smile tugging at the corner of her mouth. She gives an approving nod and says,",
"glances at your nudity, her gaze lingering on $your_cock. A pleased hum escaping her lips, she comments,",
"takes in your bare state, her eyes fixating on $your_cock. Sporting a pleased smirk, she compliments,",
))
"(twirl:"That's a nice piece you got there. We're going to have fun.",
"Seems like you're packing enough to keep things interesting.",
"Perfect. That's a good size for some fun.",
"Nice and sturdy. I'm looking forward to this.",
)"
]
}($play:"ambience","outdoors ocean night ambience")(if:(count:$events,"orgasm") > 0)[(if:$type is "facial")[With Mariselle on her knees beside the bed, you finally reach the height of your pleasure. With a guttural groan, you grip your throbbing cock, the other hand on the back of Mariselle’s head, gripping her dark hair.
With a gasp from Mariselle and a groan from yourself, you unleash your pent-up orgasm. Thick, hot ropes of cum spurt out, landing across her cheeks, her lips, the bridge of her nose - a dirty portrait of debauchery painted on the sultry singer's face.
Each spurt seems more potent than the last, her face swiftly turning into a cum-soaked canvas. Mariselle winces as a creamy rope lands across her eyes, momentarily blinding her. But through it all, she holds your gaze, her dark eyes clouded with a mix of shock and carnal delight at the sight of your explosive release.
Her face, once the epitome of polished perfection, is now smeared with your cum, the rivulets painting obscene trails down her cheeks, dripping onto her heaving tits. The sight of the Summer City's sweetheart, now wearing your mask of satisfaction, is absurdly erotic.
As your pulsating cock finally stills, the magnitude of what unfolded hits you both. There she is, Mariselle, drenched in your cum, a satisfied smirk playing on her cum-stained lips, her face gleaming under the muted lights.
She captures some of your cum on her finger, bringing it to her lips, tasting it with a provocative hum.
"Dios mío, $your_name," she purrs, running a finger down her cheek, collecting more of your cum, "You sure know how to paint a girl's face."](else-if:$type is "creampie")[(if:$position is "riding")[Mariselle is a vision of debauchery as she bounces atop you, her heavy breasts jiggling with every wet smack of her voluptuous ass against your hips. The sultry Latina grinds her hips down, her wet cunt swallowing your massive cock to the hilt. Her obsidian eyes flicker with lust under the dim room lights, her plump lips parted in a constant moan of pleasure.
The night air outside is filled with the rhythmic sound of the ocean waves crashing onto the shore, their ebb and flow matching the rhythm of your bodies. The room vibrates with the primal symphony of sex and desire, Mariselle's body a writhing masterpiece atop you.
Feeling the tension coiling tighter in your lower belly, you growl low in your throat, "Mariselle... I'm gonna…"
Her eyes widen in awareness, your warning making her grind down harder onto you. "Si, mi amor… cum for me. I want to feel you explode inside me," she purrs, her voice a raw and lewd whisper.
With her words, your control snaps. With a guttural groan, you grip her bouncing hips, your cock surging as the first volley of hot cum spurts deep into her. Her pussy spasms around you, milking every drop of your seed.
Mariselle’s body arches as she feels your sticky load unload into her, filling her cunt with your warmth. The sensation of your heavy cum painting her insides triggers her own climax, her body shuddering on top of you, her pussy squirting around your still-throbbing cock.
"Joder... I can feel it," she gasps, a tremor running through her body as your cum floods her. "You're filling me up, papi... so hot... so much… I’ve never felt so full.”
Watching Mariselle, the sex goddess of Summer City, moaning and crying out your name as you pump your cum into her is more than a fantasy come true. It's a claim, an erotic marking of territory, that leaves a tingling sense of satisfaction. You've not just fucked Mariselle, but you've claimed her, filled her, made her cum on your cock, and left your mark deep within her. You've had a taste of the city’s sweetheart, and you know that you'll always crave for more.](else-if:$position is "doggy")[As the minutes stretch into what feels like hours, your unyielding cock pounds Mariselle's slippery cunt from behind, the room filled with lewd, primal sounds of flesh slapping against flesh, and ragged moans. You mount her like an animal, taking the famed singer in a ruthless, feral manner each thrust met with her wanton moan, her tits swaying with each vicious slam of your hips against her huge, bouncing ass. The heady smell of sex, sweat, and debauchery fills the room, a poignant testament to your raw, animalistic rutting.
Outside, the waves crash against the rocks, the sound reaching your ears like a lullaby. A cool breeze rolls in through the ajar window, caressing your sweat-slick bodies in a refreshing touch. The faint sound of midnight birds singing adds a surreal touch to your debauched sinning.
Suddenly, a familiar tension builds up in your balls, signaling your impending orgasm. “I’m going to cum, Mariselle,” you groan in between thrusts, the feeling of your balls tightening deliciously intense.
"Sí, sí, $your_name...cum for me...fill me up," she pants out, her voice thick with desire and exhaustion from the countless orgasms she's already experienced.
Her admission spurs you on. With one final, desperate thrust, you bury your cock deep inside Mariselle, releasing your load with a guttural moan. The sensation is mind-numbing, your vision blurring as you feel string after string of your cum shooting into her welcoming pussy.
Your cock twitches and throbs inside her, pumping your hot seed deep within her. Her flooded fuck hole clenches around your cock, milking you for every drop. The feel of your thick cum filling her triggers a final climax, making her scream out in pleasure, “Yes, yes, fill me up, papi!”
Exhausted, you collapse onto the bed next to the panting singer, the two of you a mess of tangled limbs, sticky fluids, and satiated cravings. You remain there, listening to the sound of the crashing waves and the distant midnight birds, the room filled with the heavy scent of sex. The taste of Mariselle lingers on your tongue, the feel of her satin skin still fresh on your fingertips, making your heart race with satisfaction.
You look over at Mariselle, her eyes closed, her chest rising and falling in a slow rhythm. Her caramel skin shines under the dim light, streaks of sweat and your cum adorning her well-fucked figure. Her breasts rise and fall with her heavy breaths, stray curls sticking to the sweat coating her forehead, giving her an image of a goddess post-battle.
As the night deepens, you realize that you've not only fucked the most lusted-after woman in Summer City, but you've also sated her. And in those quiet moments, lying next to Mariselle, you can't help but feel a sense of accomplishment. You've inseminated Summer City’s sweetheart, claimed her for your own, and from the looks of it, she seemed more than happy to be claimed.](else:)[Mariselle writhes beneath you in post-orgasmic bliss. Her body is slick with sweat, her hair a tussled mess, her tits rising and falling with every labored breath. Her legs wrap around you tightly, pulling you closer, locking you within the velvety confines of her soaked sex.
The moonlight filters in through the window, casting a beautiful glow on her caramel skin, enhancing every curve and swelling to perfection. The intimate sounds of the ocean waves caressing the shore outside and the sultry midnight calls of distant birds amplify this private bubble of decadent pleasure.
"Mi amor..." Mariselle moans beneath you, her glazed eyes locking onto yours. Her hands move up your body, tracing the contours of your muscles. "I want to feel you... feel your hot load inside me..." Her words trickle into your ear, her voice barely above a whisper, laced with raw, promiscuous desire.
Something snaps within you at her words. All the precariously pent-up arousal, the sight of Mariselle, the sultry singer cumming relentlessly on your cock, the heavenly feeling of her convulsing hole around you, it all spirals into a rush of inevitable release.
Your cock twitches, giving her a warning before the impending flood. "Mas... dame más, $your_name..." she whispers, her pussy clenching around your throbbing member, urging you to fill her up.
With one final, primal grunt, you unload, shooting a copious, thick load of cum deep within her molten pussy. The pleasure is mind-numbing, waves of intoxicating satisfaction wash over you as you feel your cock pulsating, releasing hot, sticky spurts of semen.
Her back arches off the bed, her large tits bouncing wildly as she feels your warm essence filling her to the brim. Mariselle gasps, her fingernails digging into your shoulders, a litany of Spanish curses leaving her lips. Her velvety walls milk you, spasm around your cock, wanting to coax even more of your cum.
She gazes deeply into your eyes as you cum, her lips parting in awe and bliss. The sight of you, eyes closed in ecstasy, features contorted in pleasure, is a sight she savors, a sight that sends another flutter of pleasure through her.
When the last spurts of your load drain into her, you collapse onto her, both of you panting and entangled in a sticky, sweaty mess. The bed creaks under your shared weight, a soaked testament to your night of debauchery. The room smells like raw sex - a mix of your cum and her sweet nectar.
As the waves continue crashing onto the shore and the birds serenade the night, you lie there, spent and claimed by each other. Mariselle, the sex symbol of Summer City, lay beneath you, filled and satisfied by your huge cock. The realization, the high of taking her, inseminating her, is a potent rush. You bask in the afterglow, her soft snores lulling you into a well-deserved rest in the arms of the city's sweetheart.]](else-if:$type is "pull out")[The moment you've been building up to arrives like the crashing of a wave, an intense explosion that starts at your toes and surges up through your spine. The anticipation escalates to an almost unbearable peak as you withdraw from her soaked pussy, your cock throbbing vigorously against her jiggling ass. Your hands grip the luscious globes, the pads of your fingers sinking into the soft flesh as you line up.
"Mmm, give it to me, Papi," Mariselle purrs, glancing over her shoulder at you. Her sultry smile sets your blood on fire, your cock twitching against the crevice of her ass. The normally composed singer is now sprawled across the disarrayed sheets, her hair splayed around her sweaty face, fringed by a halo of messy tendrils.
And then, with a guttural grunt, you let go. Like a volcanic eruption, your cock spurts a thick, sticky load of cum, the hot spurts eagerly painting her glorious ass. The powerful release has you gasping, your body jerking as you hose down Mariselle's plump rear.
She squeals in delight, a giggle dancing on her lips as she feels the warm liquid coat her skin. She arches her back, thrusting her cum-splattered ass towards you, the droplets trickling down her caramel curves, adding to the evidence of your wild lovemaking on the drenched sheets.
The midnight surf outside crashes rhythmically, the sounds blending with your heavy breathing and Mariselle's soft moans. The room is filled with the musky scent of sex and the pungent tang of your freshly spilled cum. The sheets beneath you squelch slightly as you both collapse onto the bed, a post-coital afterglow painting both your bodies in a sheen of sweat and satisfaction.
After a few moments of quiet contemplation, Mariselle rolls onto her side, the cum on her ass glistening in the dim light. She then reaches behind her, tracing the wet trails with her fingers before bringing them to her lips, a giggle escaping as she tastes your essence.
Watching Mariselle, the belle of Summer City, lying satisfied and drenched in your cum is an image that'll be etched into your memory. The expression of pure delight on her face is the sweetest reward, a testament to the hedonistic pleasure you've navigated together on this unforgettable night.](else-if:$type is "cum tits")[Finally, the runaway freight train of your own release is ready to collide. Your cock twitches with anticipation inside Mariselle's spent pussy, a jerk of premonition indicating the impending eruption.
You pull out, the absence of her warmth immediately making you groan. Straddling her sweat-slick body, you position your throbbing member over her monstrous tits, aiming for the perfect shot.
With a few swift pumps, your orgasm crashes over you, a tidal wave of pure, unfettered bliss. Every nerve ending sparks, your vision blurring as a heavy load of hot, sticky cum blasts from your cock, painting Mariselle’s glorious tits in a warm, gleaming glaze.
"Mmm, yes, papi!" The famous singer coos beneath you, her dark eyes glittering with satisfaction. She jiggles her cum-covered mounds, delighting in the sticky stream cascading over her nipples, the slippery fluid gliding down her cleavage and belly.
The midnight sound of the cityscape blends with Mariselle's soft giggles and your own ragged breathing, creating a harmony uniquely representative of this illicit encounter. Her tousled raven hair fans out over the soaked bedsheet, a testament to the debauched pleasure you've shared. In the moonlight filtering through the open window, you can see the shimmering trails your cum is leaving on her caramel skin - every droplet a mark of your satisfying release.
Each twitch as your cock continues to spurt, each white splatter on her chest and the tiny gasps escaping from her glossy, red-painted lips, each sticky trickle weaving its way down her body... these details etch a vivid scene in your mind that you are unlikely to forget. The sight of Mariselle, the city's sweetheart, lying beneath you, basking in your release, her tits covered in your thick load - it's an image that’s one for the history books.
There's a thrill of pride as you watch your own cum slowly trickle down the tits that had half the city drooling this evening at Electric Pickle. The weight and magnitude of the realization that you just came all over Summer City's sultriest singer sends a satisfying shiver down your spine.]](else:)[(if:$type is "facial")[You pull out of Mariselle just in time, the sight of her kneeling before you, her eyes looking up at you, full of anticipation and lust.
The sight of the singer on her knees, her voluptuous tits jiggling, drives you over the edge. Your hand moves fast on your cock, the head nearly throbbing in your grip. With a final, desperate jerk, you release.
Your cum sprays out in thick ropes, landing on Mariselle's beautiful face, covering it with your hot, sticky seed. The volume of it draws a surprised gasp from her, her dark eyes widening as she takes the full brunt of your heavy load.
Strand after strand of your cum paints her flushed cheeks and plump lips, a perverse contrast to her smeared red lipstick. Her hair is left matted and messed, sticking to her forehead as even more of your cum splatters over it.
A guttural groan rips through your chest as you empty yourself onto her, the sight of her cum-splattered face making you twitch in post-orgasmic sensitivity.
Mariselle squirms slightly underneath you, her own pussy left wanting, a heated glare throwing your way. The sight of her - marked by your cum, unsatisfied, looking at you with a lustful hunger - it all adds to the eroticism of the moment. ](else-if:$type is "pull out")[Feeling the familiar coil of an impending orgasm building up, you manage to pull out just in time. Mariselle wails in disappointment, "No, papi... why did you...?"
But her protest turns into a gasp as you grip your throbbing cock and let out a guttural growl. With a jolting shudder, you explode, releasing a massive load of hot, thick cum. It shoots out in ropes, splattering all over Mariselle's round, jiggling ass.
Her body quivers beneath the warm onslaught, a squeal leaving her red, panting lips. "Ay... papi!" she moans, her hands reaching back to feel your cum dripping down her ass cheeks.
Her face twists in a mix of arousal and disappointment, the sight of your cock spurting hefty ropes of cum over her ass both a turn-on and a source of frustration.](else-if:$type is "cum tits")[Your body tenses on the brink, your climax teetering on the edge of release. You're straddling Mariselle, the milky globes of her tits heaving under your palms, her eyes locked onto your face in anticipation. You can hear the distant sound of waves crashing against the shore outside, the city's nightscape an exotic background to your intense, upcoming release.
With a guttural growl, you finally explode. Your cum bursts out in thick, heavy ropes, splattering all over Mariselle's magnificent breasts. The sight is absolutely sinful - your release hosing down the city's sweetheart, the droplets of your joy creating glossy rivers down the valley of her cleavage, her nipples poking out through the white, sticky mess.
The feeling of release is nothing short of divine - like a dam bursting inside you, a surge of pleasure that ripples throughout your body. You groan, your hands gripping her tits tighter as you ride out the aftershocks, each throb of your cock causing another splatter of cum onto her chest.
She gasps beneath you, the onslaught of your release leaving her stunned and sparkling under the dim room lights. Her hair, sprawled out on the soaked sheets, is a tangled mess of ebony silk, her eyes widened in mingled surprise and delight.
You take a moment to savor the sight - Mariselle, the star singer of Summer City, soaked in the aftermath of your pleasure. Just hours ago, these same tits had been the star attraction at the Electric Pickle, men and women alike lusting after the generous cleavage. And now, they were presented to you - sticky and shiny with your cum, a testament to the night of debauchery you two shared.
As your gasping breaths echo in the room, a sense of satisfaction washes over you. You got your pleasure, you made the famous Mariselle moan and scream, your cock had delved in and out of her sultry folds, and you had coated her beloved tits with your cum. It was a heady knowledge, an intoxicating delight that would stain your memories for a long time.
And yet, Mariselle lays there, a glint of unsatisfied lust shimmering in her dark eyes. Her lips parted in a gasp, her chest still heaving, her tits coated in your cum - and her sultry pussy untouched, a night of pleasure brought to an abrupt, anticlimactic end.](else-if:$type is "creampie")[(if:$position is "riding")[You can feel your release mounting, your cock throbbing deep inside Mariselle. The sight of her riding you - her massive tits bouncing, her hair flying wild, her ass cheeks slapping against your balls - is too much.
"No... not yet... oh Dios, $your_name, not yet!" she gasps out, pushing herself harder onto your pulsating cock. But your body has other plans, the pleasure too potent to resist.
"You're... you're gonna make me..." you grunt, your fingers clawing at her wide hips, trying to still her. But she only shakes her head, her lower lip caught between her teeth, her eyes pleading.
And then, with a throaty groan, you cum. You explode inside her, your hot cum shooting up deep into her pussy, her velvety walls clamping down around you. The sensation - the silky heat of her pussy, the pulsating pleasure of your cum spilling into her - is so intense your vision blurs.
"Oh... oh DIOS!" Mariselle cries out, disappointment mingling with surprise as she feels your warm load filling her.
You're vaguely aware of the midnight sounds of waves crashing outside, but all you can focus on is Mariselle, the famous singer of Summer City, whimpering on your cock as your cum floods her depths. The sight of her arched back, her heavy breasts trembling with her shallow breaths, is etched into your mind.
You grab her hips, holding her still as your cum continues to fill her. She's gasping for air, her forehead beaded with sweat, her body trembling from the sheer intensity of the climax. Her sweet pussy is clutching onto your cock, milking you for every drop.
Her disappointment is evident - she was so close, and you came first. But for you, it's pure ecstasy, your cum marking her, claiming the sultry singer for yourself.
"You... you came..." she pouts, her fingers tracing lazy circles on your chest. You can feel the stickiness between you, the evidence of your shared passion, her pussy still clenching around your sensitive cock.
And in that moment, the ecstasy of inseminating Mariselle, of claiming the heart of Summer City's nightlife - it's intoxicating, a thrill that courses through your veins. The sight of Mariselle, the sounds of her pleasure, the scent of your cum mixing with her juices - it's a sensory overload, a raw, hedonistic painting of pure lustful satisfaction.](else-if:$position is "doggy")[There's a carnal rhythm to your bodies as you mount Mariselle from behind, your thick cock stretching her to the brink. The late-night sound of waves crashing against the shoreline beyond the mansion's walls adds to the heavy atmosphere in the room.
Your hands grip her curvy hips, your nails digging into the soft flesh. She pushes back against your thrusts, her plump ass smacking against your hips. Her moans and whispered prayers fill the air, the sweet soundtrack to your raw, animalistic mating.
"Oh, papi… no, not yet… don’t cum…" Mariselle's breathless voice spikes to a plea. But her words only add fuel to your desire. Her pussy feels too good, so tight and wet around your throbbing cock.
Suddenly, you're teetering on the edge, a deep rumble starting in your balls. Her desperate plea rings in your ears but it's too late, the pressure building up to be released.
“Fuck… Mariselle…” you growl out, your voice laced with unrestrained desire as you shoot stream after thick stream of hot cum deep inside her. You bury your cock as far as it'll go, filling her with your heavy load, a potent mark of claiming the city's sultry sweetheart.
Her back arches, her body jolting as she feels your cum coating her insides. Her gasp echoes in the room, a testament to the sheer volume of your release. Your orgasm feels like a thunderous wave crashing through you, every nerve ending on fire with pure, unadulterated pleasure.
But Mariselle hasn't cum. "Papi... I... I didn't..." You hear the disappointment in her voice but the blissful sensation of your orgasm outshines it. She can feel the hot sticky ribbons filling her up, your cock pulsing with each squirt.
The room is filled with your low grunts, her half-whispered curses, and the lewd squelching of her cum-filled cunt around your still-throbbing cock. Sweat trickles down your back, the sheets beneath are soaked with your combined arousal. The air is electric with your ecstasy and her anticipation, a moment frozen in time, as you give in to the primal desire to breed the town's superstar, Mariselle.
Even as your arousal starts to recede, the feeling of being buried deep in Mariselle, filling her, inseminating her – it's an intoxicating moment of triumph and satisfaction. Unforgettable, passionate, and absolutely filthy. A night where Summer City's siren was claimed, not by her mounting string of admirers, but by you and your godly cock.](else:)[As the night's waves crash against the nearby shoreline, the only sound louder is your and Mariselle's intertwined panting. Your thrusts grow more frantic, your cock pulsing wildly inside her. She clings to you, her legs wrapped around your waist, her huge tits bouncing with each thrust. Her eyes meet yours, and you see the insatiable hunger lurking within their dark depths.
"Oh, papi... I'm so close..." she whispers, her fingers digging into your sweaty back. "Wait for me..."
But your climax is fast approaching, your balls twitching with the impending release. With a growl, you plunge your cock deeper into her, feeling the head pressing against her cervix. Her pussy tenses around you, her body balancing on the precipice of a much-desired orgasm.
"N-not yet..." Mariselle's voice is a breathy whimper, but her plea falls on deaf ears.
Your orgasm hits you like a freight train, your cock twitching as it fires rope after heavy rope of sticky cum deep inside her. "Mariselle..." Your voice is gravelly and choked with pleasure as you fill her to the brim.
But her climax doesn't come.
Instead of meeting your orgasm with one of her own, Mariselle simply falls back onto the bed, a sigh escaping her lips. She releases her legs from around you, allowing you to pull out of her. Your cum leaks from her, pooling on the drenched sheets, a tangible proof of your pleasure.
But there's no satisfaction in her eyes. Even as she watches your seed drip out of her, her expression is one of disappointment. She'd been looking forward to reaching her own climax all night, and now, she's left unsatisfied.
"After all this..." she mutters, turning away from you to gaze out into the endless sea, her back arching as she stretches.
Despite the euphoria that lingers from your orgasm, you can't help but feel a pang of disappointment. You had the pleasure of inseminating Summer City's sweetheart, of feeling her pussy clench around you, but it was a one-sided pleasure. And that knowledge somewhat dulls the radiance of the night.
Drenched in sweat, cum, and the remnants of shared pleasure, the night ends on a surprisingly somber note. Mariselle, the vibrant singer, lies beside you, her voluptuous body coated in the sensual detritus of the night. But despite the raw intimacy of the moment, the night concludes in silence. Out of sync, leaving you with a strange sense of emptiness, and Mariselle with a sigh of disappointment.
After all, life, as in bed, is often about mutual satisfaction.]]]{
(unless:(dm-names:$npc) contains "sex times")[(set:$npc's "sex times" to 0)]
(unless:(dm-names:$npc) contains "max orgasms")[(set:$npc's "max orgasms" to 0)]
(unless:(dm-names:$npc) contains "orgasm total")[(set:$npc's "orgasm total" to 0)]
(set:$npc's "sex times" to it + 1)
(set:$npc's "orgasm total" to it + (count:$events,"orgasm"))
(unless:(dm-names:$npc) contains "orgasm average")[
(set:$npc's "orgasm average" to (count:$events,"orgasm"))
](else:)[
(set:$npc's "orgasm average" to (($npc's "orgasm average")*(($npc's "sex times")-1)+(count:$events,"orgasm"))/($npc's "sex times"))
]
(if:(count:$events,"orgasm") > $npc's "max orgasms")[
(set:$npc's "max orgasms" to (count:$events,"orgasm"))
]
(display:"save npc")
(set:$se to "cum moan " + $npc's "id" + " " + (text:$img))
(display:"play sound")
(set:$sex_loop to 0)
(display:"play sex loop")
}
(if:$type is "pull out")[(set:$select to "cum")(display:"girl update npc image")(set:$cum_img to "<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/pull out.mp4' autoplay='' loop='' muted='' playsinline/>")(print:$cum_img)(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl cum mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl cum alexia")](else:)[(twirl:"You nut","You blow your load","You unload your balls","Groaning loudly, you cum","You cum","You shoot your load","You finally empty your balls","You drain your balls") (twirl:"all over her","all over her beautiful body","all over her tits and stomach","all over her body").(if:(twist:1,2) is 1)[
"(twirl:"Wow, that's a lot...","So much cum...","Oh my god, so *much*...")" she (twirl:"breathes","says","murmurs").]]](else-if:$type is "facial")[(set:$curiosity_check to "give facial")(display:"curiosity check")(set:$select to "cum")(display:"girl update npc image")(set:$cum_img to "<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/cum face.mp4' autoplay='' loop='' muted='' playsinline/>")(set:$subtype to "cum face")(if:(checkdm:$npc,"id","is","alexia") and $pc_race is "bwc")[(set:$subtype to (twirl:"cum jerk","cum face messy","cum face ropes","cum face"))(set:$cum_img to "<video disableRemotePlayback src='img/npc/girls/alexia/sex/bwc/" + $subtype + ".mp4' autoplay='' loop='' muted='' playsinline/>")](print:$cum_img)
(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl cum mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl cum alexia")](else:)[(if:(twist:1,2) is 1)[(twirl:"You nut","You blow your load","You unload your balls","Groaning loudly, you cum","You cum","You shoot your load","You finally empty your balls","You drain your balls") (twirl:"all over her face","all across her pretty features","all over her pretty face").](else:)[(twirl:"You spray her down with","You paint her face with","You cover her face in") (twirl:"a wet, heavy load of cum","a big load of cum","a big, messy load of cum").]]](else-if:$type is "mouth")[(set:$cum_img to "<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/cum mouth.mp4' autoplay='' loop='' muted='' playsinline/>")(set:$subtype to "cum mouth")(print:$cum_img)(if:$npc's id is "alexia")[(display:"girl cum alexia")](else:)[(if:(twist:1,2) is 1)[(twirl:"You nut","You blow your load","You unload your balls","Groaning loudly, you cum","You cum","You shoot your load","You finally empty your balls","You drain your balls") (twirl:"into her mouth","into her pretty mouth").](else:)[(twirl:"You fill her mouth with","You paint her tongue with") (twirl:"a wet, heavy load of cum","a big load of cum","a big, messy load of cum").]]](else-if:$type is "cum tits")[(set:$select to "sex")(display:"girl update npc image")(set:$cum_img to "<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/cum tits.mp4' autoplay='' loop='' muted='' playsinline/>")(print:$cum_img)(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl cum mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl cum alexia")](else:)[(if:(twist:1,2) is 1)[(twirl:"You nut","You blow your load","You unload your balls","Groaning loudly, you cum","You cum","You shoot your load","You finally empty your balls","You drain your balls") (twirl:"all over her tits","all over her tits").](else:)[(twirl:"You spray her down with","You paint her tits with","You cover her tits in") (twirl:"a wet, heavy load of cum","a big load of cum","a big, messy load of cum").]]](else-if:$type is "creampie")[(set:$sex_events to $sex_events + (a:"creampies given"))(if:(checkdm:$npc,"race","is","black"))[(set:$cum_img to "<video disableRemotePlayback src='img/scenes/generic/sex/cum/creampie/c/" + (text:$img) + "/" + (text:$position) + " " + (text:(twist:1,1)) + ".mp4' autoplay='' loop='' muted='' playsinline/>")](else-if:(checkdm:$npc,"id","is","mariselle"))[(set:$cum_img to "<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/creampie.mp4")(print:$cum_img)](else-if:(checkdm:$character,"race","is","black"))[(set:$cum_img to "<video disableRemotePlayback src='img/scenes/generic/sex/cum/creampie/w/bbc/" + (text:$position) + " " + (text:(twist:1,2)) + ".mp4' autoplay='' loop='' muted='' playsinline/>")(print:$cum_img)](else:)[(set:$cum_img to "<video disableRemotePlayback src='img/scenes/generic/sex/cum/creampie/w/bwc/" + (text:$position) + " " + (text:(twist:1,2)) + ".mp4' autoplay='' loop='' muted='' playsinline/>")(print:$cum_img)](if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl cum mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl cum alexia")](else:)[(twirl:"You nut","You blow your load","You unload your balls","Groaning loudly, you cum","You cum","You shoot your load","You finally empty your balls","You drain your balls","With a final thrust, you cum") (twirl:"deep inside her","deep in her pussy","inside her","deep inside her pussy").(if:$npc's "traits" contains "no pill")[
"(twirl:"N- no...","Oh god, no! I could get pregnant...","Oh fuck! You really just came inside???","You did not really just do that!")" (twirl:"she whimpers","she moans","she says, upset","she squeals").]]](display:"register fuck girl")<div class='options'>(link:"Next")[($cs:"girl sex aftermath")]</div>(set:$today_events to $today_events + (a:"orgasm"))(dec:'action_points')(display:"update action points orgasm")(if:$status's "status" is "sexually frustrated" or $status's "status" is "very sexually frustrated" and $character's "arousal" is 0 or $today_events contains "orgasm")[(display:"reset status")]($remember:"cum girl",14,$npc's name,$cum_img,$type,(cond:$type is "creampie" and $npc's traits contains "no pill","unhappy creampie","normal"),...$npc's traits)(set:$sex_events to $sex_events + (a:"sex as guy"))(set:$sex_loop to 0)(display:"play sex loop")(live:1s)[(set:$se to "penetration " + $npc's "id" + " " + $img)(display:"play sound")(stop:)](set:$select to "sex")(display:"girl update npc image")(set:$events to $events + (a:"insert"))(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/insert.mp4' autoplay='' loop='' muted='' playsinline/>")
(display:"girl fuck options")(set:$sex_loop to 0)(display:"play sex loop"){(set:$select to "normal")(display:"girl update npc image")(set:$events to $events + (a:"kiss"))(if:$stage is 0)[(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/kiss clothed.mp4' autoplay='' loop='' muted='' playsinline/>")](else:)[(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/kiss naked.mp4' autoplay='' loop='' muted='' playsinline/>")](if:(count:$events, "kiss") < 3)[(inc:'her_arousal')(if:$her_arousal < 6)[(inc:'her_arousal')(if:(get_charm:) > 5)[(inc:'her_arousal')]]](if:(count:$events, "kiss") > 4)[(dec:'her_arousal')(dec:'her_pleasure')](else:)[(inc:'her_arousal')]}(if:(count:$events,"kiss") is 1)[(display:"girl kiss text")(display:"npc screen update sex girl")(display:"refresh stats sex")]
(display:"girl fuck options"){(set:$sex_loop to (twirl:"kiss loop 1","kiss loop 2","kiss loop 3","kiss loop 4","kiss loop 5","kiss loop 6","kiss 1","kiss 2"))(display:"play sex loop")(if:(checkdm:$npc,"id","is","mariselle"))[(twirl:"
The moment her lips touch yours, a spark of electricity shoots through your body. She kisses you passionately, her vanilla-scented breath filling your senses as she pulls you closer, her tongue exploring your mouth in a heated dance.",
"There's a heat to her kisses, a carnal hunger that sears through you, stoking the fires of your arousal. Her lips feel as soft as silk against yours, the tantalizing taste of her lipstick mingling with her unique, intoxicating scent.",
"As Mariselle kisses you, you feel a rush of warmth spreading through your body. Her lips are soft, plump, and taste tangy, like the lime in a mojito. Her tongue teases yours back.",
"Her lips crash against yours, the taste of her lipstick and the scent of her skin overwhelming your senses. She sucks your lower lip with a hunger, her tongue swiping across the seam of your mouth, seeking entrance.",
"The moment her lips press against yours, heat rushes through your body. Her kiss is like a desperate plea for more, a lewd dance of lips and tongues, the taste of her mouth - vanilla and musk - intoxicating you.",
"When Mariselle's lips meet yours, it's like nothing you've ever felt before. She kisses you hungrily, her plump lips moving against yours in a lewd rhythm, her tongue invading your mouth, the taste of her - tangy, warm, intoxicating - driving you wild.",
"The way Mariselle kisses you is nothing short of mind-blowing. Her plump lips crash onto yours, the faint taste of her lipstick mixed with her unique, alluring scent. Her tongue meets yours in a heated dance, stirring a primal desire within you.",
"Her lips are soft and plump, and when they meet yours in a heated kiss, it's like the entire world fades away. Her tongue explores your mouth, the taste of her - a heady mix of her lipstick and her unique, alluring scent - intoxicating you.",
"When she kisses you, it's like a bolt of electricity surges through your body. Her lips are plush and yielding, tasting faintly of the strawberry lip balm she uses, while the scent of her skin - a tantalising mix of vanilla and musk - fuels your desire.")](if:(checkdm:$npc,"id","is","alexia"))[(display:"girl fuck kiss text alexia")](else-if:$npc's "traits" contains "nerdy")[
(if:(get_charm:) > 5)[
(twirl:
"You grab her waist and pull her close, lips clumsily finding hers. She tastes like the drink she had, and you savor it, bodies pressed tightly together.",
"Her back against the wall, you explore her mouth, hands unsure where to rest. They finally settle on her hips as she moans into your mouth, making you bolder.",
"You clumsily kiss down her neck, but she's moaning, urging you on. Hands exploring each other's bodies, passion overrides any awkwardness.",
"Fingers tangled in her hair, you kiss her hard. It's messy and heated, full of hunger. She bites your lip, and you groan, pulling her closer.",
"With a mix of confidence and nerves, you lean in, lips meeting. You pull her against you, hands sliding over her ass, and the kiss deepens.",
"Your mouth finds hers, unsure at first, then hungry. Your hands slide under her shirt, feeling her warm skin as she shivers under your touch.",
"You kiss her, hands sliding up her thighs, and she gasps. Any awkwardness is lost in the heat of the moment as you explore each other.",
"You lock lips, your hands on her waist fumbling with her clothing. The kiss is wet, needy, and full of longing as you both lose yourselves in it.",
"Hands on her face, you pull her into a kiss. It's slow, then frenzied. Her moans fill your ears as your hands find her breasts, fueling your desire.",
"You press her against you, lips meeting in a fevered kiss. It's all tongues and teeth, hands everywhere, her slight awkwardness adding to the thrill.")
](else:)[
(twirl:
"You push her against the wall, a confident smile playing on your lips. You kiss her hard, one hand on her ass, the other exploring her body. She responds, eager and moaning.",
"With a suave move, you pull her close, lips locked in a heated kiss. Hands explore, movements sure and practiced, her slight hesitation only fueling your desire.",
"You know exactly what to do, where to touch. Your mouth on hers, hands sliding under her clothes, her body arching into yours as you take control.",
"You kiss her with a practiced ease, one hand tangled in her hair, the other on her waist. You pull her closer, the kiss deepening, passion taking over.",
"Your lips meet, and it's electric. Your hand cups her ass, pulling her against you. She's hesitant but quickly lost in the kiss, responding with a moan.",
"You kiss her, and it's all heat and passion. Hands on her breasts, lips locked, you explore each other's bodies, her slight awkwardness making it even hotter.",
"With confidence, you pull her close, lips finding hers. The kiss is frenzied, hands everywhere, her body responding to your every touch.",
"You pin her to the wall, your lips on hers in a passionate kiss. One hand slides down her body, finding her heat, and she gasps into your mouth.",
"You kiss her with a hunger that she returns. Hands roam, bodies pressed tightly together, the connection primal and raw.",
"With a smirk, you pull her close, lips locked. Your hands explore her body, sure and practiced, and she melts into you, the heat building between you.")
]
](else-if:$npc's "traits" contains "slut")[
(if:(get_charm:) > 5)[
(twirl:
"You pull " + $her_name + " close, her lips attacking yours with practiced ease. Her tongue dances with yours, a hot and lustful embrace that ignites your senses.",
(upperfirst:$her_name) + "'s hands find your face, pulling you into a passionate kiss. Her lips taste of raw desire, her body perfectly aligned with yours, leaving you craving more.",
"With a knowing glance, " + $her_name + " draws you in. Your mouths collide in a fiery kiss, her moans filling your ears as her body presses eagerly against yours.",
(upperfirst:$her_name) + "'s kisses are wild, fervent, and filled with a hunger that sends shivers down your spine. Her body melds with yours as you lose yourselves in the moment.",
"You guide " + $her_name + "'s lips to yours, and she responds with a raw sensuality that takes your breath away. Her tongue explores, teases, her entire body a weapon of desire.",
(upperfirst:$her_name) + "'s lust-filled eyes lock with yours before her lips meet yours in a heated kiss. You control the pace, her moans growing louder, her body begging for more.",
"Her mouth devours yours, a storm of lust and desire that leaves no room for thought or doubt.",
(upperfirst:$her_name) + "'s kiss is a promise, a tease, a challenge. Her body responds to your touch, her mouth a conduit for her raw, untamed lust.",
"You kiss " + $her_name + ", and the world fades away. Her body, hot and eager, presses against yours, each touch a spark, each kiss a fire.",
"Confidence and desire drive you as you pull " + $her_name + " into a kiss that speaks of nights of pleasure and mornings of longing. Her body is yours, and she knows it.")
](else:)[
(twirl:
"Her hands are all over you, her mouth desperate, hungry. The kiss is messy, wild, pure expression of sexual need.",
"You and " + $her_name + ", a whirlwind of lust. Her mouth crashes into yours, teeth and tongues and heat, the urgency building to a fever pitch.",
(upperfirst:$her_name) + " throws herself at you, her lips insatiable, her body aflame. You match her intensity, lost in the raw, animalistic passion.",
(upperfirst:$her_name) + "'s lips find yours, hot and demanding. You fumble, caught in her storm, her body grinding against you, the heat unbearable.",
"You pull " + $her_name + " close, her body searing against yours. The kiss is rough, desperate, fueled by a desire that knows no bounds.",
"Electricity sparks as " + $her_name + "'s lips collide with yours. She's all over you, no hesitation, no restraint, a wild craving that you both share.",
"Her lust is palpable, her kisses frenzied, her body aching for you. You respond, caught in the tidal wave of her desire, willing and eager.",
"You kiss " + $her_name + ", and it's chaos. Clothes forgotten, mouths hungry, the connection raw and primal, a dance of pure lust.",
"Her kiss is a wildfire, consuming and relentless. Her body moves with yours, the passion overriding all else, a need that must be satisfied.",
"You and " + $her_name + ", a symphony of desire. Her lips, her body, her moans, all driving you to a place of wild abandon, where only pleasure exists.")
]
](else-if:$npc's "traits" contains "bitch")[
(if:(get_charm:) > 5)[
(twirl:
"You take charge, pulling " + $her_name + " into a forceful kiss. Her initial resistance melts away, and she succumbs to your charm, moaning softly into your mouth.",
(upperfirst:$her_name) + "'s lips meet yours with a sly smirk, but as your tongue explores her mouth, her teasing gives way to genuine desire, her body yielding to your skill.",
"With a confident grin, you press " + $her_name + " against the wall, claiming her lips. Her bitchy facade crumbles, and she surrenders, letting you guide her into ecstasy.",
(upperfirst:$her_name) + "'s mouth is a challenge, her kiss a test. You rise to the occasion, and her teasing turns to pleasure, her body betraying her true longing.",
"You don't let " + $her_name + "'s attitude deter you, and your kiss is a bold declaration. Her body responds, her dominant nature giving way to raw sexual energy.",
(upperfirst:$her_name) + " starts with a playful bite, but you turn the tables, your mouth dominating hers, her teasing moans turning to sighs of pleasure.",
"With a knowing smile, you kiss " + $her_name + ", and she plays hard to get, but her body can't resist your touch, and she melts into your arms.",
(upperfirst:$her_name) + " tries to lead, but you take control, your kiss a masterful dance that leaves her breathless, her mischievous nature no match for your confidence.",
"You tame " + $her_name + "'s wild spirit with a kiss that speaks of passion and control. Her body responds, and you know you've won, her desire all yours.",
"You pull " + $her_name + " into a kiss that is all fire and dominance. Her feisty nature crumbles, and she gives in, her body aching for more of your touch.")
](else:)[
(twirl:
(upperfirst:$her_name) + " laughs at your awkward advance but lets you kiss her, her lips mocking yet inviting, her body a challenge you haven't yet conquered.",
"You try to kiss " + $her_name + ", but she's in control, her lips toying with yours, her body teasing but never yielding, leaving you frustrated and wanting.",
(upperfirst:$her_name) + "'s kiss is a game, her mouth playing with yours, her body always just out of reach, her laughter a taunt that leaves you unsatisfied.",
(upperfirst:$her_name) + " lets you kiss her, but her smirk says it all. She's in charge, and she knows it, her body a promise unfulfilled, her desire a weapon.",
"You pull " + $her_name + " close, but she turns the tables, her kiss a mockery, her body a tease, her moans a reminder that she's in control.",
(upperfirst:$her_name) + "'s lips meet yours, but it's all a game. She toys with you, her body a tantalizing mystery, her kiss a challenge you've yet to win.",
(upperfirst:$her_name) + " lets you fumble, her lips meeting yours with feigned interest, her body always just out of reach, her dominance unchallenged.",
"You try to take control, but " + $her_name + "'s kiss is a lesson in humility. She's in charge, and she knows it, her body a fortress, her desire a riddle.",
(upperfirst:$her_name) + "'s mouth is on yours, but her eyes are laughing. She teases you, her body a maze, her kisses a puzzle you can't solve.",
"You and " + $her_name + ", a battle of wills. Her lips challenge yours, her body a tantalizing promise, her laughter a reminder of who's really in charge.")
(dec:'her_arousal',1)
]
](else-if:$npc's traits contains "likes assertive")[
(if:$character's "masculinity" > 70)[
(twirl:
"You pull " + $her_name + " close, her soft lips meeting yours with a sigh of pleasure. Her breasts press against you, her body eager for your touch, her kiss pure womanly desire.",
(upperfirst:$her_name) + "'s kiss is a sultry dance, her lips exploring yours, her body molded to yours. The scent of her hair, the taste of her mouth, all pure femininity.",
"With a firm grip, you guide " + $her_name + "'s lips to yours, and she responds with a soft moan, her body surrendering, her femininity an intoxicating allure.",
(upperfirst:$her_name) + "'s mouth meets yours, her lips soft and eager. Her breath catches as you take control, her body a symphony of curves and warmth.",
"You kiss " + $her_name + ", and she's all woman, her lips parting, her body yielding. Her moans fill your ears, her scent your senses, her desire your fuel.",
(upperfirst:$her_name) + "'s lips are a sweet invitation, her body a landscape of femininity. You explore, you claim, her moans a testament to her desire.",
"With a knowing smile, you pull " + $her_name + " into a kiss that's all heat and hunger. Her body responds, her femininity a fire that only you can stoke.",
(upperfirst:$her_name) + "'s kiss is a promise, her body a temptation. You lead, and she follows, her moans soft, her desire tangible, her womanliness your reward.",
"You taste " + $her_name + "'s lips, and it's pure ecstasy. Her body, all curves and softness, presses against you, her femininity a siren's call you can't resist.",
(upperfirst:$her_name) + " melts into your kiss, her body a hot, eager response to your touch. Her moans, her scent, her very essence, all an intoxicating feminine allure.")
](else:)[
(twirl:
(upperfirst:$her_name) + "'s lips meet yours, her body a soft invitation. She waits for you to lead, her kiss eager but her eyes subtly asking for more.",
"You kiss " + $her_name + ", her lips yielding, her body pressing against you. She wants you to take control, her femininity a subtle plea, her desire a quiet call.",
(upperfirst:$her_name) + "'s kiss is gentle, her body a soft embrace. She wants more, her eyes asking, her lips hoping, her womanliness a quiet challenge.",
(upperfirst:$her_name) + " lets you kiss her, her body warm, her lips inviting. She's waiting, her femininity a soft lure, her desire a gentle whisper.",
"You pull " + $her_name + " close, her lips meeting yours with soft expectancy. She's eager but waiting, her body a soft question, her femininity a tender plea.",
(upperfirst:$her_name) + "'s kiss is warm, her body a subtle invitation. She wants you to lead, her eyes gently asking, her femininity a delicate tease.",
(upperfirst:$her_name) + "'s lips are soft, her body warm, her kiss a gentle invitation. She's waiting for you, her femininity a subtle hint, her desire a quiet longing.",
"You taste " + $her_name + "'s lips, and she's all softness, her body a gentle invitation. She wants you to take control, her femininity a delicate lure, her eyes a soft plea.",
(upperfirst:$her_name) + "'s kiss is sweet, her body a tender caress. She's waiting, her eyes gently asking, her womanliness a soft challenge.",
"You and " + $her_name + ", a dance of soft desire. Her lips, her body, her femininity, all waiting for you to lead, her soft moans a gentle encouragement.")
]
](else-if:$npc's "traits" contains "feminist")[
(if:(get_charm:) > 5)[
(twirl:
"You meet " + $her_name + "'s lips with a confidence that surprises her. Her need for control yields to your touch, and she moans softly, letting you lead the dance of desire.",
(upperfirst:$her_name) + "'s lips press firmly against yours, a challenge you gladly accept. Your kiss is a match of equals, but slowly, she lets you take control, her body aching for more.",
"With a smooth move, you draw " + $her_name + " close, your lips meeting hers in a battle for dominance. Her initial resistance fades, and she gives in, lost in the pleasure you provide.",
(upperfirst:$her_name) + " tries to guide the kiss, but your charm is irresistible. Her lips soften, her body yields, and she lets you take her to heights she never expected.",
"You take " + $her_name + "'s face in your hands, kissing her deeply. Her feminism is no barrier to your allure, and she melts, her body responding to your every touch.",
(upperfirst:$her_name) + "'s strong will meets its match in your kiss. She starts with fire, but you tame her passion, leading her into a realm of pleasure she can't resist.",
"You lock lips with " + $her_name + ", a passionate struggle where you emerge as the victor. Her body acknowledges your mastery, her moans a testament to your skill.",
(upperfirst:$her_name) + " kisses you with intent, but your charm breaks through, turning her control into submission. Her body is a symphony of pleasure under your touch.",
"You kiss " + $her_name + " with a passion that leaves her breathless. Her need for control fades, and she surrenders, letting you guide her into ecstasy.",
"You and " + $her_name + ", a dance of desire where you take the lead. Her feminism bows to your allure, her body a willing participant in the pleasure you create.")
](else:)[
(twirl:
"You meet " + $her_name + "'s lips with a confidence that surprises her. Her need for control yields to your touch, and she moans softly, letting you lead the dance of desire.",
(upperfirst:$her_name) + "'s lips press firmly against yours, a challenge you gladly accept. Your kiss is a match of equals, but slowly, she lets you take control, her body aching for more.",
"With a smooth move, you draw " + $her_name + " close, your lips meeting hers in a battle for dominance. Her initial resistance fades, and she gives in, lost in the pleasure you provide.",
(upperfirst:$her_name) + " tries to guide the kiss, but your charm is irresistible. Her lips soften, her body yields, and she lets you take her to heights she never expected.",
"You take " + $her_name + "'s face in your hands, kissing her deeply. Her feminism is no barrier to your allure, and she melts, her body responding to your every touch.",
(upperfirst:$her_name) + "'s strong will meets its match in your kiss. She starts with fire, but you tame her passion, leading her into a realm of pleasure she can't resist.",
"You lock lips with " + $her_name + ", a passionate struggle where you emerge as the victor. Her body acknowledges your mastery, her moans a testament to your skill.",
(upperfirst:$her_name) + " kisses you with intent, but your charm breaks through, turning her control into submission. Her body is a symphony of pleasure under your touch.",
"You kiss " + $her_name + " with a passion that leaves her breathless. Her need for control fades, and she surrenders, letting you guide her into ecstasy.",
"You and " + $her_name + ", a dance of desire where you take the lead. Her feminism bows to your allure, her body a willing participant in the pleasure you create.")
]
]
}(set:$sex_loop to 0)(display:"play sex loop")(unless:$events contains "breasts")[(set:$character's "arousal" to $character's "arousal" + 1)](set:$select to "sex")(display:"girl update npc image")(set:$events to $events + (a:"breasts"))(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/breasts.mp4' autoplay='' loop='' muted='' playsinline/>")(if:(count:$events, "breasts") < 2)[(set:$her_arousal to $her_arousal + (twist:1,2))(if:$her_arousal > 5)[(set:$her_arousal to $her_arousal + (twist:1,2))]](if:(count:$events, "breasts") > 4)[(dec:'her_arousal')(dec:'her_pleasure')](else:)[(inc:'her_arousal')](display:"npc screen update sex girl")(display:"refresh stats sex")
(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl breasts mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl breasts alexia")](else:)[
(if:(count:$events,"breasts") is 1)[(display:"girl breasts text")
](else:)[(if:$npc's "id" is "gabbie")[(if:(twist:1,2) is 1)[(twirl:"Her breasts are","Her tits are","They're") (twirl:"so big and soft.","so giant and jiggly.","so nice and big.","so big!","so big it's hard to believe they're natural.")](else:)[(twirl:"You almost can't believe these giant tits are natural!","They're so big!","You love playing with them...","Fuck, her breasts are so awesome...","Goddamn these tits are awesome...")]](else:)[(twirl:"She gasps a little as you play with her breasts.","She clearly likes when you touch her like this.","You love how her warm, natural breasts feel under your touch.","Her tits are so nice to play with.","Fuck these tits are awesome.","You roll her nipples around between your fingers.")]]]
(display:"girl fuck options"){
(twirl:"You grope Mariselle's massive tits, feeling the weight of her celebrity status in your hands - so much more satisfying than any of her records.",
"Squeezing Mariselle's huge tits is like gripping stardom - so soft, so firm, so fucking sexy, just like her voice.",
"Mariselle's big, fat tits jiggle under your touch, a lewd display more mesmerizing than any of her shows.",
"You sink your fingers into Mariselle's voluptuous tits, the sensation as sweet as her top hits.",
"Massaging Mariselle's huge tits is like playing an instrument, every squeeze, every grope building up a crescendo of lewd moans.",
"You revel in the feel of Mariselle's fat tits, the softness a stark contrast to the hardness of her fame.",
"Fingering Mariselle's pert nipples while squeezing her giant tits, you can't help but think of how many of her fans are dying to be in your place.",
"Harshly kneading Mariselle's tits, you marvel at how they jiggle obscenely, a sight more captivating than her onstage performances.",
"Cupping Mariselle's massive tits, you revel in their weight, each grope as thrilling as her raunchy songs.",
"Watching Mariselle's obscene tits bounce as you squeeze and knead them, you realize her body is as much a masterpiece as her hit songs.")
}{(if:$her_name is 0)[(set:$her_name to $npc's "name")]
(if:$npc's "id" is "gabbie")[
(twirl:
"You grab " + $her_name + "'s huge tits, and your fingers sink into the soft flesh.",
"Your hands dive into " + $her_name + "'s massive breasts, and you jiggle them roughly.",
"You pinch " + $her_name + "'s sand dollar sized areolas, and she moans.",
"" + $her_name + "'s big, soft tits fill your hands, and you can't help but squeeze.",
"You slap " + $her_name + "'s enormous breasts, and watch them bounce.",
"You fondle " + $her_name + "'s nipples until they harden under your touch.",
"" + $her_name + "'s massive tits feel perfect, and you explore every inch.",
"You knead " + $her_name + "'s soft, natural tits, and she urges you on.",
"You roughly grab " + $her_name + "'s tits, and the warmth fuels your desire.",
"Your thumbs circle " + $her_name + "'s huge areolas, and she shivers with pleasure.",
"You press " + $her_name + "'s big tits together, and admire the cleavage.",
"" + $her_name + "'s massive, floppy breasts give under your touch, and pleasure jolts through her.",
"You pull on " + $her_name + "'s huge nipples, and she gasps with pleasure.",
"Your hands play with " + $her_name + "'s giant tits, each touch a discovery.",
"You lose yourself in " + $her_name + "'s big, jiggly tits, and pleasure washes over you.")
]
(if:$npc's "id" is "kendra")[
(twirl:
(upperfirst:$her_name) + "'s G-cup tits yield to your touch, each squeeze sending a shiver through her body.",
"You feel a bead of sweat on her skin, the heat of passion palpable between you two.",
(upperfirst:$her_name) + "'s breathless moans fill your ears as your fingers find her nipple, teasing it into hardness.",
(upperfirst:$her_name) + "'s back arches as you pull her nipple, her eyes wide with pleasure, lost in sensation.",
"You feel her body quiver as your tongue explores the valley between her enormous tits, a gasp escaping her lips.",
(upperfirst:$her_name) + "'s big, floppy breasts feel soft and warm, each touch a new discovery, each sensation a wild delight.",
"The sight of her huge tits on her slim body drives you wild, her pleasure mirroring your own.",
(upperfirst:$her_name) + "'s body trembles as you slap her breasts, the sound mixing with her moans, a symphony of desire.",
"You pinch her nipple, her gasp a sweet reward, her body writhing under your skillful touch.",
(upperfirst:$her_name) + "'s skin tastes salty as you kiss her chest, her breath hot and fast, urging you on.",
"You press her big tits together, the soft flesh yielding, her pleasure a tangible, intoxicating thing.",
(upperfirst:$her_name) + "'s breasts bounce with each movement, a mesmerizing sight, a sensory feast.",
"You lose yourself in the feel of her under your hands, the world outside forgotten, the connection intense, erotic.")
]
(if:$npc's "id" is "harley")[
(twirl:
(upperfirst:$her_name) + "'s eyes lock with yours as you brush a thumb over her nipple, a soft moan escaping her lips.",
"You take a moment to appreciate the contrast of your skin tones.",
(upperfirst:$her_name) + "'s body quivers as your fingers gently trace the contour of her C-cup breasts.",
"The tropical birds outside provide a melodious backdrop to your intimacy, their song mingling with her soft breaths.",
(upperfirst:$her_name) + "'s heartbeat quickens as you gently squeeze her breast, her eyes filled with longing.",
"Her soft moans fill the room as your lips find her nipple, the heat of the moment palpable.",
(upperfirst:$her_name) + "'s hand reaches to guide you, the touch of her warm, supple skin sending shivers down your spine.",
"The aroma of her perfume fills your senses, a heady reminder of the passion that's unfolding.",
(upperfirst:$her_name) + " gasps as your teeth nibble at her, her body arching towards you, begging for more.",
"The faint rustle of palm leaves outside adds to the ambience, a gentle breeze drifting through the open window.",
(upperfirst:$her_name) + "'s laughter is a sweet melody as you playfully jiggle her breasts, her enjoyment genuine and infectious.",
"You feel a drop of sweat trickle down her chest, following its path with your tongue, tasting the saltiness of her desire.",
(upperfirst:$her_name) + "'s soft sigh fills your ears as you explore her body, every touch a journey.",
"The gentle glow of the bedside lamp casts a warm hue, highlighting the curves of her body.",
(upperfirst:$her_name) + "'s fingers tangle in your hair, a silent plea.",
"You lose yourself in the texture of her skin, the sensation of her under your hands, the world outside forgotten.")
]
(if:$npc's "id" is "leah")[
(if:$character's "race" is "black")[
(twirl:
"You bury your face between " + $her_name + "'s exquisite D-cup breasts, feeling the softness against your skin, her moans filling your ears.",
"As you take " + $her_name + "'s nipple into your mouth, she shudders with pleasure, the contrast between your dark skin and her pale softness electrifying.",
"You alternate between " + $her_name + "'s nipples, sucking, nibbling, teasing, her body writhing beneath you, her pleasure a melody of moans.",
"You're lost in " + $her_name + "'s body: her soft, natural breasts, the smell of her skin, the taste of her nipples.",
"She arches her back as you suck on her nipple, your hands caressing her soft breasts, her body alive with pleasure, the connection raw and real.",
"You pull " + $her_name + " closer, your mouth on her breasts, your hands exploring her softness, the sensations primal, intimate, extraordinary.",
"Her moans grow louder as you play with her breasts.",
"You can't get enough of " + $her_name + "'s soft, D-cup breasts, your big hands exploring, her moans echoing, the moment intense, erotic, unforgettable.",
"Her lithe body is a feast of sensations, her soft breasts irresistible, your hands and mouth exploring, her pleasure mirrored in her gorgeous eyes.",
"You lose yourself in " + $her_name + "'s breasts, their softness, their scent, their taste, her moans a symphony of pleasure, the moment pure, hot, wild.",
"She shivers as you suck on her nipple, your hands all over her beautiful breasts, the sensation electric, the connection deep, immediate, undeniable.",
"The way " + $her_name + "'s soft breasts feel in your big hands is mind-blowing, each touch sending waves of pleasure through her body, her moans your reward.",
"Your mouth, your hands, your body – all are focused on " + $her_name + "'s soft, D-cup breasts, her pleasure palpable, the moment intense, real, and utterly erotic.")
](else:)[
(if:$npc's "id" is "leah")[
(twirl:
(upperfirst:$her_name) + " giggles as your lips press to her nipple, the tickle of your stubble contrasting with the soft flesh.",
"You marvel at the soft, natural texture as you take her D-cup breast into your hand, giving it a gentle squeeze.",
(upperfirst:$her_name) + " moans as your tongue circles her nipple, a droplet of sweat rolling down her chest.",
"You feel the weight of her exquisite softness as you lift her breast, lost in the sensation, as she lies on the bed grinning.",
(upperfirst:$her_name) + "'s pale skin glows in the dim room, her breast filling your palm, her heart pounding beneath.",
"The tropical evening birds sing outside as you nibble her, every sound a backdrop to the intimacy you share.",
(upperfirst:$her_name) + " gasps, a jolt of pleasure as your thumb brushes her nipple, her body responding instantly.",
"A bead of sweat trickles down between her breasts, your tongue following its path, tasting her salty skin.",
(upperfirst:$her_name) + "'s breasts jiggle with your touch, the sensation delightful, her laughter a sultry melody.",
"You feel her nipple harden under your touch, her body arching, her eyes locking into yours with lustful promise.",
(upperfirst:$her_name) + "'s giggle turns into a moan as you flick her nipple, her body squirming under your careful attention.",
"Your lips explore her softness, a hint of her sweet perfume mingling with the heat of the tropical night.",
(upperfirst:$her_name) + " sighs as your mouth leaves a trail of kisses down her chest, every touch a spark of pleasure.",
"You feel her chest rise and fall with each breath, the heat, the connection, the pure sensation filling the room.",
(upperfirst:$her_name) + "'s hand reaches to guide you, the sensation of her skin a reminder of the passionate journey ahead.",
"The room fills with the sounds of your playfulness, her breasts a landscape of pleasure, the night outside a whisper.")
]
]
]
}(set:$sex_loop to "licking loop " + $npc's "id" + " " + (text:$img))(display:"play sex loop")(set:$events to $events + (a:"lick"))(set:$select to "sex")(display:"girl update npc image")(set:$current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/licking.mp4")
(set:$quicktime_params to (dm:
"difficulty","medium",
"skill check","girl pleasure",
"skill check difficulty",50,
"victory","She liked that!",
"defeat","Too hard...",
"points to win",30,
"points",10,
"sequence",(a:"left","right","left","right","up","down"),
"quicktime timer",1,
"result passage","girl lick extra result",
"backdrop",$current_img
))
(if:(twist:1,2) is 1)[(set:$quicktime_params's "sequence" to $quicktime_params's "sequence" + (a:"none","left","none","right","none"))]
(if:(twist:1,2) is 1)[(set:$quicktime_params's "sequence" to $quicktime_params's "sequence" + (a:"none","up","none","down","none"))]
(if:(twist:1,2) is 1)[(set:$quicktime_params's "sequence" to $quicktime_params's "sequence" + (a:"up","up","down","down","none"))]
(if:(twist:1,2) is 1)[(set:$quicktime_params's "sequence" to $quicktime_params's "sequence" + (a:"left","right","left","right","left"))]
($cs:"quicktime initialize"){
(if:(count:$events,$position) is 0)[
(display:"describe your cock")
(if:$position is "riding")[(twirl:"Mariselle lowers her plump ass onto $your_cock, her wet pussy lips parting to welcome your massive member.",
"She guides your thick shaft to her dripping entrance, her voluptuous body descending onto your throbbing erection as her heavy tits sway.",
"Mariselle's juicy pussy engulfs $your_cock as she grinds her fat ass onto your shaft, her tits bouncing in rhythm.",
"Her wet pussy lips grip $your_cock as she slowly impales herself on your shaft, her large breasts heaving with anticipation.",
"Mariselle's pussy greedily swallows $your_cock as she lowers her massive ass onto you, her tits shaking with each movement.",
"With a sinful moan, Mariselle lowers her voluptuous body onto your throbbing shaft, her huge tits jiggling with pleasure.",
"Her tight pussy wraps around $your_cock like a glove, her massive ass descending onto your lap amidst breathy moans.",
"Mariselle's wet folds envelop $your_cock as she grinds her big ass onto your rigid member, her thick tits bouncing.",
"Her wet pussy descends onto $your_cock, Mariselle's fat ass bouncing as she takes you to the hilt, her huge breasts enticing you.",
"Mariselle sinks onto your thick cock, her juicy pussy stretching deliciously around you as her large breasts sway with pleasure.")(nl:2)"(twirl:"Ooh papi, your cock feels so big inside me! I love it!",
"Mmm, you fill me up so perfectly...",
"I can feel every inch of your massive cock!",
"Your cock feels so fucking amazing inside me!",
"Fuck, your big dick feels incredible. I'm going to ride you so hard!",
"Damn, your cock hits just the right spots...",
"Your thick cock feels even bigger inside me, papi...",
"Fuck, I can't get enough of this massive cock!",
"Your big, hard cock feels so fucking good, papi! I'm going to ride the cum out of you!",
"Your giant cock is all I ever dreamed of! I'm going to rock your world!")"](else-if:$position is "doggy")[
(twirl:"You enter Mariselle from behind, your massive cock splitting her tight pussy as you take in the sight of her massive, jiggling ass.",
"Thrusting your meaty shaft into Mariselle's eager pussy, you hold on to her wide hips, anchoring yourself as you watch her fat ass bounce with each thrust.",
"Your large cock slides into Mariselle's tight cunt, her plump ass shaking with the force of your intrusion, her pornstar-like moans encouraging you.",
"You force your thick member into Mariselle's snug pussy, her plump ass cheeks clapping against you with each hard thrust.",
"Shoving your rigid cock into Mariselle's wet folds, her moans ring out loud and clear as her huge ass quivers under your powerful thrusts.",
"Your big cock sinks into Mariselle's dripping pussy, your balls slapping against her clapping ass, her screams of pleasure echoing in the room.")(nl:2)
"(twirl:"Fuck me like your dirty bitch, papi! Pound this fat ass!",
"I love doggystyle! Slam into me, harder!",
"Take me like a fucking animal, ram that cock into me!",
"Make this fat ass bounce with your huge cock, papi!",
"Can you feel how wet I am for your cock? Don't hold back, fuck me hard!",
"Your big cock feels fucking incredible from behind! Make me scream!",
"Your dick feels so fucking good in my tight pussy, papi! Pound me harder!",
"Damn, your massive cock feels even better from behind! Fuck me, papi, fuck me!",
"I love it when you fuck me rough and hard. Make me your bitch, papi!",
"Your big cock is pounding me so good! Don't stop, fuck me harder!")"
](else:)[(twirl:"Your massive cock slides into Mariselle's eager pussy, spreading her wet folds as she squeals in pleasure.",
"Cramming $your_cock into Mariselle's tight pussy, she lets out a high note, matching the intensity of your thrust.",
"Mariselle's wet pussy greedily swallows $your_cock, her cries echoing in the room as you stretch her to her limit.",
"Your thick shaft plunges into Mariselle's dripping cunt, eliciting a throaty moan from the famous singer.",
"$your_cock dives into Mariselle's sloppy hole, her pussy walls greedily welcoming your girth as she squeals in ecstasy.",
"Thrusting $your_cock in Mariselle's waiting pussy, her moans pitch higher, the room resonating with carnal satisfaction.",
"Driving $your_cock into Mariselle's cock-hungry pussy, she screams out in pleasure as you stretch her juicy cunt.",
"Your huge cock breaks into Mariselle's snug pussy, her insides greedily accommodating your massive size as she squeals in delight.",
"Plunging $your_cock into Mariselle's wet folds, her melodious moans fill the air, matching her explicit lyrics.",
"Pounding your massive shaft into Mariselle's dripping cunt, her pleasure-filled screams sound like a sinful concert.","Your massive cock spears into Mariselle's wet pussy, her cries of pleasure growing debauched and desperate as you powerfully plunge into her.",
"Thrusting your huge shaft into Mariselle's soaked cunt, the obscene squelching noises mix with her porn-like moans, her eyes glazed over with intense pleasure.",
"Your thick cock pistons in and out of Mariselle's drooling pussy, her tits bouncing wildly, like oversized pancakes sliding around on her chest.",
"Diving balls-deep into Mariselle's quivering pussy, she screams out in pure ecstasy, the sight of your big cock spreading her making her eyes roll back.",
"Forcefully pushing your wide cock into Mariselle's slick cunt, her throaty moans and bouncing tits make for a sinful symphony of pure debauchery.",
"Fucking Mariselle missionary-style, your heavy balls slap against her ass as her fat tits jiggle with each of your powerful thrusts.",
"As you grind your massive cock into Mariselle's tight pussy, her body writhes under you, her fat tits flopping around as she moans like a bitch in heat.",
"Pressing your thick shaft deep into Mariselle's hungry pussy, her eyes meet yours, the lust and desire in them matching the obscene moans tearing from her throat.",
"Your fat cock ruthlessly pounds into Mariselle's eager pussy, her screams morphing into depraved moans, her massive tits quaking with every thrust.",
"Ramming your huge cock into Mariselle's wet, greedy cunt, her fat tits jiggle obscenely as her eyes roll back in pleasure.")(nl:2)"(twirl:"Oh, FUCK, papi! Your cock feels so fucking big.",
"God, your massive cock is stretching my pussy. Keep going, guapo...",
"Santo cielo! You're so big, I can feel you in my belly.",
"That cock... so fucking big... fills me completely... feels so GOOD!",
"Fuck, your cock is a monster... and my pussy loves it! More, papi!",
"Your fat cock is making me crazy!",
"Oh fuck, your huge cock hits all the right notes.",
"Damn, your cock feels so fucking amazing. Best I've ever had!",
"Oh Dios mío! Your big cock is making me see stars...",
"Your massive cock is a hit, papi! Pound me HARD!")"]]
}(if:$events's last is $position)[(print:"<video disableRemotePlayback src='img/" + (text:$current_img) + "' autoplay='' loop='' muted='' playsinline/>")](else:)[(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/insert " + (text:$position) + ".mp4' autoplay='' loop='' muted='' playsinline/>")]
{(unless:$events's last is $position)[(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl fuck penetration mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl fuck penetration alexia")](else:)[(if:(count:$events,"riding","missionary","doggy") is 0)[(twirl:(upperfirst:$her_name),"She") (twirl:"moans","groans","whimpers") (twirl:"in pleasure","loudly","pleasurably","softly") (twirl:"when ","as ","as ")
(if:$position is "riding")[
(twirl:"she lowers herself onto","she sits down on","she impales herself on","she lowers her pussy onto","she starts riding") (twirl:"your dick","your cock","your cock").
](else:)[
(display:"describe your cock")
(twirl:"you slide $your_cock into her pussy","you slowly insert yourself into her folds","you insert $your_cock","you finally insert $your_cock","you put $your_cock inside her","$your_cock enters her","$your_cock enters her pussy").
]]]]}(set:$stage to 3)
<div class='options'>(if:$position is "riding")[(set:$next to "girl sex")(link:"Just enjoy it")[(set:$type to (twirl:"normal","she rough"))(display:"change screen")](if:$energy >= 1)[(link:"Edge ⚡")[(dec:'energy')(set:$type to (twirl:"edge","she rough edge"))(display:"change screen")]]](else:)[(set:$next to "girl sex")(link:"Slow")[(set:$type to "slow")(display:"change screen")](if:$energy >= 1)[(link:"Normal ⚡")[(dec:'energy')(set:$type to "normal")(display:"change screen")]](if:$energy >= 2)[(link:"Rough ⚡⚡")[(dec:'energy',2)(set:$type to "rough")(display:"change screen")]](if:$energy >= 1)[(link:"Edge ⚡")[(dec:'energy')(set:$type to "edge")(display:"change screen")]]]</div>{
(if:$her_pleasure >= $her_pleasure_max)[
(link:(twirl:"She orgasms","She cums"))[($cs:"girl she cums")]
](else:)[
(if:$position is "bj")[
(if:(checkdm:$npc,"id","is","alexia"))[(link:"Cum (mouth)")[(set:$type to "mouth")($cs:"girl cum")]]
(link:"Cum (face)")[(set:$type to "facial")($cs:"girl cum")]
(link:"Cum (tits)")[(set:$type to "cum tits")($cs:"girl cum")]
](else:)[
(unless:$npc's "id" is any of (a:"kendra","alexia"))[(link:"Cum outside (body)")[(set:$type to "pull out")($cs:"girl cum")]]
(if:(checkdm:$npc,"id","is","alexia"))[(link:"Cum (mouth)")[(set:$type to "mouth")($cs:"girl cum")]]
(link:"Cum outside (face)")[(set:$type to "facial")($cs:"girl cum")]
(unless:$npc's "id" is "harley")[(link:"Cum outside (tits)")[(set:$type to "cum tits")($cs:"girl cum")]]
(link:"Cum inside")[(set:$type to "creampie")($cs:"girl cum")]
]
(link:(twirl:"Hold it in!","Resist the urge!","Try not to cum!"))[($cs:"girl cum edge sound")]
]
}{
<!-- Just a trampoline to display sound -->
(set:$sex_loop to (text:$position) + " loop " + $npc's "id" + " " + (text:$img))(display:"play sex loop")
(display:"girl cum edge")
}{
(set:$sex_loop to (text:$position) + " loop " + $npc's "id" + " " + (text:$img))(display:"play sex loop")(if:$type is "she rough edge")[
(set:$quicktime_params to (dm:
"objective","Keep your pleasure under control!",
"skill check","orgasm control",
"skill check difficulty",75,
"timing message","but not faster than she rides you.",
"result passage","girl sex edge result",
"backdrop",$current_img,
"sex loop",$sex_loop,
"time",25,
"rhythm",500,
"interrupt passage","girl sex edge interrupt",
"type","resist cum",
"interrupts", 2
))
](else:)[
(set:$quicktime_params to (dm:
"objective","Keep your pleasure under control!",
"skill check","orgasm control",
"skill check difficulty",50,
"timing message","but not faster than she rides you.",
"result passage","girl sex edge result",
"backdrop",$current_img,
"sex loop",$sex_loop,
"time",25,
"rhythm",600,
"interrupt passage","girl sex edge interrupt",
"type","resist cum",
"interrupts", 1
))]($cs:"dont cum initialize")}(set:$sex_loop to (text:$position) + " loop " + $npc's "id" + " " + (text:$img))(display:"play sex loop")(set:$quicktime_params to (dm:
"difficulty","medium",
"skill check","active sex",
"skill check difficulty",(twist:50,80),
"victory","She liked that!",
"defeat","Too hard...",
"points to win",30,
"points",10,
"sequence",(a:"up","down","up","down","left","right"),
"quicktime timer",1,
"result passage","girl sex rough result",
"backdrop",$current_img
))($cs:"quicktime initialize")(set:$sex_loop to (text:$position) + " loop " + $npc's "id" + " " + (text:$img))(display:"play sex loop")(print:"<video disableRemotePlayback src='img/" + $current_img + "' autoplay='' loop='' muted='' playsinline/>")
{(if:(win:))[(display:"girl sex her pleasure gain")(display:"girl sex you pleasure gain edge")(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl sex edge result mariselle")](else:)[(if:$position is "riding")[(if:(twist:1,2) is 1)[(twirl:"It takes all your concentration","It's so difficult","You do your best") (twirl:"to resist her pleasurable assault","to keep from cumming","to suppress your orgasm","to suppress the pleasure","to keep your orgasm at bay").](else:)[
(twirl:"She bounces mercilessly on your dick,","She slaps her ass down around your cock,","She rides you gleefully,") (twirl:"but you concentrate on resisting the pleasure","forcing you to clench your teeth and resist the pleasure","but you manage to suppress your orgasm","but you keep your orgasm at bay").
]](else:)[(if:(twist:1,2) is 1)[(twirl:"It takes all your concentration","It's so difficult","You do your best") (twirl:"to resist cumming in her tight, warm pussy","to keep from cumming","to suppress your orgasm","to suppress the pleasure","to keep your orgasm at bay").](else:)[
(twirl:"Her pussy feels incredible,","This feels SO good,","It's difficult,") (twirl:"but you concentrate to resist the pleasure","forcing you to clench your teeth and resist the pleasure","but you manage to suppress your orgasm","but you keep your orgasm at bay").]
]]](else:)[(display:"girl sex her pleasure gain")(if:$type is "she rough edge")[(display:"girl sex you pleasure gain rough")](else:)[(display:"girl sex you pleasure gain")](if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl sex edge result mariselle")](else:)[(twirl:"The pleasure is too much to resist.","It's too difficult to suppress your pleasure.","This feels good. Too good.","It's going to be really difficult not to cum.","This is going to be tougher than you thought.","Fuck, this feels way too good.","Goddamn this feels incredible.")] (display:"girl sex you close")](set:$character's "arousal" to $character's "arousal" + 1)(display:"refresh stats sex")}
(display:"girl fuck options"){
(if:$position is "riding")[(twirl: "Mariselle's plump ass bounces obscenely as she rides you, her thick hips working overtime, grinding her slick cunt onto your massive cock. You're struggling to keep your orgasm at bay, your hands gripping the sheets as you try to control your building climax.",
"You groan, feeling her gushing wetness envelop your throbbing cock. She's driving you to the brink, the way her fat ass slaps against your thighs and her rhythm matching the throbbing of your cock.",
"Your vision blurs as Mariselle rides you in frenzy, her massive tits swaying wildly above your face. You feel her pussy walls clenching around your thick cock, the swirling sensation pushing your endurance to its limit.",
"Gritting your teeth, you thrust upwards, meeting Mariselle's downward thrusts, your hands gripping her bouncing ass as she rides your cock shamelessly. The room reverberates with the sound of skin slapping skin and her lustful moans.",
"Mariselle throws her head back in ecstasy as her hips slam down on you, her voluptuous body writhing in pleasure. The sensation of her hot, wet pussy sliding up and down your cock is making it increasingly hard to hold off your impending orgasm.",
"Each heavy bounce of Mariselle’s voluptuous body pushes you to the brink, her cunt engulfing your cock with each descent. Desperate to stave off your climax, you grab her hips, trying to control her savage pace, your knuckles white with effort.",
"You're on the razor-edge of your climax, the need to cum is becoming a searing agony. Yet, you don't want this to end, don't want to miss a single moment of Mariselle riding you so passionately. The maddening friction of her wet pussy against your cock is driving you crazy.",
"You moan helplessly as Mariselle bounces on you, her luscious body slamming down onto yours, making the bed squeak under the onslaught. Your cock throbs with every plunge, the need to spill your load mounting dangerously.",
"Mariselle's wild, orgasmic screams fill the room as she rides you relentlessly. The sight of her fat ass bouncing with each thrust, the sound of her wetness squelching around your cock - it's all becoming too much, the tension in your balls reaching a fever pitch.",
"Your breath hitches as Mariselle grinds down onto you, angling her hips just right to hit that sweet spot deep inside her. You grit your teeth, mustering all your self-control to hold your orgasm as you grip the sheets beneath you.")(if:(count:$events,"orgasm") < 2)[(nl:2)"(twirl: "Mmm, you're throbbing inside me, papi... Better hold it off, I'm not done with you yet...",
"Ay, $your_name, don't you dare cum. Save that thick load for later, 'cause this pussy's not done riding your cock...",
"Feeling close, guapo? But I'm having too much fun bouncing on this big dick of yours. You better not cum yet...",
"Struggling, are we? This fat ass slamming on your dick... it's too much, isn't it? Hold it, papi, hold it...",
"I love seeing you like this, $your_name - desperate to cum, but holding it just for me. That's right, papi... you better not cum until I say so...",
"Can't take it anymore? The way this pussy's eating that cock... But you're not allowed to cum yet...",
"Ooh, are you close? No, no, no…not yet, my dirty boy. Mariselle's not done riding you...",
"$your_name... mmm... don't you dare cum yet. Not until I've had my fill of that big, hard cock...",
"Oh, you like it when I grind against you like this? Feels good, right? But don't cum yet...",
"You look like you're about to burst, papi... But remember, you're not cumming until this sexy Latina is completely satisfied...")"]](else-if:$position is "doggy")[(twirl:"The sight of Mariselle's jiggling ass against your thighs is a sight straight out of a dirty movie, her flesh slapping erotically with each thrust.",
"Her fat ass is bouncing back onto your rigid cock as you pound her in doggy style, the slick sounds of your coupling filling the room, her sloppy pussy lapping up your cock.",
"Each robust smack against her ass sends ripples through her caramel skin, the sight nearly sending you over the edge.",
"The once prim and proper bed is rocking under the force of your thrusts, the creaking a rhythmic accompaniment to Mariselle's breathless moans.",
"You're buried balls-deep in her sopping pussy, her warm, tight walls repeatedly contracting around you, like a velvet vice milking your throbbing member.","Her hot juices drench your crotch and thighs, trickling down onto the already soaked sheets adding to the heady, musky scent filling the room.","The sight of your cock disappearing into her tight, soaking cunt is enough to make you clench your teeth, the inevitable orgasm threatening to explode.","The rhythmic slap-slap-slap of your flesh against her bountiful ass and the squelch of her wet, well-fucked pussy is just too fucking good, the lurid symphony of debauchery causing your balls to tighten.","You watch as her thick, black hair cascades down her back, following the curve of her spine to where your bodies connect in a lewd, primordial dance.","Her pussy squeezes you relentlessly, the unbearable pleasure of being inside Mariselle threatening to tip you over the edge.")(if:(count:$events,"orgasm") < 1)[(nl:2)"(twirl: "Mmm, papi, you'd better not cum before me. I want to feel those big balls of yours twitching as I cream all over your cock.","Oh, you better hold back, mi amor, I plan on cumming all over your cock before you get to fill me up.", "Hold off, guapo. I want you to feel my pussy clenching around your cock when I cum. Can you do that for me?", "Don't you dare cum, papi. I want to feel you deep inside me when I cum.", "I know you want to cum, papi, but you better wait until I've had my fill.", "Don't you dare spill your cum, guapo, not until I've cum all over your massive cock.", "Resist it, papi. I want your big, fat cock throbbing inside me when I cum.", "Hold back, guapo. Think you can handle it while I fuck myself on your cock?", "Not so fast, papi. I want your cock deep inside me when I squirt all over you." , "You better not cum, papi. Not until this tight pussy of mine has milked your cock dry.")"]](else:)[(twirl: "Your hands grip the sheets on either side of her, pulling the fabric tight as you thrust into Mariselle's slick heat, your balls slapping against her ass with each deep penetration.","Her large breasts bounce with every pound, the nipples hard and aching for attention, providing a tantalizing sight that threatens to push you over the edge.", "Her legs, strong and smooth, wrap around your hips, urging you to push deeper into her welcoming warmth, the intimate pressure coaxing your control.", "The bed creaks and groans under the intensity of your bodies entwined in this carnal dance, the rhythm syncopating with your pounding heart, the beats escalating your need to release.", "Her brown eyes, usually filled with mischief, are now glazed with raw desire, focused solely on you, making every inch of your skin buzz with electric anticipation.","Your balls tighten, your cock throbs inside her, every flutter of her walls and her mewling whimpers threatening to pull your orgasm from you.", "The taste of her lipstick, a lingering remnant from your earlier frantic kisses, mingles with the sweat pooling around your lips, amplifying the heady sensory overload.","Her nails rake down your back, scratching patterns of possession, her body arching up to meet your every thrust, pushing your self-control to its limits.", "The scent of her arousal, strong and intoxicating, fills your nostrils, mixed with the musk of your exertion, a heady mixture that makes your cock twitch and your resolve waver.","Her wet pussy gripping and clenching around your cock feels too damn good, her slick walls seemingly milking you for all you're worth, making it an excruciating battle to hold back your release.")(if:(count:$events,"orgasm") < 1)[(nl:2)"(twirl:"You better not cum yet, papi. I want to feel that big cock make me cum first.", "Keep it together, $your_name, if you make a mess before I do, I'll make sure you pay for it.","Not so fast, guapo. I want to enjoy every inch of your cock before you burst.","Your cock feels so good inside me, but you'd better hold it in. I want to cum before you do.",
"Te aguantas, papi. I want your cock throbbing inside me when I cum.", "I know it's hard, guapo, with my tight pussy squeezing your cock, but you've got to resist. I want to cum first.", "I'm going to cum on your dick, $your_name, but you'd better not shoot your load before I do.", "Promise me you'll be a good boy and keep that cock hard inside me until I cum.", "Don't you dare cum, papi. I want that big cock twitching inside me when I orgasm.",
"If you make a mess before I'm done, I'll make you lick me clean, guapo.")"]]
}{
(set: $your_pleasure_gain to
(cond:
$character's "arousal" > 8, 4,
$character's "arousal" > 4, 3,
2
)
)
}{
(set: $your_pleasure_gain to
(cond:
$character's "arousal" > 8, 2,
1
)
)
}{
(set:$her_pleasure_gain to 1)
(unless:$position is "lick")[
(set:$pleasure_factors to (a:"cock"))
](else:)[
(set:$pleasure_factors to (a:"lick"))
]
(if:$npc's "likes" contains $position)[
(inc:"her_pleasure_gain")
(set:$pleasure_factors to it + (a:"likes position"))
]
(if:$her_arousal > 7)[
(set:$pleasure_factors to it + (a:"arousal"))
(inc:"her_pleasure_gain")
]
($passage_tags:"girl_sex_her_pleasure")
}{
(display:"calculate cock pleasure multiplier")
(set:$her_pleasure_gain to (ceil:$her_pleasure_gain * $cock_factor))
(display:"npc screen update sex girl")(display:"girl sex register her pleasure")
}{
(display:"girl sex her pleasure core calc")
(display:"girl sex her pleasure finish calc")
}{
(display:"girl sex her pleasure core calc")
(if:$npc's "likes" contains "gentle sex")[
(inc:"her_pleasure_gain")
](else-if:$npc's "dislikes" contains "gentle sex")[
(dec:"her_pleasure_gain", 1)
]
(display:"girl sex her pleasure finish calc")
}{
(display:"girl sex her pleasure core calc")
(if: $npc's "likes" contains "rough sex")[
(set:$pleasure_factors to it + (a:"rough sex"))
(inc:"her_pleasure_gain", 2)
](else:)[
(set:$pleasure_factors to it + (a:"no rough sex"))
(dec:"her_pleasure_gain", 1)
]
(display:"girl sex her pleasure finish calc")
}{
(set:$cock_factor to (cond:
$npc's "traits" contains "size queen",
2 * (log2: ((cock:"length") + (cock:"girth"))) / (log2: 20),
$npc's "traits" contains "tight",
-0.00556 * (pow: ((cock:"length") + (cock:"girth") - 12), 2) + 1.6,
1.65 - (pow: ((cock:"length") + (cock:"girth") - 16), 2) * 0.005)
)
}(set:$sex_loop to 0)(display:"play sex loop")(set:$se to "orgasm " + $npc's "id" + " " + (text:(twist:1,2)))(display:"play sound")(if:$events's "last" is "breasts")[(set:$position to "missionary")](set:$events to $events + (a:"orgasm"))($pic:"npc/girls/" + (text:"id" of $npc) + "/sex/orgasm/" + (text:(cond:$position is "lick","missionary",$position)) + ".jpg")(if:(count:$events, "orgasm") is 1)[(set:$her_pleasure to (floor:$her_pleasure_max/(twist:2,3)))(set:$her_arousal to (max:0,$her_arousal - 1))](else:)[(set:$her_pleasure to (floor:$her_pleasure_max/(twist:3,4)))(set:$her_arousal to (max:0,$her_arousal - 2))](display:"npc screen update sex girl"){($passage_tags:"girl_she_cums")}(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl she cums mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl she cums alexia")](else:)[(if:(count:$events,"orgasm") is 1)[(if:(twist:1,2) is 1)[(if:(twist:1,2) is 1)[(upperfirst:$her_name)'s](else:)[Her] (twirl:"legs shake","body convulses","eyes cross","eyes roll back","legs quiver and spasm","head rolls back") (twirl:"as she has a mind-blowing orgasm","as she cums, hard","as she has a powerful orgasm","as she cums").](else:)[(if:(twist:1,2) is 1)[(upperfirst:$her_name)](else:)[She] (twirl:"moans loudly as she cums","whimpers as she cums","cums, hard","has a powerful orgasm","moans and clutches you as she cums","moans, cumming").]](else-if:(count:$events,"orgasm") is 2)[(if:(twist:1,2) is 1)[(twirl:"And just like that,","She can't take it -","It's too much for her...","Wow...") (twirl:$her_name,"she") (twirl:"cums again","has another passionate orgasm","experiences another soul-shaking orgasm","shudders with a second breathtaking orgasm","orgasms again","cums again","cums a second time","just came again","just had her second orgasm").](else:)[(twirl:"She",(upperfirst:$her_name)) (twirl:"moans","squeals","whimpers") (twirl:"amidst her second orgasm","in the throes of her second orgasm","as she orgasms again","as she cums again","as she cums a second time").]](else-if:(count:$events,"orgasm") is 3)[(twirl:"She cums a 3rd time.","That was her third orgasm!","She came THREE times! Nice.","She has her third orgasm.","She experiences her blissful 3rd orgasm.")](else-if:(count:$events,"orgasm") > 3)[(set:_orgasms to (count:$events,"orgasm"))(twirl:"She has cum ","She has orgasmed ") (print:_orgasms) (twirl:"times now!","times.") (twirl:"Someone needs to hand you a prize.","You are a god!","She's not gonna be able to think straight later...","Your dick is her whole world now.")]]
(display:"girl fuck options")(display:"describe your cock")(if:(count:$events,"orgasm") is 1)[(if:$position is "riding")[Mariselle's voluptuous body convulses as she rides your thick cock, climaxing with a force that leaves her breathless. As her slick pussy clamps down around you, you feel a rush of her hot juices, pouring out around your shaft and spraying onto your chest. "Oh, papi!" she screams, quaking atop you. "Your cock... it's making me... oh, Dios mío!" Her dark eyes roll back, crossing as the sensation overtakes her.
Her back arches, pushing her huge tits towards you as she bounces on your throbbing member.
"I'm cumming, $your_name!" she cries, her words stumbling into a garbled mix of Spanish and English. The famous singer shudders on top of you, gushing her sweet nectar everywhere.
Sweat coats her bronzed skin, making her shine under the muted lights. Her massive melons quiver with each spasmodic jerk of her body, a tantalizing sight that has your cock twitching inside her. Seeing Mariselle, an icon of sex and music, undone by pleasure atop you is like watching a once-in-a-lifetime performance.
Mariselle's climax is a spectacle - raw, intense, and unabashedly debauched. Her screams echo in the room, punctuated by lusty Spanish curses interspersed with $your_name. Her wet cunt slurps around your cock, drenching you in a sticky cocktail of hot pussy-syrup, and every powerful squirt feels like a standing ovation. It's a sight to behold, a feeling to relive, as you make Mariselle, the sultry siren of Summer City, cum her brains out on your huge cock.](else-if:$position is "doggy")[The fat spheres of Mariselle's plump ass jiggle with every powerful thrust of your thick cock. You're plowing her from behind in doggystyle, making her squeals with ecstasy fill the room.
"Oh Dios mío, papi!" she cries out, "Your huge cock... it feels so FUCKING GOOD!"
Her fingers claw at the plush sheets below, her knuckles white as she braces herself for the relentless pounding. Her dark, lustrous mane flies chaotically with each smack of your hips against her full, round buttocks.
"Oh papi... keep...fucking...ME!" she gasps out between grunts, bucking her hips back into you.
Suddenly, Mariselle's curvy body convulses as she reaches her peak, her tight pussy clutching your throbbing cock in a velvety vice.
"I'm cumming, $your_name! Oh fuck, I'm cumming!" she screams, her Spanish accent intensifying her erotic exclamations. You feel the quivering walls of her cunt milking your cock, her slick, hot juices seeping out, making your thrusts even more debauched.
You watch as her body spasms in orgasmic delight, her colossal tits smushed beneath her on the bed, her eyes crossing in utter pleasure. Having the notoriously sexy Mariselle cumming on your cock, with her ass in the air and tits slapping against the sheets - it's an image straight out of the best porn flicks, a sight that inflates your ego and makes your cock even harder if that was possible. The sight of Mariselle, the most coveted sex symbol of Summer City, surrendering to your massive cock is intoxicating, a sensory overload that's bound to fuel your wildest fantasies for many nights to come.](else-if:$position is "missionary")[There's an unearthly glow on Mariselle's caramel skin as she lies beneath you, her legs opened wide as you're buried in her. You piston in and out of her, your cock slick with her arousal, her hips meeting your thrusts in a rhythm older than time. As your powerful body looms over her, she gazes up at you, her dark eyes filled with a heady mix of lust and reverence.
Your cock plunges into her sloppy folds, making her massive tits flop wildly. Her nipples stiffen with every thrust, the bouncing orbs a hypnotic sight. You reach down to squeeze them, making her gasp out in delight. Her full lips part in a breathless moan, and you lean down to capture their softness, tasting the mix of lipstick and arousal.
"Oh... $your_name... I'm gonna... I'm gonna..." Her voice trails off into a whimper, her fingers digging into your back. The tight heat of her pussy churns around your cock, her moans growing in volume and frequency.
Suddenly, her eyes lock into yours, unblinking. An intense orgasm rips through her, her nails digging into your skin.
"I'm cumming! Oh, fuck, $your_name, I'm cumming!" she cries out, her voice pitched high with ecstasy.
Her pussy clenches around your cock, milking you for all you're worth. Her body judders beneath you, a wave of her sweet nectar splashing against your groins. It's an intimate, passionate moment as you watch Mariselle - the city's sex icon, shattering into a thousand pieces under your touch, her gasping for breath, eyes locked with yours.
At that moment, the world becomes a blur. All that matters is Mariselle, the woman beneath you, her body shaking with aftershocks, her eyes never leaving yours. It's an image that burns itself into your memory - the sight of the sultry singer in the throes of pure, orgasmic bliss, witnessed and facilitated by you and your massive cock.](else:)[Your head is nestled between Mariselle's thick thighs, your tongue marauding her juicy folds. She's a symphony of moans and gasps, her voluptuous body writhing with pleasure under your oral assault.
"Oh Dios mío, papi! Your mouth..." Her voice trembles, lost in a sea of pleasure.
Her hands fly down and grip your hair, guiding your head like a maestro leading a performance. You press your tongue deeper into her, tasting her sticky nectar, your senses drowning in the tangy sweetness.
Her thighs tighten around your head, her back arching off the bedsheets. "I'm... I'm gonna..."
Before she can finish the sentence, a thunderous orgasm hits Mariselle. Her pussy clenches, her juices drenching your chin and neck. Her plump thighs quake around your head, trapping you in the intoxicating scent of her climax.
"Oh, $your_name!" She screams out your name, her body shaking uncontrollably. Her hands in your hair tighten, the pain a delicious contrast to the sweet taste of her orgasm.
Tasting Mariselle's first orgasm right from the source, it's an experience that will linger on your taste buds and echo in your memories, a sensory delight that only amplifies the unadulterated pleasure of the sultry singer cumming against your talented tongue.]](else-if:(count:$events,"orgasm") is 2)[(if:"lick" is $position)["Mmm, papi… that tongue of yours…" Her thick, Spanish accent is heavy with desire, her words tumbling out in breathy gasps.
Her legs, still quivering from her previous climax, tighten around your head as another impending orgasm builds within her. The erotic sight of her large tits heaving with each gasping breath, her hands desperately fisting the sheets, is a testament to your oral prowess.
Suddenly, her entire body quakes, a tidal wave of pleasure crashing over her. “Oh Dios mío, $your_name! I’m cumming again… I’m fucking cumming again!”
The words are barely out of her mouth when her orgasm hits, her voluptuous form convulsing with pleasure. You feel her thighs clamping down around your head as her hot, sweet nectar gushes over your face, her second orgasm even more potent than the first.
A torrent of Spanish profanities and your name tumble from her lips as her body thrashes and quakes, her pussy squirting in a mind-melting climax. The taste and scent of her, the sounds of her pleasure - it's a sensory overload, an intimate moment of debauchery that's a testament to your ability to make Mariselle, the Summer City’s most lusted-after woman, cum her brains out on your hungry tongue for the second time.](else:)["Mierda... again... not... oh, Dios!" Mariselle's words dissolve into a string of incoherent mumbles as she starts riding the wave of her second orgasm.
Your huge cock is still buried balls-deep inside her, stretching her sloppy cunt to its limits.
"Oh fuck... oh fuck... $your_name!" The sultry singer chokes out your name, her cunt clamping down on your engorged member.
Her second orgasm hits her even harder than the first. Her body convulses, her pussy squirting around your shaft, drenching the sheets even further. Her eyes cross, her mind clearly turning into mush at the intensity of the pleasure.
"Your... your cock... Dios mío... you... I... " Mariselle's sentences break off into a high pitched squeal, her body spasming uncontrollably around you.]](else-if:(count:$events,"orgasm") is 3)[(if:$position is "lick")[Mariselle's third climax hits her like a freight train, her screams filling the room. Her fingers tangle in your hair, pulling you closer as her pussy gushes.
"I'm... I'm...!"
Her ensuing Spanish words dissolve into sensual gibberish as she cums on your tongue.
"$Your_name...!" is all she manages to gasp before her words are cut off by a strangled cry of pleasure. Her body convulses, a fresh wave of her sweet, sticky syrup painting your face.
The famous singer is reduced to primal moans and incoherent exclamations of pleasure - a testament to your relentless oral assault.](else:)[The room melts into a blur as Mariselle rides the wave of her third orgasm. Your massive cock buried inside her twitches as she clamps down around you.
"I'm... I'm cumming, $your_name!" The words tumble from her lips in a breathless rush. Her body convulses, spasming in rhythm with her climax.
Her juices coat your cock, drenching the sheets beneath you. Her moans of pleasure echo in your ears, the sound intoxicating.
Her brain seems like it's on the verge of breaking, lost in a haze of pure debauchery as she cums on your cock for the third time.]](else-if:(count:$events,"orgasm") is 4)[Mariselle's body seizes, her heavy breasts heaving as she throws her head back in a silent scream.
"Dios... again... papi!" she moans, her pussy clamping down on your cock, hotter and tighter than ever.
Her fourth orgasm washes over her in a wave of hot, sticky ecstasy, her cunt gushing more of her syrupy juices all over your cock and the soaked bed sheets. Sweat-slick and panting, she looks heavenly in her gasping disarray, her tousled hair sticking to her dewy forehead.](else-if:(count:$events,"orgasm") is 5)["Five... fucking five..." Mariselle trails off into a garbled chorus of Spanish profanities, her large tits quiver as a fifth orgasm crashes through her.
Your cock is drenched in her slick warmth once again, her muscles fluttering spasmodically around your girth. Her heavy breathing fills the room, intertwined with the smell of sex, sweat, and delirious satisfaction as she rides you relentlessly, grinding deeper onto your soaked member.](else-if:(count:$events,"orgasm") is 6)[As Mariselle's sixth climax hits, her ravished body goes wild atop your massive cock. Her eyes dart around unfocused, her mind clearly spiraling into pleasure-induced insanity.
"Seis, siete... que...oh... Dios," she pants out, her words blending into lust-filled nonsensical mumblings. Her tight, soaked cunt clenches around your throbbing cock, her hefty tits bouncing crazily with every quake of her orgasm. Her pussy gushes again, painting your abdomen with her rich, sticky essence. ](else-if:(count:$events,"orgasm") is 7)["Dios... Dios... I can't...Maldita sea... again..." Mariselle's frenzied whispers fill your ears, her voice a raspy echo of moans and gasps. With a squeal that ricochets off the room's walls, she hits her seventh climax, her body writhing like a tamed beast on your monstrous cock. The dull thumps of her hips slapping against yours turn into a sloppy symphony of your intertwined bodies, all enflamed with raw, carnal desire. ](else-if:(count:$events,"orgasm") is 8)[Mariselle's body goes rigid, an animalistic growl ripping from her throat as yet another climax rakes through her. "Ocho... oh... no... qué... oh $your_name!" she babbles out, her Spanish tongue blurring into a mixture of aroused whimpers and moans. Her shiny black hair is plastered to her sweat-slick skin, sticking to the curves of her flushed face.](else:)[With every subsequent wave of pleasure that hits her, Mariselle's words become even more garbled, a mix of your name, lust-laden Spanish, and wordless cries. Her eyes roll back, her opulent body going slack on your thick cock every now and then, only to jerk back to life with renewed energy.
Her massive breasts bounce wildly, her nipples pebbled, sweat trickling down her cleavage. Through the ensuing orgasms, her pussy keeps clamping around you like a vice, her juices sloppily coating your girth and soaking the already wet sheets beneath you.
The sight of Mariselle, the city's sultry siren, so utterly lost in pleasure, mumbling delirious nonsenses as she cums over and over again on your cock proves you haven't just fucked her. You’ve conquered her, owned her in the most debauched way possible, reducing the city's sex symbol into your pleasure-drunk bitch, writhing and moaning beneath you. Such debauchery is a sight you'll never forget, a testament of the voluptuous vixen’s descent into pleasure-induced insanity under your relentless pounding. ]{(set:$energy to (min:$energy + 1,(max:3,(get_fitness:))))}{(set:$next to "girl bj")(set:$type to "normal")(replace:?options)[(link:"Just enjoy it")[(display:"change screen")](link:"Edge")[(set:$type to "edge")(display:"change screen")]]}(set:$sex_loop to "bj loop " + $npc's "id" + " " + (text:$img))(display:"play sex loop")(display:"npc screen update sex girl")(set:$events to $events + (a:"bj edge " + $result))(if:$stage is 1)[(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/bj 1.mp4' autoplay='' loop='' muted='' playsinline/>")](else:)[(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/bj 2.mp4' autoplay='' loop='' muted='' playsinline/>")]
(if:(win:))[(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl bj edge result mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl bj edge result alexia")](else:)[(if:(count:$events,"bj edge pass") is 1)[(if:(twist:1,2) is 1)[(display:"girl sex you pleasure gain edge")(twirl:"Your fists clench reflexively.","Her mouth feels incredible.","You groan as her tongue circles your cock.","This feels *too* damn good.","You moan as she blows you.","She's really good at this.") ](twirl:"It takes all your discipline to stave off the urge to cum.","It's so hard to keep the pleasure at bay, but you manage...","It's going to be hard to delay cumming...","This is going to be tough.","This is gonna be tough.","You do your best to resist the urge to cum.")]]](else:)[(if:(count:$events,"bj edge fail") is 1)[(display:"girl sex you pleasure gain")(inc:'your_pleasure_gain')(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl bj edge result mariselle")](if:(checkdm:$npc,"id","is","alexia"))["(twirl:
"Aw, can't hold it in, stepbro? I love seeing you all worked up.",
"Mmmm, can't handle it, stepbro? My mouth too good for your cock?",
"Look at you, so close just from my mouth. Pathetic~",
"I love how desperate you are. Don't blow your load too soon~",
"Don't you dare cum without my permission, stepbro.",
"Your cock is throbbing so much... does it need a little break? Too bad~",
"Oh my gosh, listen to you moaning like a little bitch.",
"You're close, aren't you? I can feel you throbbing in my mouth.",
"Fuck, you taste so good. Gimme more of that precum, big boy.",
"Mmm, I love hearing you groan. It means I'm driving you crazy.",
"Don't cum yet, stepbro. I want to see you squirm a little longer.",
"Almost there? I'll just have to suck harder, won't I?")"](else:)[(if:(twist:1,2) is 1)[(twirl:"She smiles (with her mouth full of cock)","She giggles","She grins","She giggles","She chuckles") (twirl:"as she feels your cock twitch","as you moan uncontrollably","as you grimace from trying to resist the pleasure","- she knows how hard she's making it for you","as you groan").](else:)[(twirl:"You feel your cock twitch.","Your cock twitches.","Unstoppable pleasure pulses out from your dick.","It's too difficult to resist the pleasure.","Fuck!!! It feels too good.","Shit! This feels way too good.","God... this feels way too incredible.","Fuck! She's too good at this.")]]]](set:$character's "arousal" to $character's "arousal" + 1)(display:"refresh stats sex")(display:"girl sex you speak")(set:$her_pleasure_gain to 0)(display:"girl sex register her pleasure")(display:"girl fuck options"){
(if:(win:))[(twirl:"With Mariselle's mouth working magic on your cock, you grit your teeth, trying to suppress the rising pleasure.",
"Mariselle's talented tongue swirling around your cock is intense, and you squeeze your eyes shut, focusing on anything but the divine pleasure.",
"The feeling of her lips sliding along your shaft is incredible, and you fight with every ounce of willpower to hold back your impending climax.",
"Mariselle's hot mouth is a haven of pure bliss, and you clench your fists, struggling against the overwhelming need to cum.",
"Your body tenses as Mariselle's tongue flicks against your sensitive head, the pleasure so intense you have to bite down on your lip to keep from cumming.",
"You feel your cock throb in Mariselle's mouth, and you take a deep breath, mustering all the restraint you can possibly muster.")(nl:2)"(twirl:"Brace yourself, guapo. This show is far from over.",
"Don't you dare cum, mi amor. I'm not done using that cock.",
"You're doing well, guapo. But can you resist when I do this?",
"Your control surprises me, guapo. Let's see if you can keep that up.",
"You're a tease, just like me. Let's see how long you can hold it.",
"Hmm, not bad. But let's see you resist this.",
"Mmm, you're holding up quite well. Ready for the next level, papi?")"](else:)[(twirl:"The lewd sounds of Mariselle's mouth tightening around your throbbing dick send shivers down your spine, and you strain to hold back the urge to cum.",
"The wet warmth of her mouth slurping on your cock, her tongue teasing the tip, is driving you to the edge, and you grit your teeth, desperately trying not to burst.",
"Mariselle's talented lips slide along your saliva-slick cock, her tongue working wonders, and you dig your nails into your palm, fighting off the need to release.",
"Her hot mouth and agile tongue work your stiff dick, her cheek hollowing with each bob. You choke out a groan, struggling not to explode.",
"The sloppy slurping sounds of Mariselle's lewd blowjob echo in the room, the delicious pressure of her lips coaxing a shudder from you.","Mariselle's mouth feels like a fantastic vice around your throbbing dick. Despite your best efforts, pleasure threatens to shatter your restraint.",
"The way her hot, wet mouth slurps around your cock is just too much. Despite your determination, you can feel a hot rush of pleasure threatening to overtake you.",
"Her talented mouth feels so fucking good that you're losing your grip on your climax. Every bob of her head, every swirl of her tongue, and your control slips a little more.",
"Her lips working like magic on your cock, making lewd, wet sounds while her tongue explores every inch of you - and damn, you're shaking, fighting the urge to cum.",
"The sight of Mariselle's plump lips wrapped insanely tight around your throbbing cock, along with her sloppy noises, is driving you crazy with pleasure - you're teetering on the edge.")(nl:2)
"(twirl:"Are you struggling, guapo? Good. That means I'm doing my job.",
"Look at you, squirming. I bet you're dying to cum.",
"Are you about to cum, papi? Not yet, the fun has just begun.",
"Having trouble holding back, are you? Good... I like a challenge.",
"Can't take the heat, guapo? Let's see if you can handle more.",
"Struggling already, mi amor? And here I was just getting started...",
"Mmm, I love it when you squirm. Can't handle my mouth, papi?",
"Struggling to hold back? I love it. Let me push you over the edge.",
"Oh, papi, it looks like you're about to explode. Feeling too good? You'd better not cum yet!",
"Is my hot, wet mouth too much for you, guapo? You're struggling, but you'd better not blow that load!",
"You're squirming so much, mi amor. Is my blowjob too much for you? Hold it back!",
"You're so close, aren't you? I can feel your cock twitching in my mouth. You'd better not cum unless I say so!",
"My warm mouth making you want to cum, papi? Well, you better hold it back... at least for now.",
"Aww, you're shaking, guapo. You'd better hold back that cum, or you'll ruin the fun.",
"Oh, papi, you look like you're about to burst! Don't you dare cum yet, the party has just started.",
"Struggling, are we? Mmm, I love it when men can't control themselves. But for now, keep it in, mi amor.",
"Is my wet mouth too much for you, papi? Trying to hold back that cum? I love the challenge.",
"I love seeing you squirm, guapo. Remember, you better not spill that cum yet, or else.",
"Mmm, your cock is throbbing so hard in my mouth, papi. Feels like you're about to cum. You wouldn’t ruin my fun now, would you?",
"Your cock tastes so good that I want to savor it more. You’re not allowed to cum yet, mi vida. Keep it in for me, okay?")"]
}(set:$next to "girl lick")(replace:?options)[(link:"Normal")[(set:$type to "normal")(display:"change screen")](link:"Extra effort")[(set:$type to "extra")(display:"change screen")]](set:$position to "lick"){
(if:(checkdm:$npc,"id","is","mariselle"))[(twirl:"As she grinds her soaking pussy against your face, you lose yourself in her, driven wild by her mewls and gasps.",
"Her essence tastes like a heady cocktail, exotic and wild, with undertones of vanilla musk that's uniquely Mariselle. As she grinds her drenched pussy against your face, her breathy moans echo around the room, each one a lust-filled symphony that spurs you on.",
"The taste of Mariselle is in a league of its own - a tantalizing blend of sweet nectar and tangy lust, with an overlay of intoxicating musk that's distinctly her. As she bucks her sopping wet pussy against your face, her hips move in a primal rhythm, her lewd moans filling the air.",
"Mariselle's pussy is undeniably delicious. Her taste - a heady mix of honeyed dew and feminine musk, is enough to make you drunk on her. As she grinds her sopping pussy against your face, the wet, slick sounds mix with her breathy moans, creating a lewd orchestra of lust.",
"Tasting Mariselle is like diving into an intoxicating tropical cocktail - sweet, tangy, and so damn addictive. As she grinds her wet, eager pussy against your face, her body writhes and undulates, her moans of pleasure echoing off the walls.")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl lick taste description alexia")](else:)[
(print:(twirl:"Her pussy tastes slightly metallic, a unique tang that's inherently her. As you lick her, you feel her legs quiver, her hand gripping your hair, tugging slightly.","Your tongue dips into her and you find her flavor to be mildly sweet, like a ripe fruit that's fresh from a tree. Her thighs tremble gently on either side of your head.","The taste of her is subtly bitter yet oddly addicting. Her fingers lace into your hair, pulling you closer, seeking more.","Her essence is a mix of musky, salty, a little sour. It's natural, earthy. Her hands clutch at the sheets next to her, her hips subtly grinding against your tongue.","She tastes like skin, a little salty, hinting at the aromatic scent of her arousal. Her thighs lock around your head, keeping you in place as her body writhes.","The taste of her folds is almost neutral, with a slight tartness. You can hear her whimpering softly, a clear sign of her growing pleasure.","Her taste is complex, a mixture of sweet and salty, and fundamentally female. As you explore her, her body tenses, her soft moans encouraging you to continue.","Going down on her is like diving into the ocean - a little salty, intoxicating, and infinite. You hear her gasp softly, her hands gripping your hair tighter.","The taste of her is a raw intimacy - the tangy muskiness, the salty slickness. Your tongue explores her folds, the warmth of her pussy engulfing you. Her gentle moans crescendo into fervent whimpers.","Your mouth is flush against her, tongue swiping across her sensitive bud, leaving trails of pleasure. She tastes sweet, with a hint of bitter - it's captivating. Her legs twitch sporadically, and the strangled gasps escaping her lips are infectious.","The taste of her is like the ocean after a storm - salty, wild, and compelling. As you gently suck her clit, her thighs quiver, squeezing around your head, and her moans fill the air.","Your tongue paints slow circles around her clit, causing her to arch her back and gasp. She tastes fresh, a hint of sweetness overlaid with the musky, sexy scent of her arousal.","Her taste is intoxicating - a hint of saltiness, overlaid with a subtle sweetness. As your tongue teases her sensitive nub, she lets out a string of breathy moans, each one spurring you on.","Your mouth descends on her, and you're hit with her raw, primal taste - bitter and salty, but so incredibly her. Her hips buck against your face in response, and her mewls of pleasure are the sweetest symphony.","Going down on her is an experience like no other. Her taste - tangy, fresh, intrinsically feminine. Every whimper she makes sends a thrill down your spine, encouraging your ministrations.","Navigating her spices, your tongue makes its way across her soaking folds. She tastes purely feminine - a mix of sweet and salty. Her breathy moans and the way she squirms beneath you make you all the more eager."))]
}(set:$position to "lick")(set:$sex_loop to "licking loop " + $npc's "id" + " " + (text:$img))(display:"play sex loop")(print:"<video disableRemotePlayback src='img/npc/girls/" + $npc's "id" + "/sex/" + (text:$img) + "/licking.mp4' autoplay='' loop='' muted='' playsinline/>")(if:(win:))[(if:(count:$events,"lick") is 1)[(display:"girl lick taste description")](display:"girl sex her pleasure gain extra")](else:)[(if:(count:$events,"lick") is 1)[(twirl:"You're not really an expert at this.","You do your best, but she doesn't seem that impressed.","She doesn't seem to be enjoying your efforts.","It's tricky.")(nl:2)(twirl:"You clumsily brush your tongue across her folds. You're trying to find her clit, but it's a bit like trying to find a needle in a haystack.","You go in full force, your tongue clumsily lapping at her sensitive bud, like a dog going for a treat.","You're doing the random scribbling licks you've seen in movies, but it doesn't seem to be doing much for her.","You've heard of spelling the alphabet with your tongue - going from A, to B, to C... But, she doesn't seem to be into this at all.","Instead of focusing on the spots she seems to enjoy, you're trying to cover the entire area. It's not working.","You're too rough, your tongue is going like a jackhammer. She needs something much lighter and more sensual.","You try to use your fingers, pressing down on the roof of her vagina but you're doing it all wrong. It's less of a gentle massage and more of a clumsy tap.","You do short abrupt licks as you go down on her, it's sloppy and not very effective.","You've heard anal play could heighten the sensation, but your attempt at placing a finger in the wrong hole just make her tense up.","You go at her like she's a piece of ripe fruit, trying to get all the flavor out. It's too much, too hard, and not gentle enough for her.","You're trying to incorporate your fingers, but instead of a nice rhythmic massage - it's more a random poke-fest.","You taste her and there's a bitter flavor that you don't enjoy. It's not bad, just different from what you're used to.","Sucking her clit is supposed to work, but you're just making slurping sounds - more funny than sexy. She needs more consistent pressure.","Your strokes are too fast and erratic - not the kind of rhythmic pressure she needs to get off.","You thought you were doing a good job, but your technique is all wrong. Your tongue is everywhere but the right spots.")](nl:2)(display:"girl sex her pleasure gain")](display:"girl sex her pleasure text")(display:"girl fuck options"){
(set: $her_pleasure_gain to 0)
(set: $pleasure_factors to (a: "lick"))
(if: $npc's "likes" contains $position)[(set: $her_pleasure_gain to it + 1)]
(if:$her_arousal > 7)[(set:$pleasure_factors to it + (a:"arousal"))(inc:'her_pleasure_gain',2)]
(set: $her_pleasure_gain to (cond:
$her_arousal > 7, $her_pleasure_gain + 3,
$her_arousal > 4, $her_pleasure_gain + 2,
$her_arousal > 2, $her_pleasure_gain + 1,
$her_pleasure_gain))
(set: $cock_factor to (0.5 + (($pleasuring_girls_talent's level - 1) * 0.167)))
(set: $her_pleasure_gain to (ceil: $her_pleasure_gain * $cock_factor))
(display:"girl sex register her pleasure")
(display: "npc screen update sex girl")
}{(set:$bj to "false")(if:$stage > 0 and $stage < 3 and not ($events contains "bj"))[(if:(twist:1,2) is 1)[(set:$bj to "true")]](else-if:$stage > 0 and $stage < 3 and (count:$events,"bj") < 2)[(if:(twist:1,4) is 1)[(set:$bj to "true")]](else-if:(twist:1,10) is 1 and not ($events's last is "insert"))[(set:$bj to "true")](if:$bj is "true" and $character's "cock" is "away")[(set:$bj to "strip")]}{
(set: $sex_loop to "bj loop " + $npc's "id" + " " + (text: $img))
(display: "play sex loop")
(set: $position to "bj")
(set: $select to "bj_" + $img)
(display: "girl update npc image")
(if: $stage is 1)[
(set: $current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text: $img) + "/bj 1.mp4")
(print: "<video disableRemotePlayback src='img/" + (text: $current_img) + "' autoplay='' loop='' muted='' playsinline/>")
](else:)[
(set: $current_img to "npc/girls/" + $npc's "id" + "/sex/" + (text: $img) + "/bj 2.mp4")
(print: "<video disableRemotePlayback src='img/" + (text: $current_img) + "' autoplay='' loop='' muted='' playsinline/>")
]
(if:$events contains "bj")[(if:$events's last is "bj" or $events's last is "bj edge pass" or $events's last is "bj edge fail")[(if:(twist:1,2) is 1)[(display:"girl sex you speak")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl sex alexia bj taunt")](else:)[(twirl:(upperfirst:$her_name),"She","She") (if:(twist:1,2) is 1)[(twirl:"continues","keeps") (twirl:"suckling on","sucking","servicing","pleasuring","gently blowing","blowing") your (twirl:"cock","dick","shaft").](else:)[(twirl:"keeps going","continues","continues the blowjob","isn't done yet").]]](else:)[(twirl:(upperfirst:$her_name),"She","She") (if:(twist:1,2) is 1)[(twirl:"goes back to","returns to","once again begins") (twirl:"suckling on","sucking","servicing","pleasuring","gently blowing","blowing") your (twirl:"cock","dick","shaft").](else:)[(twirl:"goes back to blowing you","gets your cock back in her mouth","goes back to servicing you with her mouth","gives you a blowjob again").]]](else:)[(set:$character's "arousal" to $character's "arousal" + 1)(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl bj mariselle text")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl bj alexia text")](else:)[(if:(twist:1,2) is 1)[(twirl:(upperfirst:$her_name),"She") (twirl:"smiles and wraps her lips around your cock","wraps her lips around your cock","starts blowing you","starts giving you a blowjob","puts her warm mouth around your cock","starts performing fellatio").](else:)["(twirl:"I want to blow you,","I want to give you a blowjob,","Let me give you a blowjob,","Time to get your dick sucked,","I want to... suck on it,","Can I suck on it?")" she says(if:(twist:1,2) is 1)[, (twirl:"sweetly","innocently","cheerfully","submissively")](if:(twist:1,2) is 1)[, (twirl:"as she starts going down on you","and she gets to work","and begins").](else:)[.] ] ]](set:$events to $events + (a:"bj"))[]<text|<div class='options'>|options>[(set:$next to "girl bj")(set:$type to "normal")(link:"Just enjoy it")[(display:"regain energy")(display:"girl sex you pleasure gain")(replace:?text)[(set:$her_pleasure_gain to 0)(display:"girl sex register her pleasure")](replace:?options)[(display:"girl fuck options")]](if:$energy >= 1)[(link:"Edge ⚡")[(dec:'energy')(display:"refresh stats sex")(set:$type to "edge")(display:"change screen")]]]</div>}{
"(twirl:"Mmm, guapo, it's time for me to sing a little song on that big dick of yours.",
"Your mic looks so tempting, let me give it a taste, mi amor.",
"I bet you've been dreaming about a famous mouth on that cock. Well, dreams do come true, guapo.",
"I can't resist a big, fat cock. Ready to feel my hot, wet mouth, baby?",
"Let's see if your dick tastes as good as it looks, guapo.",
"My fans love my mouth... and soon, you will too.",
"My lips are craving for a taste of your cock, papi. Ready to feed me?",
"Your cock is just begging for my attention. Who am I to deny it?",
"I've been wanting to wrap my talented lips around that impressive dick. Time to give you a performance you won't forget.",
"I can't wait to make sweet, dirty music on your cock. Ready for the best blow job of your life, guapo?")"(nl:2)Mariselle (twirl:"slowly envelops your cock with her luscious lips",
"takes your shaft into her mouth, her eyes gleaming with desire",
"begins to suck on your rod with practiced skill",
"slides her mouth over your cock, her eyes sparkling",
"engulfs your throbbing member with her talented lips",
"wraps her hot mouth around your cock, eyes dark with lust",
"suck on your fat cock with an eager moan",
"devours your dick, her eyes alight with sinful pleasure",
"takes your member between her lips, eyes shining with anticipation",
"feasts on your rod, her eyes smoky with arousal").
(nl:2)
*(twirl:"Fuck... I still can't believe MARISELLE is sucking me off...","Oh my GOD. I can't believe this is really happening...",
"Is this real? Or am I dreaming?",
"Summer City's fucking idol has her lips around my cock - just unreal...",
"$your_name you sly dog... you've struck it rich...",
"I can't believe this. Mariselle, the queen of the stage, is worshipping my cock!",
"Fuck, I won't get over this. Mariselle is going down on me!",
"Who'd have thought? Mariselle, the city's sweetheart, bobbing on my cock...",
"Damn, I'll remember this forever - Mariselle, blowing me...",
"This is unreal! My cock in MARISELLE's mouth...",
"Holy fuck, I still can't wrap my head around this - Mariselle savoring my dick like her favorite candy!",
"God, this is insane! The famous Mariselle is giving ME a blowjob!")*
}(set:$npc's "img" to $npc's "img dir" + $select + ".jpg")(display:"npc screen update sex girl"){
(set:$npc's "img" to $npc's "img dir" + $select + ".jpg")
}{
(set:$sex_loop to (text:$position) + " loop " + $npc's "id" + " " + (text:$img))
(display:"play sex loop")
(print:"<video disableRemotePlayback src='img/" + $current_img + "' autoplay='' loop='' muted='' playsinline/>")
(if:(win:))[
(display:"girl sex you pleasure gain")
(display:"girl sex her pleasure gain rough")
(if:$position is "doggy")[
(if:(checkdm:$npc,"id","is","mariselle"))[
(display:"girl sex mariselle rough doggy text")
](else-if:(checkdm:$npc,"id","is","alexia"))[
(display:"girl sex alexia rough doggy text")
](else:)[
(if:(twist:1,2) is 1)[
You (twirl:"ravish her","pound her","fuck her") (twirl:"roughly","vigorously","energetically","rhythmically")(if:(twist:1,2) is 1)[ from behind].
](else:)[
(twirl:"You give her ass a playful spank","You grab a handful of her jiggling ass","You smack her ass","You tug her hair","You call her your little slut")
(twirl:"as you pound her","as your ravish her","as you fuck her")(if:(twist:1,2) is 1)[ (twirl:"vigorously","roughly")].
]
(display:"girl sex her pleasure text")
]
](else:)[
(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl sex mariselle rough missionary text")](else:)[
(twirl:"Her tits jiggle and bounce","She moans","She looks up into your eyes","She looks up at you","Her breasts bounce and jiggle")
(twirl:"as you","while you") (twirl:"ravish her","pound her","fuck her")
(if:(twist:1,2) is 1)[ (twirl:"roughly","vigorously","energetically","rhythmically","hard")].
(display:"girl sex her pleasure text")
]
]
<div class='options'>
(set:$gain_base to 1)
(if:$combo > 4)[(set:$gain_base to 2)]
(if:$combo > 9)[(set:$gain_base to 3)]
(display:"fitness gain xp")
</div>
](else:)[
(if:(twist:1,2) is 1)[
(twirl:"You struggle","You fail","You don't manage","It's difficult") (twirl:"to get a proper rhythm going","to fuck her consistently at a fast pace","to really ravage her properly","to dick her down consistently at such a fast pace").
](else:)[
(twirl:"She doesn't seem that impressed.","You need to work on your rhythm.","You start sweating a little too much.","Your positioning is a bit awkward.")
(display:"girl sex you pleasure gain rough")
(display:"girl sex her pleasure gain")
]
]
(display:"girl fuck options")
}{(display:"describe your cock")
(twirl:"Slamming into Mariselle's tight, wet pussy from behind, you grip her wide hips, anchoring yourself for the deep, punishing thrusts. Her plush ass slaps against you with each penetration, sending ripples through her voluptous body.",
"Taking Mariselle from behind, you revel in the tightness of her pussy, the warmth engulfing $your_cock. Her massive ass claps back against you, the sound echoing in the room as you pound into her, lost in the sinful pleasure of claiming a famous singer.",
"You fuck Mariselle in doggystyle, her thick, round ass bouncing back against you as you plow into her tight pussy. Gripping her wide hips, you lean over her, your hot breath puffing against her neck, the knowledge of dominating a famous diva adding to the thrill.",
"Mariselle's round ass jiggles and slaps against you as you fuck her hard and fast. You can see her eyes roll back in ecstasy as her tight pussy clamps down on your cock, her moans of pleasure echoing through the room - a sweet reminder that you are pounding a famous star.",
"Sinking $your_cock into Mariselle's tight pussy, you can feel her body tremble beneath you. Gripping her wide hips for leverage, you pound her unrelentingly, her yelps of pleasure bouncing off the walls, a testament to the raw, obscene pleasure of fucking a famous singer.")
}{(display:"describe your cock")
(twirl:"As you thrust into her, her massive tits jiggle and bounce. You sink your fingers into those juicy mounds, sucking on her nipples while you pound her hard, driving both of you to the peak of obscene pleasure.",
"Thrusting into Mariselle's tight pussy, you watch her beautiful face twist in ecstasy, her eyes crossing as your cock fills her to the hilt. With one hand on her waist for leverage, you use the other to tease and squeeze her massive tits, their bouncy jiggles adding to the lewdness of the spectacle.",
"As you fuck Mariselle in missionary position, you can't help but be mesmerized by her massive tits bouncing in rhythm with your thrusts. Her tight, wet pussy clamps down on $your_cock, milking it with every deep thrust. Leaning forward, you claim her nipples with your mouth, sucking and nibbling them while pounding her into the mattress.",
"In missionary, you give Mariselle every inch of $your_cock, watching her eyes roll back and her beautiful face contort in pleasure. Her legs are spread wide, giving you full access to drill her tight pussy. As your thrusts get wilder, her massive tits bounce with each penetration, their jiggling a sight to behold.",
"You fuck Mariselle with a ferocity that leaves her gasping. Her massive tits bounce and jiggle with each rough thrust, her beautiful face scrunched in lewd pleasure. Leaning over her, you hungrily suck on her nipples, the faint taste of her sweat mixed with the spicy scent of her perfume driving you wild.")
}{(unless:$her_pleasure_gain is 0 and $your_pleasure_gain is 0)[<div class='options'>
(if:$her_pleasure_gain > 0)[
($show_tooltip:
[<div class='options'><mark>(print:(upperfirst:$her_name))'s pleasure increases! (str-repeated:(round:$her_pleasure_gain),"💦")</mark></div>],
[{
(if:$pleasure_factors contains "lick")[Oral skill modifier: (print:(ceil:$cock_factor * 100))% 👅 (Skill level: (print:$pleasuring_girls_talent's level)/10)<br/>]
(if:$pleasure_factors contains "cock")[Cock modifier: (print:(ceil:$cock_factor * 100))% 🍆<br/>]
(if:$pleasure_factors contains "likes position")[She likes this position!<br/>]
(if:$pleasure_factors contains "rough sex")[She likes rough sex!<br/>]
(if:$pleasure_factors contains "no rough sex")[She doesn't seem to enjoy rough sex...<br/>]
(if:$pleasure_factors contains "arousal")[High arousal bonus!<br/>]
}]
)(set:$her_pleasure to ($clamp:$her_pleasure + $her_pleasure_gain,0,$her_pleasure_max))(set:$her_pleasure_gain to 0)](if:$your_pleasure_gain > 0)[<div class='options'><mark>Your pleasure increases(print:(cond:$your_pleasure_gain < 1," slightly",""))! (str-repeated:(round:$your_pleasure_gain),"🍾")</mark></div>(set:$your_pleasure to ($clamp:$your_pleasure + $your_pleasure_gain,0,$your_pleasure_max))(set:$your_pleasure_gain to 0)]</div>]
(display:"npc screen update sex girl")(display:"refresh stats sex")
}{
(set:$blackjack_params to (dm:
"challenge","Try not to cum!",
"skill check","orgasm control",
"skill check difficulty",($clamp:35 + (20 * (count:$events,"resist cum attempt")),10,100),
"near victory","dynamic",
"near defeat","dynamic",
"difficulty","medium",
"npc","enabled",
"victory","Good job!",
"defeat","Shit...",
"points to win",10,
"points",5,
"type","dont cum",
"result passage","girl cum edge result",
"backdrop",$current_img
))
(set:$events to $events + (a:"resist cum attempt"))
(set:$blackjack_params's "bad icon" to "🍾")
(set:$blackjack_params's "good icon" to "😐")
(set:$blackjack_params's "good action" to (twirl:"resist the urge to cum","hold off your orgasm"))
(set:$blackjack_params's "bad action" to (twirl:"blow your load","cum","bust a nut"))
($cs:"lights out initialize")}{
<!-- mostly copied from main game -->
(unless:$position is "bj")[(display:"girl sex her pleasure gain")]
(display:"npc screen update sex girl")
(set:$character's "arousal" to $character's "arousal" + 1)
(if:(win:))[
(set:$events to $events + (a:"cum edge"))
(print:"<video disableRemotePlayback src='img/" + (text:$current_img) + "' autoplay='' loop='' muted='' playsinline/>")
(if:(count:$events,"cum edge") is 1)[
(twirl:"You barely","You only just","You just barely","By sheer willpower, you","Summoning your willpower, you manage to")
(twirl:"hold it in.","restrain yourself from cumming.","keep your cum in your balls.","contain your orgasm.")
]<div class='options'>(display:"girl cum options")</div>
](else:)[
<!-- Changed from "pull out" -->
(if:$position is "bj")[(set:$type to "facial")]
(else:)[(set:$type to "creampie")]
(set:$events to $events + (a:"cum edge fail"))
<!-- Added -->
(if:$her_pleasure >= $her_pleasure_max)[
(set:$next to "girl cum together")
(display:"change screen")
](else:)[
(set:$next to "girl cum")
(display:"change screen")
]
]
}{
(unless:(dm-names:$npc) contains "cum together total")[(set:$npc's "cum together total" to 0)]
(set:$sex_events to it + (a:"cum together"))
(set:$npc's "cum together total" to it + 1)
(set:$events to it + (a:"orgasm", "cum together"))
($pic:"npc/girls/" + (text:"id" of $npc) + "/sex/orgasm/" + (text:(cond:$position is "lick","missionary",$position)) + ".jpg")
(if:(checkdm:$npc,"id","is","mariselle"))[](else:)[
(twirl:"With your final burst,","As you push in a last time,","As your cum fills her pussy,")
(twirl:$her_name,"she")
(if:(count:$events,"orgasm") is 1)[
(twirl:"finaly releases her lust in a blissful orgasm.","shakes as she cums with you.")
](else:)[
(twirl:"cums one more time.","has a another passionate orgasm.")
]]
(display:"girl cum")
}(set:$orgasm_num to (count:$events,"orgasm"))(if:(count:$events,"orgasm") is 1)[(if:$position is "doggy")[As your thrusts gain speed and power, Mariselle's moans grow louder and more erratic. Her voluptuous body is slick with sweat under you, her massive breasts swaying with each thrust, her fat ass jiggling under your grasp. You're pounding into her from behind, doggy style - your favorite position with her - driving your massive cock deeper into her sloppy, wet folds.
"Mmm... papi," she moans, her voice sounding hoarse, "Your huge cock... it's making me... oh Dios mío!"
Her nails dig into the sheets, the fabric drenched with her squirt. You can feel her pussy starting to clench around you, an early tell-tale sign that she's nearing her climax. That only spurs you on, your cock throbbing with anticipation inside her.
Suddenly, Mariselle cries out - her body stiffening, her pussy clenching around you in a vice-like grip. "I'm cumming, $your_name!" she gasps, her voice barely audible over the sounds of your bodies slapping together.
Just hearing her cry out your name like that triggers your orgasm. You groan, gritting your teeth as you feel your load starting to rush up. "Mariselle... fuck!"
You thrust in hard one last time, pinning her against the bed as your cock twitches, unloading your hot, thick cum deep into her clenching, spasming pussy. At the same time, Mariselle's own orgasm hits - her body convulsing, her back arching off the bed as her juices squirt out around your cock, staining the already soaked sheets even more.
For a moment, everything goes quiet - except for the heavy panting and gasping of the two of you, spent and satisfied from the shared orgasm. You slowly pull out of her, watching as your cum and her juices mix together on the sheets.](else-if:$position is "riding")[Mariselle rides you like a sea siren luring you into the depths of sublime pleasure. Her voluptuous body writhes atop you, her massive ass slapping down wetly onto your lap. The sight of the famous singer in the throes of ecstasy, her huge tits bouncing with each movement, is nothing short of an erotic spectacle.
Suddenly, a spicy gasp tears from her lips, her body tensing atop you. "I'm... I'm cumming, papi!" Her voice is music to your ears, the crescendo to her lewd symphony. Her wet pussy tightens around your cock deliciously as she spirals toward the pinnacle of pleasure.
Then, in perfect synchrony, a mind-shattering surge of pleasure overtakes you. You feel a heavy pulsing in your balls before your cock explodes within her, shooting thick jets of hot, sticky cum deep into her quivering pussy. A low, primal groan rumbles in your throat as you paint her insides white.
Simultaneously, Mariselle lets out a triumphant cry, her body wracked with her own orgasm. Her pussy spasms and clenches around you, milking you for all you're worth as her own nectar joins your cum inside her. The sensation of her squirting around your twitching cock, her juices mixing with your cum in a lewd cocktail, is incredibly erotic. "Oh¡ Santo mas allá!" she screams, her voice shaking with the intensity of her release.
Together, you ride out your shared climax, bodies slick with sweat, soaked in pleasure, lost in the throes of one explosive, simultaneous orgasm. The feeling of Mariselle, the city's most famous sex idol, gasping, clenching, squirting, cuming around you, echoing your own orgasm, magnifies your pleasure tenfold.
As you both come down from the dizzying heights of orgasmic bliss, she collapses onto your chest, panting. Her big tits squish against you, sticky with sweat and arousal, her heart pounding against your own. The sex-soaked sheets under you, her weight on top of you, the smell of sex in the air – it's all an intoxicating testament to the insane, over-the-top, incredibly lewd coupling you've shared. And as Mariselle murmurs a breathless "Gracias, papi," against your skin, you know you've experienced one of the raunchiest, most euphoric nights of your life. Knowing you've brought the seductive siren, the symbol of lust and music, to such blissful pleasure is a satisfaction like no other – a dirty, wildly debauched satisfaction that you wouldn’t trade for anything else.](else:)[As you thrust deeply into Mariselle, you can feel the familiar twinge signaling your impending release. Her voluptuous body writhes beneath you, her huge tits jiggling wildly with each powerful thrust. “Mierda, papi!” she gasps, her dark eyes locking onto yours, her lustful gaze matching your own.
And then, it happens.
Mariselle's body tenses beneath you, a high-pitched cry escaping her lips as her walls spasm around your massive cock. Her own orgasm crashes over her, an uncontrollable wave of pleasure that makes her body shake and convulsec with pure ecstasy.
Just as her pussy squeezes your throbbing member, the harbinger of her climax sends you hurtling over the edge. With a guttural groan, you erupt inside her. Your cock throbs, shooting jet after jet of your hot cum deep into her spasming depths. The sensation of unloading your balls into her tight, quivering warmth is like nothing you've ever experienced.
Her slick juices mix with your cum, creating a sinful and cloudy cocktail that trickles from her pussy. Sweat-slick and panting, she clenches and releases around you, twitches of her orgasm still coursing through her.
You watch as Mariselle comes undone; her face twists in pleasure, her mouth opens in a silent moan. Her tits quake with each breath she takes, her nipples hard and straining against the height of her arousal. The room echoes with the symphony of your shared climax; her high whimpers blending with your low grunts, the squelching sounds of your bodies slapping together.]](else:)[(if:$position is "doggy")[An unspoken synchronization pulses between the two of you, your bodies linking in a penetrative dance that mounts towards a shared climax. You're inside her, deeply, irrevocably so, your hands gripping her bouncing ass as you thrust into her in a primal doggystyle stance. Her sultry squeals and moans are soundtracks to your debauchery, like a siren song that pushes you closer to the edge.
Titillating screams escape from Mariselle as she feels your thick cock stiffen inside her, the telltale sign of your impending orgasm. "Oh, fuck...$your_name...I'm close...I'm...are you - ?" She gasps out, her large tits swaying with every powerful jerk of her voluptuous body over your throbbing cock.
You're on the brink too, the familiar tension building in your balls, ready to explode. With a knowing grunt, you thrust deeper, harder. You can feel her impending orgasm, her lush body tightening, her pussy clutching your cock in a vice-like grip. "Oh, Dios...You're making me...Oh, fuck...$your_name...!" she screams as her orgasm hits, her voice hitching in utter delight.
Your own climax washes over you a split second later, a scorching tide of pleasure that arcs up your spine, roaring through your veins until you're blowing your load - hot, thick streams of cum, filling her already quivering pussy.
Her squirting cunt greedily milks your orgasm, heightening the gratifying sensation. The feeling of releasing inside her, the mixture of your shared climaxes, is stupefying in its carnal intensity. The bed is a mess, your bodies are soaked in sweat and each other's juices, but none of it matters as you ride out the wave of orgasms together.
"Madre de Dios...Papi...that was...oh..." As her high subsides, she collapses onto the drenched sheets, her ass still trembling from the force of your mutual orgasms.
As you pull out, the sight of your cum dripping out of her swollen, well-used pussy, mixed with her own slick juices, is intoxicating. You collapse next to her, both of you panting heavily. As you trace lazy patterns over her sweat-slick skin, you can't help but feel a sense of awe - you've conquered Mariselle, the sex symbol of the entire city, in an orgasmic dance of primal passion and shared ecstasy. You've made her your own, claimed her in ways that even her sultry tunes wouldn't be able to articulate. And in that moment, as you witness the aftermath of your debauchery, you know you've reached a new high in pleasure.](else-if:$position is "riding")[The room is filled with the erotic symphony of your grunts and Mariselle's moans, her curvaceous ass slapping down onto your lap, her soaked pussy squeezing your massive cock. The famous singer rides you like her life depends on it, her body shimmering with sweat, tits bouncing with the rhythm of your coupling.
Suddenly, you feel a familiar coil in your lower belly. "Mariselle... I'm..." You warn her, but she only grinds down harder, a wild look in her eyes.
"Bien, guapo. Dame todo," she pants, begging you to fill her.
Just as you feel the first jet of cum shoot from your cock, Mariselle's eyes roll back as she squeals, "Oh papi... I'm cumming too... I'm..." She can't finish her sentence as her orgasm hits her.
Your cock throbs as you unload a thick, hot river of cum deep into her squirting cunt. The intense pleasure of feeling her pussy spasming around you, squirting her arousal, coupled with the sublime sensation of your own orgasm is nothing short of mind-blowing. Mariselle’s cries echo throughout the room, matching the rhythm of your pulsating cock as it fills her with your hot seed.
The sight beneath you is pure debauchery — Mariselle, the city's sweetheart is laid bare, fully used, her body a quivering, squirting mess under your control, her orgasm heightened by the fact that you're unloading inside her.
Her body goes lax, the energy sapped out of her after her explosive climax. You follow shortly after, your cock twitching the last of your cum into her. Your shared orgasms taper off, both of you a sweaty, sticky mess. The sight of Mariselle — flushed, panting, and creampied is an image that sears itself into your memory. The once poised and sultry singer is now your spent and satisfied sex goddess, marking the ultimate victory for you — you've tamed the city's vixen.](else:)[AWith each powerful thrust of your cock, you drive Mariselle closer and closer to the precipice of pleasure. Her voluptuous body arches off the bed, her dark eyes locked with yours in a game of carnal submission. Her massive tits wobble with every rough thrust, the friction of her sweaty skin against your chest causing them to slide up and down in a tantalizing dance.
Suddenly, Mariselle's eyes widen, and she grabs onto your shoulders, her fingers digging into your skin. "Papi! I'm... I'm..." Her voice trails off into a breathy moan, her body going rigid beneath you as the orgasm hits with the force of a freight train.
"Yeah, take it, Mariselle," you grunt, unable to contain your own pleasure any longer. With one final, powerful thrust, you bury yourself deep inside her, your cock throbbing as you unleash a hot, thick load of cum straight into her quivering pussy. Her eyes nearly cross at the sensation, the feel of your hot seed filling her triggering her own climax.
Beneath you, Mariselle's body judders uncontrollably, her tight cunt squirting around your cock, matching each of your cum shots with an explosive release of her own. For a moment, you're both suspended in your orgasmic bliss - a symphony of lewd moans and grunts filling the room as her body milks every last drop of your cum, the bed sheets beneath you absolutely soaked in her juices.
As Mariselle reaches orgasm number $orgasm_num, you can't help but marvel at the sight of her - makeup smeared across her flushed face, hair messed up, sweat-slick body trembling in delight. Her thick thighs quiver around your waist, the spasms of her pussy drawing out your climax for what feels like an eternity. At that fleeting moment - when your world narrows down to the gasping woman beneath you and the overwhelming pleasure coursing through your veins, you realize the sheer dominance you hold over the city's sex siren, the famous Mariselle.
The room fills with the scent of sex, a deliciously debauched blend of sweat, cum, and Mariselle's unique scent of vanilla, musk, and her spicy arousal. As you collapse on top of her, panting and spent, the fact that you've made the famous singer of Summer City, your bitch, a thought to relive in your wildest fantasies. The satisfaction is heady - knowing that your cock has been the one to reduce the sultry starlet to a spent, sweaty mess, her cunt filled and leaking with your hot cum.]]{
(set: $your_pleasure_gain to
(cond:
$character's "arousal" > 7, 3,
2
)
)
}{
(set: $your_pleasure_gain to
(cond:
$character's "arousal" > 8, 4,
$character's "arousal" > 6, 3,
$character's "arousal" > 4, 2,
1
)
)
}(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl sex her pleasure text mariselle")](if:(checkdm:$npc,"id","is","alexia"))[(display:"girl sex her pleasure text alexia")](else:)[(if:(twist:1,2) is 1)[(if:$her_pleasure > $her_pleasure_edge)["(if:$npc's "traits" contains "religious")[(twirl:"Oh gosshhh!!! I think I'm gonna...","Oh shooot... I feel so... OH MY GOODNESS!","Oh shootttt!!!","OHHHH LORDY!!!","OH MY GOODNESS!!! I'm gonna... gonna... do it...","Oh my WORD!!! OH! OHHH!")](else:)[(twirl:"OH FUCK, OH FUCK! OH FUCK!!!!","Oh god oh god oh god oh godddd...","Nnnnghh... I think I'm gonna...","Oh shittttttt oh yess... I'm gonna...","Oh fuckkkk I'm gonna....","Oh fuckkkkk!!! Oh my goddd- dd-")]"](else-if:$her_pleasure > $her_pleasure_close)["(twirl:"I'm... getting... close!","I think I'm getting close...","Fuckkkk... I'm getting close!","Oh yes...","Ohhhnnnn nnghh...","MMMMmmm!","MMmnnn...","Unnnhh...")"] (if:(twist:1,2) is 1)[She (twirl:"whimpers","moans","murmurs","gasps").]](else:)[(if:$her_pleasure > $her_pleasure_edge)[
(if:$npc's "traits" contains "religious")[(twirl:"Holy heavens...I'm...I'm about to...","Oh by the saints...I feel so...","Blessed Virgin...I'm...","Oh mercy...mercy!","Oh sweet Lord...I'm going to...to...","Oh holy... OH! OHHH!")](else-if:$npc's "traits" contains "slut")[(twirl:"Hell yeah...I'm gonna...","Oh fuck yeah...I'm close...","Daaamn...I'm gonna...","Oh that's it...I'm gonna...","Oh fuck I'm gonna...","Ah shit...I'm gonna...")](else-if:$npc's "traits" contains "bitch")[(twirl:"Oh fuck...I'm gonna...","Damn it...I'm gonna...","Shit...I'm close...","Fuck...I'm so close...","Oh, you're actually making me...","Oh, you're actually good at this...")](else-if:$npc's "traits" contains "nerdy")[(twirl:"Oh my gosh...I'm gonna...","Oh geez...I'm close...","Oh wow...I'm gonna...","Oh my...I'm so close...","Oh boy...I'm gonna...","Gosh...I'm gonna...")](else:)[(twirl:"OH FUCK, OH FUCK! OH FUCK!!!!","Oh god oh god oh god oh godddd...","Nnnnghh... I think I'm gonna...","Oh shittttttt oh yess... I'm gonna...","Oh fuckkkk I'm gonna....","Oh fuckkkkk!!! Oh my goddd- dd-")]](else-if:$her_pleasure > $her_pleasure_close)["(twirl:"I'm... getting... close!","I think I'm getting close...","Fuckkkk... I'm getting close!","Oh yes...","Ohhhnnnn nnghh...","MMMMmmm!","MMmnnn...","Unnnhh...")"] She lets out a (twirl:"breathy moan that fills the room","high-pitched whimper of pleasure","long-winded gasp that fades to a soft moan","loud grunt of ecstasy","sharp inhale, followed by a soft groan","soft, shaky moan","husky sigh of pleasure").]]{
(if:$her_pleasure > $her_pleasure_edge)[(nl:2)
(if:$position is "lick")["(twirl:"Ohhh Papi...your tongue...I'm gonna...","Aye dios mio...right there...I'm gonna cum!","Ohhh diablo...your mouth...fuck, I'm gonna...","Oh sweet santa... ¡Voy a correrme! ¡Oh dios mio!","¡Ay dios!...so good... ¡Me voy a...! ¡Fuuuuck!","¡Santa mierda!... I'm gonna... ¡Voy a...!","¡Ay sí, Papi... I'm gonna... ¡Oh, maldita sea!","Fuck, Papi...your tongue...I'm... ¡Me voy a venir! ¡Oh dios mio! Buen chico... ¡Oh!","Oh Papi...right there...don't stop...I'm...I'm gonna cum...",
"Oh Papi...your...your tongue...I'm...I'm...","Oh...oh yes...keep...licking...","Don't...don't stop...I'm...I'm...","Sí... sí... no pares... ¡Voy a...!")"](else:)[
"(twirl:"Ohhh dios mio...I'm gonna...","Aye Papi...I'm gonna...","Fuuuckkk... I'm gonna cum!","Ay dios...I'm so...","Oh diablo...I'm gonna...","Oh shooot! OH! OHHH!","Fuuuuuuuuck, Papi...I'm... ¡Me voy a correr! ¡Oh dios mio!","¡Ay dios!...so full... ¡Me voy a...! ¡Fuuuuck!","¡Santa mierda!... I'm gonna... ¡Voy a...!","¡Ay sí, Papi... I'm gonna... ¡Oh, maldita sea!","Oh dios, yo... me voy a venir... ¡Dios mio! Buen chico... ¡Oh!","¡Cabron! ¡Sigue así! ¡Voy a... ahhh! ¡Ohhh ángel santo!","Oh Papi...don't...don't stop...I'm so...fucking...close...","Keep...fucking...me...I'm...I'm gonna...","Don't...don't you dare...stop...I'm about...to...","Just...a little...more...I'm...oh fuck...I'm...","Oh yes...oh yes...keep...going...I'm...I'm almost...","Don't...stop...I'm...I'm gonna... cum...","Oh Papi...more...more...I'm...I'm cumming...","Yes...yes...don't stop...don't stop...I'm...I'm...")"]
](else-if:$her_pleasure > $her_pleasure_close)[(nl:2)
(if:$position is "lick")["(twirl:"Mmmmm... I'm getting... close!","I think I'm getting... close...","Fuuuck...I'm getting close!","Oh siii...","Ohhhnnnn nghh...","MMMMmmm!","MMmnnn...","Unnnhh...","¡Ahhh siii, Papi! I'm...getting... ¡Cerca!","¡Oh dios! I'm getting... cerca...","Fuckkk... ¡Estoy a punto!","Ohh siii...","Ahhhhn, Papi, nghh...","¡Mffffmm! Dios...","¡Mmmmm!","¡Ahhhhh!","Ohhh siii, I'm... getting... close!","Papi, I'm getting... close...","Fuckkk... estoy a punto!","Oh siii...","Ahhhnnnn nghh...","MFffffmm!","Mmmmm...","Ahhhhh...","Ohhh, Papi! Your mouth feels so good. I'm getting close.","Right there, Papi! Your tongue feels so good. I'm getting close.","¡Ay Papi! Just a little more. I'm getting close.","Don't stop, Papi. I'm getting close.","Keep going, Papi. I'm almost there.","Papi, your mouth feels so good. I'm getting close.","¡Oh dios, Papi! Just a little more. I'm getting close.","¡Ay Papi, no te detengas! Just like that. I'm getting close.","No pares, Papi! You're going to make me cum. I'm getting close.","¡Si, si, Papi! Don't stop, Papi. I'm getting close.","¡Sigue, Papi! Keep going, I'm getting close.","¡Mas, Papi, mas! More, Papi, more! I'm getting close.","Just like that, Papi. I'm getting close, so close.")"](else:)["(twirl:"Mmmmm... I'm getting... close!","I think I'm getting... close...","Fuuuck...I'm getting close!","Oh siii...","Ohhhnnnn nghh...","MMMMmmm!","MMmnnn...","Unnnhh...","¡Ahhh siii, Papi! I'm...getting... ¡Cerca!","¡Oh dios! I'm getting... cerca...","Fuckkk... ¡Estoy a punto!","Ohh siii...","Ahhhhn, Papi, nghh...","¡Mffffmm! Dios...","¡Mmmmm! Papi...","¡Ahhhhh! Dios, siii...","Ohhh siii, I'm... getting... close!","Papi, I'm getting... close...","Fuckkk... estoy a punto!","Oh siii...","Ahhhnnnn nghh...","MFffffmm!","Mmmmm...","Ahhhhh...","Ay, Papi! Sigue así! Keep going! Your huge dick feels so good in my tight pussy.","¡Dame más, Papi! Give me more! Keep fucking my round ass with your massive cock.","¡No pares, Papi! Don't stop, I need you to keep going!","¡Sigue, Papi! Keep fucking me! I need your big cock pounding into me.","¡Sí, Papi, sí! Yes, baby, yes! Just like that! Don't stop!","¡Si, si, Papi! Continue, I need more of you.","¡Oh dios, sigue asi! Oh god, keep it up! Your massive cock feels so good.","¡Ay Papi, no te detengas! Oh babe, don't you dare stop. Keep pounding me!","Más, Papi, más! More, baby, more! Don't stop, I'm so close!")"]
] She lets out a (twirl:"loud moan that echoes through her mansion","high-pitched whimper of delight","long-winded gasp that fades into a soft mewl","loud squeal of ecstasy","sharp intake of breath, followed by a soft moan","soft, shaky moan","husky sigh of pure pleasure").
}{(set:$text to (twirl:"smack","slap","smak","fwap"))(set:$text_div to (twirl:"...",",","-"))*(print:(upperfirst:$text))(print:$text_div) (print:$text)(print:$text_div)(unless:(twist:1,3) is 1)[ (print:$text)(print:$text_div)(if:(twist:1,2) is 1)[ (print:$text)(print:$text_div)]] (print:$text)... *}{(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl sex moan text mariselle")](else:)["(print:(twirl:"Unnnnnhhhhh...","'NNnggnnnnn...","Unh, unh, unhhhh...","'Nnn, nnn, nnnn...","Ungghh, unggghhhh, unnnn...","Nggh, nngggggh, nggh...","NNnannn, naa, nnnnnn...","Ngghhhh-","Aaahhhnnn...","Ahhhn- ahnnnn- hnnnn...","Hnnn, hnnnnn, hNnnNNn...","NnnNNn- nnnnNNNnn- nnNNngghhn- nnn...","Unnnnnn- nnn- nnnnghhh-"))(if:(twist:1,2) is 1)[ (twirl:"oh yeah...","oh my goddd...","godddd...","yesss...","fuck yes...","that's it...","yesss...","oh god, oh yes...","oh yes, fuck me...","oh yes, that's it, fuck me...","fuck me...")]" she (twirl:"moans","squeals","groans","whimpers").]}{"(print:(twirl:"Aaayyyyyy!","'NNnggggaaa...","Ay, ay, ay, mmmmm...","'Nnn, nnnn, sííííí...","Dame, dame, unnnn...","Nggh, nngggggh, Papi...","NNnannn, naa, ¡dios mio!","Ngghhhh Mami...","Ahiiii papi...","Ahhhn- ¡ay dios!","Papi, hnnnnn, hNnnNNn...","Papiii- nnnnNNNnn- ¡sí, ahí!","Unnnnnn- ¡sí, sí, sí!"))(if:(twist:1,2) is 1)[ (twirl:"oh síííí...","ay dios mio...","diosssss...","síííí...","joder sí...","eso es...","sí, papi...","oh dios, oh sí...","oh sí, fóllame...","oh sí, eso es, fóllame...","fóllame...")]" she (twirl:"moans","squeals","groans","whimpers").}[<div class='options'>(link:"Talk dirty (gentle)")[(replace:?words)[(display:"girl gentle dirty talk")]](link:"Talk dirty (rough)")[(replace:?words)[(display:"girl rough dirty talk")]]</div>]<words|(nl:2)(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl gentle dirty talk mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl gentle dirty talk alexia")](else:)["(twirl:"Fuck yes","Yesss","Mmmm","Oh fuck yes","Oh god, yes","Oh yeah, fuck","Yeah")(twirl:"...","!") (if:$position is "bj")[(twirl:"That's a good girl","Good girl","Your mouth feels so good","You're good at this","Your tongue feels amazing","That feels so awesome","Just like that")](else-if:$position is "riding")[(twirl:"Just like that","Ride me just like that","Keep going, just like that","Your pussy is so tight","Your pussy feels so good","Your pussy feels incredible","Ride me, yeah, keep going","Keep going","Just like that","That feels amazing")](else:)[(twirl:"Take my cock","Take my dick","This feels amazing","Your pussy is so tight","You feel so good","Your pussy feels incredible")](twirl:"...",",")" you say.(unless:$npc's "traits" contains "slut")[(inc:'her_arousal')(display:"npc screen update sex girl")]](nl:2)(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl rough dirty talk mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl rough dirty talk alexia")](else:)["(twirl:"Fuck yes","Yesss","Mmmm","Oh fuck yes","Oh god, yes","Oh yeah, fuck","Yeah")(twirl:"...","!") (if:$position is "bj")[(twirl:"That's a good little slut","Good bitch","You're such a well-trained little whore","You're good at this, slut","You're obviously an experienced little whore","Just like that, slut")](else-if:$position is "riding")[(twirl:"Just like that","Ride me just like that","Keep going, just like that","Your pussy is so tight","Your pussy feels so good","Your pussy feels so fucking tight","Ride me, yeah, keep going","Keep going","Just like that","That feels amazing"), (twirl:"bitch","you slut","slut","whore")](else:)[(if:(twist:1,2) is 1)[(twirl:"Take my cock","Take my dick","This feels amazing","Your pussy is so tight","You feel so good clenching daddy's cock"), (twirl:"bitch","you slut","slut","whore")](else:)[(twirl:"You're such a good little fuck-slut","You're daddy's little fuck-hole now","You're my little fuck-hole","You're just a set of holes to me, slut")]](twirl:"...",",")" you say.(unless:$npc's "traits" contains "religious")[(inc:'her_arousal',2)(display:"npc screen update sex girl")]]"(twirl:"Fuck yes","Yesss","Mmmm","Oh fuck yes","Oh god, yes","Oh yeah", "Yeah")(twirl:"...","!") (if:$position is "bj")[(twirl:"That's it Mariselle, use that mouth like it's your microphone","Oh fuck, Mariselle, your pretty lips feel so good","Yeah, Mariselle, use that tongue like only a singer can","That's it, puta, feel my cock with your perfect lips","Hold my shaft like it's your microphone")](else-if:$position is "riding")[(twirl:"Just like that, Mariselle, slam that big ass down on me","That's it, puta, ride my cock like it's the last encore","Keep going, Mariselle, fuck me with that celebrity pussy","Your pussy is so tight, Mariselle, tighter than your schedule","Mariselle, you feel so good, it's like your voice on my cock")](else:)[(twirl:"Mariselle, take my cock like it's a Grammy","Damn, Mariselle, your pussy feels as incredible as your high notes","Fuck, Mariselle, your pussy is a hit just like your songs","Your tight pussy is an award-winning performance, Mariselle")](twirl:"...",",")" you say. (unless:$npc's "traits" contains "slut")[(inc:'her_arousal')(display:"npc screen update sex girl")]"(if:$position is "bj")[(twirl:"Suck my cock, puta, just like you sing your dirty songs","Good whore, use that filthy mouth of yours","You're a dirty slut, does your audience know this is your real talent? Well, I do","Better use your mouth for sucking cocks rather than singing","That's it, Mariselle, suck my cock like it's your mic","Good little puta, using your mouth the right way","Suck my big fat cock, Mariselle, like your career depends on it","Yeah, Mariselle, suck me off, show me what those talented lips can do","That's it, puta, suck my cock like the whore you are","Yeah, Mariselle, choke on my fat dick","You're nothing but a cock-sucking slut, aren't you, Mariselle? Yeah you are","Such a slutty mouth")](else-if:$position is "riding")[(twirl:"Ride me, whore, just like you're performing an adult show","Keep going, *puta*, just like that","Your pussy is so fucking tight, just like one of your tight pants","Your pussy feels even better than listening to your songs, slut","Your pussy is fucking tight, is this how you entertain your fans offstage? Seems that way","Just like that, Mariselle, bounce that fat ass on my cock","Ride me hard, Mariselle, like you always wanted to","Yeah, Mariselle, use that pussy, make it sing on my cock","Your ass is incredible, Mariselle, just like your voice","Bounce harder on my cock, Mariselle, I want you to remember this fuck every time you're on stage","Yeah, shake that fat ass, Mariselle, like the whore you are","That's right, bounce that fat ass on my big dick, *puta*","Keep going, Mariselle, your fat ass is made for fucking","Harder, *puta*! I want to hear your ass cheeks clap on my thighs","Your fat ass is getting a good pounding, Mariselle, just like you deserve","Look at those stupid fat tits bouncing as you ride my cock, Mariselle","Yeah, Mariselle, let those ridiculous tits jiggle as you bounce on my dick","The sight of those huge tits bouncing is almost as good as your tight pussy, Mariselle", "Your fat tits are slapping as you ride me, just like an applause, Mariselle", "Those massive fucking tits of yours are swaying from your rough ride, Mariselle, they're obscene")](else:)[(if:(twist:1,2) is 1)[(twirl:"Take my fat cock","Take my meat, bitch","This feels so good, better than any of your concerts","Your pussy clenching my cock feels way better than your voice","Take my cock, Mariselle, like it's your next big hit","Yeah Mariselle, take all of my big fat cock","I always knew you were a dirty little *puta*, Mariselle","Yeah, Mariselle, you like having your pussy pounded, don't you? Because it feels fucking amazing"), (twirl:"bitch","*puta*","slut","whore")](else:)[(twirl:"You're my little sex idol now","You're just my cum dump, beyond that nothing","Now I know how you got so famous, *puta*","Your big ass is made to be spanked")]](twirl:"...",",")" you say. (unless:$npc's "traits" contains "religious")[(inc:'her_arousal',2)(display:"npc screen update sex girl")]{($play:"ambience","outdoors ocean night ambience")
<div class='options'>(if:$satisfaction > 8)[(set:$new_mood to (dm:
"mood","super confident",
"emoji","🤩",
"strength",10,
"length",6,
"cause","since you had great sex with Mariselle, and made her cum so many times.",
"charm buff",4,
"intellect buff",1
))(display:"new mood")(display:"refresh stats")](else-if:$satisfaction > 4)[(set:$new_mood to (dm:
"mood","really confident",
"emoji","😎",
"strength",10,
"length",4,
"cause","since you had great sex with Mariselle.",
"charm buff",3,
"intellect buff",0
))(display:"new mood")(display:"refresh stats")](else:)[(set:$new_mood to (dm:
"mood","confident",
"emoji","😏",
"strength",10,
"length",4,
"cause","since you banged Mariselle the belle of Summer City!",
"charm buff",2,
"intellect buff",0
))(display:"new mood")(display:"refresh stats")]
</div>}
(display:"girl sex aftermath mariselle " + $type)(display:"save npc")
(set:$gain to 0)(if:$satisfaction < 4)[(set:$gain to 2)](else-if:$satisfaction < 8)[(set:$gain to 4)](else:)[(set:$gain to 5)](unless:$gain is 0)[(display:"gain masculinity")]
<div class='options'>(if:(count:$events,"orgasm") > 2)[(link:"Fall asleep.")[($cs:"mariselle next day wake up")]](else:)[(link:"Return home.")[($cs:"mariselle miguel drive home")]]</div>(if:(count:$events,"orgasm") is 1)[Lying on the soaked bed sheets, both of you are bathed in the afterglow of intense climax, your bodies slick with sweat and cum. The room is filled with the scent of sex and the heavy, contented sighs as you bask in the remnants of your shared satisfaction. Mariselle's voluptuous body is sprawled next to you, the rise and fall of her enormous, cum-glazed breasts in rhythm with the soft, drawn-out breathing.
"Caramba, $your_name," she murmurs, her dark eyes half-lidded with spent arousal. "Tonight was... buenísimo." Mariselle's voice is a husky whisper, her thick accent making it all the more erotic.
You press a kiss onto her forehead, your fingers tracing the curve of her hip resting against you. "You were amazing, Mariselle." Your voice is quiet, blending with the lull of the waves lapping against the shore outside, the night birds offering a soft symphony in the distance.
"Si, and exhausted," she smirks, her lips painting a glistening promise of more, but her eyes are already drooping in sleepiness. With a sensual wriggle, she maneuvers herself under the plush sheets, her infamous curves nestling into the comforting softness.
"Go down, papi," she murmurs, her words slurred with oncoming sleep. "Miguel will take you home."
As you rise from the bed, you can't help but glance back at Mariselle. Her hair splayed on the pillows, the sheets barely covering her monstrous tits and wide, round ass, and her face relaxed in a serene mask of satisfaction. It's a sight that pins you, the intoxicating image of the city's most coveted woman laid bare and satiated.
You slowly dress, occasionally casting glances at the slumbering woman on the bed. The room is filled with the post-sex tranquility, only disrupted by the faint lapping of the waves and the night birds cooing. The room smells of Mariselle, of sex, of sweat, and of you - an erotic blend of memories that's certain to linger in your mind for a long time.
As you head downstairs, you find Miguel waiting. His usually stern expression seems to have softened, replaced with a small nod of approval. He'd seen you enter the room and had probably heard the sounds echoing from upstairs. He grunts a small acknowledgment and proceeds to drive you home, the Summer City's lights a blur as you replay the night's debauchery, your cock still throbbing from the memory of Mariselle's voluptuous body, her screams of pleasure echoing inside your head.
Tonight was anything but ordinary. You had tamed the wild singer - the sultry siren Mariselle, giving and receiving pleasure in measures beyond comprehension. As the city's familiar skyline approaches, you realize that the night with Mariselle had been your passage into a world of debauchery and desire, a world that you'd willingly explore again. And as you step out of the car, under the city's neon lights, you can't help but glance at the mansion in the rearview mirror, the sound of Mariselle's sultry laughter echoing in your ears, a reminder of the sinfully delightful night that had unfolded.](else-if:(count:$events,"orgasm") < 1)[You can't seem to catch your breath, your chest heaving as you try to calm your racing heart. A glance towards Mariselle reveals she's in a similar state - her caramel skin glistening with a sheen of sweat, her chest rising and falling rapidly as she recovers from the intense orgasmic marathon, her eyes are half-closed, specks of destroyed mascara decorate her cheeks.
Suddenly, she shifts, a grimace crossing her face as she sits up. A trickle of your thick, creamy cum begins to leak out from her well-fucked pussy. She makes no move to stop it, instead just groaning out a curse in Spanish as she watches your shared fluids stain the already ruined sheets.
"Damn. What a mess," she mutters, clearly unsatisfied. She darts a glance towards you, her dark eyes sharp. "You didn't do good enough. I'm gonna have to finish myself off, guapo."
Her words leave no room for argument as she pushes off the bed and heads towards the en-suite bathroom, her hips shaking mildly. You're left there, watching Mariselle, the voluptuous singer, saunter off without an ounce of regret. The satisfaction of your own release is marred with the bitter realization that you couldn't satisfy her.
She returns a moment later, a stern look on her face.
"Miguel is waiting for you downstairs." With that, she collapses onto the bed, her back to you, leaving you in your own mess of thoughts and physical exhaustion.
As you gather your things and make your way downstairs, the reality of the night begins to set in. The sex was intense, debauched, an erotic dream come true. But the grip of dissatisfaction, the sting of Mariselle's curt dismissal, lingers on, a stark contrast to the carnal bliss of moments ago.
Miguel, the burly bodyguard, is already waiting for you by the front door, his face neutral. He ushers you outside and into the SUV parked by the curb. It's well past 2am, the cityscape a blur of twinkling lights as you leave the mansion.
Silently, you head home, the thrill of the night losing some of its sheen in the aftermath of it all. You had Mariselle, the renowned singer, humping and moaning on your cock. But you hadn't satisfied her. And that thought is an undeniable thorn in the bloom of post-coital euphoria.](else-if:(count:$events,"orgasm") is 2)[As the last echoes of Mariselle's sexual euphoria die down, you both collapse onto the messed-up bed, your bodies intertwined in a sweat-slick mess. Her head rests on your chest, her breathing gradually slowing down to a steady rhythm, mirroring the lulling sounds of the waves just beyond the walls of her beachfront mansion.
Your fingers lazily trace her curves, sticky with the remnants of your shared ecstasy. Mariselle's plump breasts rise and fall with her breaths, the flushed tips still hard from your touches. Your spent cock, still slick with her cum, twitches at the sight of her well-fucked pussy. Pearly rivulets of your seed leak from her, staining the soaked sheets further - the tangible proof of your creampie, twinned with her dual orgasms.
"Esta noche..." she murmurs, her Spanish accent smooth and sultry in the afterglow, "you made me cum twice. Twice! Ah, papi, tonight... it was exactly how I dreamed it would be." A contented sigh leaves her lips, her eyelashes fluttering as she drifts off to sleep, signalling the end of the sinful night.
Kissing her forehead, you slip out of bed, pulling on your clothes. Mariselle turns at the rustle of fabric, her luscious form half-hidden under the silk sheets, her eyes half-lidded from exhaustion.
"Miguel will drive you home, mi amor," she mumbles, her voice a seductive purr even in her fatigue.
Downstairs, Miguel waits for you. He seems less formidable than before, a knowing smile tugging at his lips. “She seemed satisfied,” his gruff voice remarks, his brown eyes flashing with what could almost be approval. You nod, unable to suppress a triumphant grin. A nod of approval from Mariselle's hulk of a bodyguard? You must've rocked her world.
As you step out of Mariselle's mansion, a renewed sense of accomplishment wraps around you. The taste of her lips, the scent of her arousal, the warmth of her body - every sensual memory of Mariselle deepens into a vivid imprint in your mind. Each moment, each touch, each shared climax whispers of the debauched night, of the sultry singer who moaned your name and came undone under you. It's a taste of the forbidden, a memory of wild, unadulterated pleasure you won't forget anytime soon.](else:)[Post-sex, the room is cocooned in an intimate haze. The sheets are soaked in the remnants of Mariselle's numerous climaxes, the bed a mess of crumpled linen and jumbled pillows. The sounds of waves against the shore lull through the open balcony doors, a distant symphony to the rhythm of your shared heartbeats.
Mariselle lies next to you, her huge tits rising and falling with each labored breath. Her sweat-slick skin is a mocha glow in the dim light, her cheeks flushed and eyes hazy from the intensity of the countless orgasms she rode. She giggles softly, biting her lower lip as she watches your cum leaking out from her well-fucked pussy and pooling beside her.
"My god, papi, you came so much," she murmurs, tracing a finger through the creamy puddle. Her words are slurred, her brain clearly a foggy mess after the countless orgasms that ricocheted through her voluptuous frame.
She reaches out, pulling your arm around her waist, nestling into your side.
"I'd planned to have you just taken home... but after such a session... it wouldn't be fair to kick you out, eh?" she purrs, her lips teasing a peck on your damp chest.
You smile, pulling her closer. The warm comfort of Mariselle's curvy body against yours feels right. The way her fingers lazily trace circles on your chest, the lingering scent of her arousal and sweat on the sheets, and the faint taste of her on your lips - it's the perfect aftermath of a wildly erotic session.
There's a polite knock on the door, drawing your attention. Mariselle calls out, her husky voice echoing through the room. "Yes, Miguel?"
"Everything alright in there, ma'am?" The bodyguard's voice is a low rumble.
Mariselle giggles, pulling the bedsheets tighter around her naked body. "Better than alright, Miguel," she responds, planting a soft kiss on your cheek. "We'll call if we need anything."
Her voice dips back into a low, sultry murmur, her fingertips delicately trailing over your skin.
"I didn't expect you to be such a beast, $your_name. You made me cum so many times my legs are still trembling."
It's not every night that you get to experience this level of unadulterated pleasure, let alone with a woman like Mariselle. You respond, confessing, "And I didn't expect to be so blown away by a goddess like you..."
The rest of the night is spent in naked tranquility, wrapped in each other's arms, the sounds of the beach blending with the low hum of post-coital satisfaction.](if:(count:$events,"orgasm") is 1)[Post-sex, the room is a sensory playground. Your musky scent mixes with that of Mariselle's, the air heavy with the scent of sex and sweat. The soaked, ruined sheets cling to your bodies, a small testament to the earlier, wild debauchery.
Mariselle lies next to you, her curvy body glistening with sweat and trembling in the aftermath of her orgasms. Her face, once a beacon of sultry seduction, is now painted with your cum. Gleaming streaks of white adorn her caramel skin, stars in a sinful galaxy. Her kohl-rimmed eyes are partially shut, one hidden behind a tad of your spunk that landed off mark.
"Fuck, $your_name," she giggles, her chest heaving, "you got it in my fucking eye."
Despite her words, she doesn't seem to mind. The glint in her dark eyes is not irritation but a mix of delight and smug satisfaction, a badge of honor of a job well-done. Her fingers lazily trace patterns in the cum splotches on her breasts, her laughter rings in your ears - a pleasant contrast to the guttural cries and gasp of pleasure that previously echoed in the room.
Her eyes twinkle mischievously, a soft chuckle escaping her lips. "Muy bien, $your_name, you did... good. You've made a good impression, mi amor." She grins lazily, her cum-soaked face a beautiful mess. There's a sweet satisfaction in her voice as she lays there, basking in the lewd aftermath.
Suddenly, she pushes herself up, breaking the dwindling silence. She curses, getting out of the bed, slipping on her scandalously short robe. "Now, why don't you clean up while I wash off your sticky explosion from my face," she teases, sauntering towards the bathroom, leaving you to digest the sated yet still simmering presence of her.
Miguel, the stern bodyguard, is waiting downstairs. His stone-hard expression softened a bit as he escorts you to the parked SUV outside. The late night breeze is a welcome shock to your overheated skin, the clatter of the city a muted lullaby as you slip into the backseat.
The SUV drives off, leaving behind Mariselle's mansion, the scent of sex, the taste of her orgasms, and the sight of her cum-smeared face - imprints of an unforgettable encounter in the pulsating heart of Summer City.
As you lean back against the plush leather seat, your heart still thumping in your chest; your existence awash with the afterglow of sex. The memory of Mariselle, the sex siren of the city, satiated and beautifully debauched, brings forth the ghost of a smile on your lips. A cherished memory to replay and relive in the coming days, and a wickedly lewd promise of what nights in the City of Summer hold.](else-if:(count:$events,"orgasm") < 1)[As you both come down from the sexual high, you're lying next to Mariselle, an ocean of rumpled sheets between you. Your heart drumming in your chest echoes the rhythm of the music that seems miles away now, the heavy throb of bass just a faint echo in the otherwise quiet room.
Her lustrous black hair is spread out over the silk pillowcase - no, not spread, more like splattered. It's sticky, matted with your cum that also streaks across her beautiful face, her cheeks, her nose, her eyes... everything covered in the aftermath of your explosion. Mariselle's now ruined makeup makes her look obscene - a saliva and cum-soaked mask where the bombshell singer used to be.
But as you turn to look at her, expecting to see a satisfied smirk, you're met with a disgruntled frown. Mariselle is lying on her back, one arm thrown over her sweaty forehead, the other trailing down to her still slick, unsatisfied pussy. She's a mess - a sweaty, sticky mess with cum getting in her eyes.
She muffles a curse, rubbing her eye with her cum-covered hand, only making it worse. Her curses are sharp, filled with frustration and the distinct tang of dissatisfaction. You watch as she raises her free hand, sliding it down to her soaked cunt, remnants of your orgasm still dribbling from her hole.
"Fuck," she mutters under her breath, "Guess I'll just have to finish what you started."
Her self-conscious, curt tone cuts through the sexually charged atmosphere, the harsh reminder of your shortcoming. Mariselle was still unsatisfied despite everything - the hot, illicit sex, the obscene moaning, the pornographic imagery. It's a bitter pill to swallow.
"Miguel's waiting," she says, not looking at you. It's clear the show is over.
Gathering your stuff, you quietly make your exit, leaving Mariselle alone with her unmet satisfaction.
Outside, the gruff bodyguard is ready to escort you to the SUV, his normally stoic face impassive as ever. The ride back home feels longer than it should, the city's lights seeming harsher. Everything feels a bit off, like a shifted painting on the wall. And amidst it all, you can't shake off the image of Mariselle, left unsatisfied and alone.
It's 3AM, and while you've had an amazing night, you know you didn't satisfy Mariselle. The sultry singer of Summer City, the woman of your wildest dreams, is in her bed probably fingering herself because you, despite the great sex, couldn't get her off. It's a harsh reality, a rude awakening, an ache that sours the taste of the otherwise epic sex you've just had.
Tonight, you met Mariselle, fucked Mariselle, but couldn't satisfy Mariselle. And that's a memory that's going to stick around for a while.](else-if:(count:$events,"orgasm") is 2)[In the aftermath of your wild lovemaking, you are both sprawled on the bed - spent, sweaty, but gratified. Lying next to her, your eyes roam over Mariselle's voluptuous form - her breasts rise and fall with her laboured breaths, her olive skin glistening with a layer of sweat. Her raven hair is a wild mane spread out on the soaked pillow, her famous face totally drenched and coated with your cum.
"Madre de Dios, papi," she drawls, wiping a few droplets of your sticky seed from her cheeks, "You really didn't hold back, did you?"
Her dark eyes blink at the stinging intrusion of your cum, her fingers blindly swiping at the mess. But even in this amusing disarray, Mariselle manages to radiate a sensual allure. Her tongue peeks out to clean her cum-stained lips, the taste making her blush even in her post-orgasmic haze.
With a giggle, she flicks a glob of your cum back at you. "Toma! That's for getting it in my eye."
As she leaves the bed, her glorious ass bounces enticingly, reminding you of the fantastic show just minutes ago.
"Looks like some cleanup is in order," she quips, walking to the bathroom. "Feel free to show yourself out, guapo. Miguel is waiting downstairs."
You quickly dress up and leave her room, finding Miguel waiting for you in the expansive hallway. The burly man nods at you, a hint of understanding in his eyes. It seems Mariselle isn’t too shy about sharing details of her conquests.
You hop into the awaiting SUV outside Mariselle's residence, your body still tingling with the residue of your heated encounter. As the vehicle glides away, you crane your neck to look back at Mariselle’s house, the lights twinkling as the sultry siren of Summer City fades into the dark.](else:)[Post-sex, the room is awash in a heady mix of sweat, sex, and satisfaction. Mariselle lies next to you, her body sated and boneless, her breath coming out in tiny panting puffs. Her once flawless face is beautifully ruined by your load, your cum painting her lips and cheeks in a glossy sheen of lewd satisfaction.
Her eyelashes flutter open, her deep gazes meeting yours as she runs a languid finger over her lips, scooping your cum. She pops the finger in her mouth, her eyes never leaving yours as she licks it clean. It's a sight to behold, the sultry songstress of Summer City, glowing in post-coital bliss, her face smeared with your cum, and not a hint of discomfort or disgust in her expression.
Suddenly, the rhythmic knocking on the door breaks the silence. "Señorita Mariselle, is everything alright?" It's Miguel, her towering bodyguard, his gruff voice laced with a concern that contrasts starkly with his intimidating exterior.
"Sí, Miguel. Todo está muy bien," Mariselle replies, her voice a husky purr of satisfaction.
She turns to face you, her ruined makeup making her look even more enticing, as if that was even possible. She grins at you, her eyes sparkling with contentment.
"You did wonderfully, $your_name," she murmurs, her voice low and sexy. "I'm still... buzzing..."
Her cozy bed is a mess, the once pristine sheets now soaked and crumpled.
"I could arrange a ride for you, but..." she trails off, biting her lower lip. "Or, if you want, you can spend the night here."
You chuckle, pulling her close, her plump tits pressing up against your chest. "I think, I’d rather stay," you reply, already feeling the comfortable warmth of her body seep into you.
Mariselle giggles, nuzzling against your chest. Her laughter is a soothing melody, easing the exhaustion of your spent bodies with its infectious joy. She snuggles in your arm, not bothering to clean her face. You help her, gentle and slow, cleaning her with a tissue from the bedside table.
Her arms wrap around you, pulling you closer as she whispers soft Spanish words into your ears, the warmth of her breath making you shudder. Her voice gradually grows quieter, her body relaxing against yours. Soon, the room settles into a peaceful silence, the rhythmic crashing of waves outside the only sound left.
And that's how you fall asleep, nestled in the arms of Summer City's sex siren, the scent of her still lingering on your skin. It's an intoxicating reminder of the debauched night you've spent, making the famous singer cum her brains out, watching her quivering under you, her body rendered helpless under your relentless assault. The memories are enough to fuel your wet dreams for the countless nights to come.](if:(count:$events,"orgasm") is 1)[You both lay in the ruined bed, naked bodies glistening with sweat and smeared with traces of your shared climax. The sheets beneath you are soaked in her juices, her scent mingling with yours in a heated, erotic haze.
You glance at Mariselle, her curvaceous body sprawled next to you, her large, fat tits heaving with each heavy breath. Thick ropes of your cum are smeared all over her - a lewd testament to your explosive release. The milky essence streaks her caramel skin, running down the valleys of her massive breasts, dripping off her nipples in creamy, heavy drops. The lewd sight of her tits, doused with the evidence of your climax, is as pornographic as it is gratifyingly intimate.
Mariselle rolls her head to look at you, a satisfied smirk playing on her swollen lips. "Mmm, $your_name, you did quite an... acceptable job," she drawls lazily, her dark eyes sparkling with mischief. She reaches down to swipe a finger through the sticky mess on her tits, holding it up to admire the shine before popping it into her mouth with a chuckle.
Looking down at her cum-coated body, she tsks, rolling her eyes dramatically.
"Ay, Dios mío. Look at this mess." She shakes her head, but you can see the satisfaction twinkling in her eyes.
She gets up, her lush body - still-slick with sweat and your thick cum - swaying enticingly as she saunters towards the bathroom.
"Clean up, querido," she tosses over her shoulder, her voice husky with satiation. "Miguel will be waiting for you downstairs." She then disappears into the bathroom, the click of the door signifying the end of this wild interlude.
You take a moment to bask in the aftermath, your body humming with satisfaction, your mind replaying the raw, pornographic moments of sex with Mariselle. You get dressed slowly, each piece of clothing feeling oddly normal after what just happened. As you pull your shirt over your sweat-damp hair, you can't help but replay the sight of Mariselle's cum-drenched body in your mind, a reminder of the lewd, unforgettable encounter you had with the most coveted woman in Summer City.
Before you leave, Mariselle emerges from the bathroom, a freshly-showered swirl of hair around her face. She's in a silk robe now, the garment barely containing her massive tits. She kisses your cheek, her lips lingering for a moment longer, a hint of the night's debauchery lingering on her breath.
The sight of the bulldog-esque Miguel waiting for you downstairs brings you back to reality. He escorts you to the car without a word, his cold professionalism a stark contrast to the mind-melting sex you just experienced.](else-if:(count:$events,"orgasm") < 1)[The room is permeated with the heady scent of sex, the air warm and damp with the aftermath of your shared hedonistic endeavor. Mariselle lays next to you, a decadent masterpiece of caramel skin, voluptuous curves and tangled hair glistening under the dim lights, your cum coating her large breasts in a sticky, lustrous sheen. There's a glazed look in her eyes, her chest heaving with exertion and unfulfilled desire.
"Madre de Dios," she mutters under her breath, her fingers tracing absently over her cum-drenched tits. She casts you a side glance, a hint of disappointment shadowing her usually mischievous eyes. "Estoy tan excitada... I need to... damn it," she swears lightly in Spanish, rolling off the mess of the bed.
You watch her in silence, a pang of guilt coursing through you. She was a siren, and you failed to make her sing. Flashes of her writhing under and on top of you flicker across your mind, your cock stirring to half-mast at the mere memory. You've had the most phenomenal lay, yet you couldn't return the favor.
Mariselle gathers her scattered lingerie, throwing you an over-the-shoulder smirk. "Guess I'll have to take matters into my own hands, sí?" Her voice attempts to retain its sultry composure, but you can hear the slight edge of frustration. With a last lingering look, she disappears into the bathroom, leaving you alone.
In the quiet aftermath, the reality of the situation sinks in. The wet spot on the bed, the lingering warmth of where Mariselle laid, the scent of her mixed with your cum - everything serves as a haunting reminder of what you couldn't do. You lay there for a moment longer, before sighing and pulling on your strewn clothes. Their dampness, a mix of Mariselle's arousal and yours, clings to your skin, a sensual aftershock.
Downstairs, Miguel waits for you, his hulking figure casting a long shadow across the marble floor. His expression remains impassive, but you can see the faint flicker of pity in his eyes. With a gruff nod, he leads you towards the SUV, the engine purring softly in the otherwise silent night.
3am - the hour of the beast. The city, once buzzing with life, is swathed in a blanket of quiet. The ride home is a mix of somber reflection and lingering pleasure, your body still buzzing from the earlier escapades. Mariselle had been unforgettable, but the thought of her touching herself in the bathroom, easing her own frustration, leaves a bittersweet taste in your mouth. As the SUV speeds on, the city lights flicker like distant stars, mirroring your own conflicting emotions.](else-if:(count:$events,"orgasm") is 2)[You both lie sprawled on the drenched bed, heavy breaths filling the air. Mariselle's curvaceous body is on full display beside you, her dark skin shining with a sheen of sweat and cum.
Your sticky seed coats her massive tits, pooling in the valley between them. Thick ropes of cum dribble down the sides of her voluptuous breasts, tracing the curves of her body in a lascivious path that makes your already satisfied cock twitch in appreciation. The sight is pornographic in the most explicit of ways - Mariselle, the Summer City’s icon, doused and dripping in your cum.
"Madre de Dios," she murmurs, her voice husky and content. "You certainly know how to give a woman a good time, $your_name." Her fingers play with the cum on her breasts, drawing leisurely patterns. "Ahora... every time I'm up on that stage, shaking my tits, just remember your cum all over them."
You both share a wicked grin.
After a few moments of comfortable silence, she rolls off the bed, her cum-drenched tits bouncing with her movement.
"Miguel is waiting for you, guapo," she says, her voice still carrying that sultry, cozy warmth. She leans over, giving your cheek a soft, lingering kiss that leaves a smear of your mixed juices. "Thanks for a remarkable evening, $your_name. You certainly know how to make a woman cum, and not just once," she adds with a playful wink.
Walking out of the room, her round ass and cum-soaked tits make a lewd, unforgettable sight, a promise of debauchery for future nights.
Downstairs, the ever stoic Miguel is waiting by the car. Despite his gruff exterior, there's a hint of amusement in his eyes. He opens the car door for you, and as you climb in, you can't help but replay the night's events, a satisfied grin playing on your lips as you anticipate your next encounter with the sultry diva, Mariselle.](else:)[You both lay sprawled on the bed, the sheets beneath you thoroughly soaked with sweat and her copious juices. Her voluptuous body, glowing with the flush of multiple orgasms, is artistically splattered with your sticky cum, especially her massive tits, the round globes shining under a thick layer of your release. A stray strand of hair sticks to her cum-soaked breasts, bobbing every time she takes a breath. Her spent pussy, now a juicy, wrecked hole, trickles her slick nectar, staining the trashed sheets further.
Mariselle, the sultry singer of Summer City, lies next to you, her chest heaving with deep, satisfied breaths. Her smoky eyes are half-lidded, her lips curved into a blissful, satiated smile. A sheen of sweat and cum covers her curvaceous body, the salty scent of sexual release thick in the air.
Lazily, Mariselle dips a finger into the cum coating her massive tits, her finger trails leaving a smudged pathway on her creamy skin. With a lusty wink, she brings the cum-covered finger to her mouth, her tongue darting out to clean it thoroughly. The whole act is so salacious, littered with raw, uncensored sexuality that it makes your drained cock twitch.
Suddenly, there’s a knock on the door, the sound jarring against the heavy silence of the post-coital scene.
"Señorita Mariselle, is everything alright?" It’s Miguel, his deep voice booming from behind the door.
"Muy bien, Miguel. Todo está bien," she calls out, a satisfied giggle hitching her breath. Despite the carnal mess she is right now, there's a genuine sense of euphoria in her voice.
Turning back to you, she languidly stretches, her body flexing like a satisfied feline.
"You did wonderfully, $your_name,” she purrs. “Such a naughty, naughty boy."
Her hand trails down to your softening cock, giving it a gentle squeeze.
"I was going to ask Miguel to take you home, but you can stay the night if you'd like," she offers, her hand still stroking your cock.
You, of course, accept the invite. Mariselle giggles, snuggling up against you, her cum-blasted tits pressing against your arm.
"I like it when you're close," she hums, her voice soft and languorous.
Her eyes lock onto the white, drying cum on her heavy tits, and she stifles a giggle.
"I think this is not good for my skin, $your_name. Can you help me?" With that, she reaches for a bottle of jojoba lotion resting on her nightstand, passing it to you.
You squirt a dollop of the cream onto your hands, heating it with your body warmth before massaging it into her magnificent tits, kneading the soft flesh. The cream makes the dry cum flake off, making way for your slippery hands to glide over her skin, moisturizing it.
She lets out a contented sigh under your ministrations, her eyes losing focus as she sinks deeper into the plush pillows. "Mmm... that feels nice, papi," she mumbles, her hand lazily tracing circles on your chest, her eyes fluttering closed.
Caught in the afterglow of a night of debauchery with the sultry singer, sleep comes easily, the taste of Mariselle lingering on your tongue, her scent wrapping around you like a sensual blanket.](if:(count:$events,"orgasm") is 1)[In the aftermath of your wild lovemaking session, you both collapse onto the bed, chests heaving, bodies soaked with sweat and slick with sticky cum. Mariselle lies next to you, her curvaceous body still trembling from the aftershocks of her orgasm, her caramel skin glistening with a sheen of your seed. Ropey streaks of your cum paint her sumptuous ass, the creamy liquid trickling down to her puckered hole.
Mariselle shifts, drawing a sharp breath as she feels your cum seep down her skin. Her hair sticks to her sweat-soaked forehead, her lips still painted a lascivious red.
"Mierda, look at this mess," she chuckles, her fingers absently tracing a thick smear of cum on her ass cheek. "I swear, these sheets are going to need professional cleaning."
She props herself up against the pillows, her magnificent, cum-coated tits resting against her abdomen in an enticing display. They shift as she heaves a sigh of satisfaction, her eyes twinkling in the low light.
"That was... well, you lasted longer than most, guapo. Not too bad." She smirks and rolls over, her ass painted with your essence. "Now, you better get dressed. Miguel is waiting downstairs to drop you off."
Your heartbeat thunders in your ears, the reality of the situation crashing down on you like a wave. Without another word, you slip out of the drenched bed and collect your clothes, glancing back at Mariselle one last time. Her smoky gaze meets yours, an unreadable smile on her lips.
Downstairs, the reliable figure of Miguel is waiting, his stoic demeanor a stark contrast to the debauchery that happened upstairs. Climbing into the SUV, you take one last look at Mariselle's mansion before the vehicle pulls away.
From Mariselle's bed to the cold comfort of Miguel's SUV, you've tasted the height of Summer City's hedonistic pleasures, a night with the sultry Mariselle that you'll never forget. As for her, she seems non-committal about a repeat performance. Only the future can tell if you'll ever be back between those satin sheets, sharing another wild, cum-soaked night with Summer City's sex siren.](else-if:(count:$events,"orgasm") < 1)[As the thick haze of orgasmic afterglow slowly dissipates, you find yourself sprawled across a cum-soaked bed, your breaths tangled with Mariselle's in the heavy silence. You turn to her, her curvaceous body a seductive terrain of sinful curves glowing with sweat and seed. Your cum paints an obscene graffiti over her luscious ass, thick ropes trickling down her thighs, pooling on the ruined sheets. The musky aroma of your afterglow fills the room, a potent reminder of your frenzied debauchery.
However, as you look down at Mariselle, you notice her eyes are still glowing with unspent lust, her plump lips are set in a frustrated frown. She swears softly under her breath, one hand absently tracing the path of your cum down her thigh.
"Dios," she laments, her voice a sultry whisper laced with discontent. "I'm so fucking worked up." Her fingers dig into the sheets, pulling them from underneath her. "I'm going to have to take care of myself now." The mix of disappointment and annoyance in her eyes contradicts the satisfied smirk playing on her lips.
With a huff, Mariselle swings her legs off the bed, standing up in her naked glory. She gives you one last provocative glance before sashaying towards the bathroom, her cum-sticky ass bouncing with each step, the sight making your already spent cock twitch.
"Miguel is waiting for you downstairs," she calls over her shoulder, her voice echoing against the marbled walls.
You watch as she disappears, the bathroom door closing behind her with a soft click, leaving you alone in the remnants of your lustful escapade. You feel a pang of disappointment mixed with the physical high of your orgasms – the bitter-sweet aftermath of a sexually charged encounter. Pushing aside the unfulfilled sensation, you gather your clothes strewn across the room, dressing in awkward silence
Outside, the mammoth figure of Miguel, her bodyguard, waits with stoic patience. His impassive gaze disdainfully sweeps over your disheveled state as he ushers you into the SUV. You sink into the comforting leather seat, the rumble of the engine jostling the vehicle as you embark on the homeward journey. The city's nightlife is still alive, glowing under neon lights and buzzing with untamed energy.
Mariselle gave you a night of debauchery and raw, primal satisfaction. But you couldn't satisfy her back. It will be a lesson and a memory for you, a night that taught you that even the most iconic dream divas are just as human as the rest of us.](else-if:(count:$events,"orgasm") is 2)[As you both bask in the afterglow, you can't help but appreciate the carnal masterpiece you have created together. Mariselle is sprawled next to you, her breathing still labored from her climaxes. The room echoes with the faint scent of sex and sweat, a testament to the raw, animalistic pleasure you just shared.
Your eyes roam over her - big, plump ass glistening with your sticky cum, her own cum coating her thighs. Thick ropes of your seed snake down her curvy body, trickling down to her asshole and staining the bed with a bleachy aroma. Your cum is everywhere, painting her velvety skin, the fruits of your joined debauchery.
She turns to you, a satisfied smirk on her beautiful face. "Dios, that was... fucking incredible, papi," she murmurs, her hands brushing through her messy hair. She laughs, a low, rich sound that courses through you like a delicious shiver.
"You certainly know how to use that massive cock of yours," she teases, biting her lower lip. She leans over, planting a soft, lingering kiss on your cheek. Her lips are warm, a stark contrast to the stickiness of your bodies.
Her movements are fluid and languid, her body still thrumming with the aftershocks of her orgasms. She groans as she gets up, glancing at the wetness trickling down her leg. "Mierda... that's a whole lot of cum," she grins.
As she saunters off to the bathroom, you can't help but admire the sight her cum-glossed ass makes, the light bouncing off her wet skin. Her ass sways tantalizingly, a sensual tease that promises future delights.
"Miguel is waiting for you downstairs, but take your time. And don't worry," she turns, her eyes smoldering in the dim light. "You are always welcome back to enjoy... everything," she coos, a blatantly provocative invitation that leaves you throbbing all over again.
In the end, all you're left with is the sight of Mariselle, her once-glamorous hair tousled around her face, cum glistening on her jaw, her ass a heavenly tease as she disappears into the bathroom.
Miguel, her hulking bodyguard, doesn't bat an eye when he escorts you out to the SUV.](else:)[Both of you lie next to each other, your bodies practically flushed from the intense, orgasm-filled sex session. Mariselle's curvaceous body glows in the dim light of the room, slick with sweat and cum, strands of your seed artfully adorning her voluptuous figure. Thick ropes of your cum coat her plump ass, some trickling down towards her tight asshole, creating a mixture of lewd juices that stain the sheets beneath you.
Her glossy, mahogany hair is splayed around her face, framing her satiated expression - a look of deep contentment and satisfaction playing on her lips. She giggles, a soft, breathy sound that still manages to send tingles down your spine. Mariselle reaches back to her drenched ass, running her fingers over the cum-coated globe, scooping some on her fingers. She brings her hand to her lips, her tongue darting out to taste the sticky white substance. She makes a show of it, swirling her tongue around her fingers and swallowing suggestively while locking her gaze with yours in a sultry stare.
"Bien hecho, guapo," she purrs, the compliment rolling off her tongue like sweet honey. "I was going to ask Miguel to drive you home, but..." She trails off, a mischievous glint in her eyes, "It's late, and I'd like you to stay. If you want, of course." It's barely a question, more of a sultry invitation, a promise of more debauched delight, and you take it gladly.
In response, she yelps in delight, pulling you back onto the bed. The movement is swift and playful; she has you pinned beneath her, her voluptuous body crushing against yours. She situates herself on your face, her cum-coated ass covering your face, a wicked giggle escaping her lips.
Your laughter blends with hers as you protest her cheeky gesture, flipping you both and sending her sprawling on the cum-soaked sheets and the plush pillows. Your playful banter is interrupted by a knock on the door, a voice asking if everything's all right.
"Todo está MUY BIEN, Miguel!" Mariselle replies in between breathless giggles, her Spanish accent thick. Her words, filled with the lingering heat of sexual satisfaction, send a thrill down your spine. After Miguel's footsteps retreat, silence descails the room once again, punctuated by the occasional giggle and sigh from your companion.
The two of you share the warmth of shared satisfaction, the glow of post-coital bliss. The night drifts from a buzz of neon-lit frenetic energy to a sensual lull. Mariselle nuzzles into your chest, falling asleep to the roll of waves crashing against the beach and the faint echoes of distant night birds. Lulled by the hum of these sounds and the steady rhythm of your shared breaths, you drift into a deep, contented slumber—embraced by the erotic hangover of this hedonistic night with the sultry belle of Summer City.]($play:"ambience","car ambience")(if:(count:$events,"orgasm") is 2)[(if:$global_events contains "mariselle pass")[As the SUV pulls away from the mansion, Miguel drives in comfortable silence. This wasn't your first time leaving Mariselle's bed, and if everything goes according to plan, it wouldn't be your last. The once strange and intimidating figure of Miguel has become a familiar presence, signaling the end of a night drenched in Mariselle's carnal pleasures.
"You're getting good at this," Miguel comments, breaking the silence. There's a note of familiarity in his tone, underscored with a hint of approval. "Remember, we pick you up from The Electric Pickle every Friday."
His words echo in the peaceful quiet of the vehicle. The ride, the process, and the expectations are no longer new. From the mind-melting sex with Mariselle to the drive back with Miguel, it’s becoming, in a strange way, a routine.
Still, despite the routine, every encounter with the sultry singer is an adventure of its own. Mariselle, with her intoxicating charm and insatiable sexual appetite, keeps every encounter fresh, exciting, and deeply erotic. The memory of her hot body writhing on top of you, the taste of her on your tongue, and the sound of her lusty moans echoing in your ears, never fail to make your heart pound and your blood rush southward.
As the SUV pulls up to your place, you gather your thoughts, your body still humming with post-coital satisfaction. You take one last look at Miguel, his stoic face a stark contrast to the wild night you just had.
"See you next Friday, Miguel," you say, stepping out into the cool night air.
"Looking forward to it," Miguel says, a rare smile playing on his lips.](else:)[(set:$global_events to it + (a:"mariselle pass"))"You did well, kid," he says, glancing at you through the rear-view mirror. There's a hint of approval in his eyes, a silent acknowledgment of your performance with Mariselle.
You feel a rush of heady satisfaction mixed with a hint of disbelief. The veiled praise from the stoic bodyguard is as good as an open compliment, a sign that you genuinely pleased the sultry singer. Maybe that’s why the drive back doesn’t feel as long, despite you leaving the bed of arguably the hottest woman in Summer City.
Miguel clears his throat, breaking the comfortable silence. "She... appreciates you. That's rare." He adds, his eyes trained on the road ahead.
"But, listen here. Just because she wants you back doesn't mean she wants a relationship. Mariselle... she enjoys the company, the pleasure. But love? That's not her style." he explains, his tone matter-of-fact.
"Every Friday. If you wish to continue - come to The Electric Pickle. I'll pick you up. Don't be late. Don't expect too much. And don't... don't hurt her."
Miguel's words echo in the quiet of the SUV. His advice is straightforward, his warnings clear. The ground rules are set, and expectations are outlined. Mariselle's world is one of hedonistic pleasures and fleeting encounters, a realm where emotions are checked at the door.
And yet, despite the looming unknown and the strict rules, you find yourself drawn to it, the taste of Mariselle’s sultry lips still fresh in your memory, the echo of her husky moans still ringing in your ears, and the promise of future debauched nights, of the sweet sin that is Mariselle, keeping your hopes high for the next Friday at The Electric Pickle.
]](else-if:(count:$events,"orgasm") is 1)[As the city's lights blur past the tinted windows, Miguel's gruff voice cuts through the silence. "Hope you enjoyed your time with Mariselle. But that was it. Understand?"
There's a stern edge to his tone that makes it clear that this isn't a discussion. It's a command. A warning. A final statement. You feel a pang of disappointment but you understand. Mariselle is a woman of her own rules. A goddess untamed. And you, just a star that shot across her pleasure-filled nights.
"I'm not saying you were bothersome," he continues, his eyes focused on the road ahead. "But if you try to be clingy or bother her again, you will hear from me."
You simply nod. There's no use arguing. You know the score. Nights like these are rare, fleeting moments of bliss that fizzle out as quickly as they ignite. You don't want to be that guy to taint it with clinginess or desperation.
Then you're home, back at your quaint abode nestled in the residential Palm Grove neighborhood, the debauchery of the night a stark contrast to the peace and simplicity of your everyday life.
As you step out of the SUV, you can’t help but glance back at Miguel, his stoic countenance unchanged. "Goodnight,” he grunts, before driving off, leaving you alone with your memories of the extravagant night.
You feel a stinging pang of bittersweet disappointment. Had you failed to make a memorable impression on her? If that were the case, then the experience stung more painfully than you were ready to admit. But dwelling on it wouldn't change anything. You had your night with Mariselle, a memory to be relived in hushed whispers and wet dreams. That was all you had - and maybe, that was all you were meant to have.
Retiring to your bed, you replay the night's debauched pleasures over and over until sleep finally sweeps you off into a world of dreams filled with Mariselle's moans and the scent of her arousal. A good memory, indeed. One for the books. A tale of a night when you were in bed with Summer City's popstar queen, Mariselle – she who rules the night.(set:$global_events to it - (a:"mariselle pass"))](else:)[As the SUV speeds through the deserted streets, Miguel breaks the silence. In the dim light from passing street lamps, the lines on his face appear more pronounced, his expression stern.
"Hope that you enjoyed your time," he says, his voice gruff but not unkind. There's a sobering seriousness in his tone that sobers your post-orgasmic haze. "But that..."
He pauses, his gaze shifting from the rear-view mirror to meet yours.
"That was the last time. If you try to get clingy or pester Mariselle again..." He lets the threat hang in the air, unspoken yet clear as day.
You nod in understanding, silent for a moment before managing a small smile. "Fair enough."
Satisfied, Miguel focuses his attention back on the road, his posture slightly relaxed. The rest of the ride unfolds in silence, the towering palm trees of your neighborhood welcoming you home. The SUV comes to a halt in front of your house, the lights casting long shadows on your lawn.
"Take care," Miguel says, his voice devoid of any malice. Despite his earlier words, there is a certain respect in his tone - the kind bred out of a shared, unique experience.
As you step out of the SUV and head towards your house, the night seems somehow quieter, the stars a little less bright. It's a bittersweet ending, you think, closing the door behind you. But fair, nonetheless.(set:$global_events to it - (a:"mariselle pass"))]<div class='options'>(link:"Return home.")[(goto:"advance day")]</div>{(display:"next day")(set:$current_location to "Mariselle's Mansion")(display:"location and time")}(print:"<img class='greyborder' src='img/npc/girls/mariselle/house/morning.jpg' width=100% height=auto>")The morning sun is already painting the sky in strokes of pinks and oranges by the time you stir, the warmth of Mariselle's body beside you more inviting than any luxurious bed. Her eyes flutter open, dark orbs twinkling with mischievous satisfaction as she purrs a soft, “Buenos días, guapo.”($play:"ambience","outdoors ocean dawn ambience")
There's a languid stretch, her voluptuous body perking up as she rolls out of bed, her naked form a goddess against the morning light. She shuffles into the en-suite bathroom, her plump ass swaying invitingly.
A soft, "Are you coming?" floats over to you, and you follow her like a moth to flame.
The hot shower is indeed a delightful sensation, every droplet a tiny caress washing away the remnants of the night before. Mariselle stands under the spray, moonlight-colored water sluicing down her divine contours, a sight that makes your heart flutter and your cock stiffen.
There's no time for round two, however. A sultry kiss and playful squeeze later, you both step out of the shower, the scent of shared soap a faint memoir of your shared intimacy. As she wraps herself in a fluffy towel, Mariselle motions towards her personal chef, who's already preparing a breakfast spread fit for a king.
You sit on the balcony, the breakfast table offering a panoramic view of the ocean. The salty tang of the sea breeze and sizzling bacon wafts in the air as you sit down to eat. Luxuriating in the morning sun's warm rays, you savor the delightful treat of fluffy pancakes, exotic fruits, and mouthwateringly succulent bacon, paired with a steaming cup of Cuban coffee.
Mariselle lounges beside you, a makeshift sarong barely covering her luscious body. She sips her coffee, her gaze far-off, lost in the serene sight of the sun-kissed ocean. The ocean ripples in response to the golden hue of the morning sun, the waves gently lapping against the beach - a symphony of tranquility.
“I slept so well last night,” Mariselle murmurs, nudging you with a playful smirk, “Thanks for the incredible workout.”
You both chat idly, sharing stories and savoring the moment. Time seems to slip by unnoticed, and before long, Mariselle’s glancing at her diamond-encrusted watch. “I have a recording studio session, and Miguel will drive you home,” she announces.
As you wave goodbye to her from the SUV, you can’t help but look back at the mansion receding in the distance - a symbol of a night's decadent adventure that you’ll remember for a long time. As you lean back into the plush seat, you can't help but sigh, knowing that you started your day the best way possible - with the breathtaking sight of Mariselle, the sun rising over the ocean, and a delicious breakfast in your belly.(set:$global_events to it + (a:"mariselle pass"))<div class='options'>(link:"Return home.")[(goto:"advance day")]</div>{(if:$type is "creampie" and $npc's "traits" contains "no pill")[
(if:$npc's "traits" contains "bitch")[
"(twirl:
"Are you fucking KIDDING me? You came inside?! Bruce is going to literally murder us both.",
"Oh my god, you stupid fuck. Bruce is going to find out about this and now I've got your cum inside me.",
"I can't believe you just... FUCK. Do you know what Bruce will do if I get pregnant?",
"You absolute moron... Bruce is going to lose his shit when he finds out about this.",
"This is so fucked up. Bruce is going to kill you if I end up pregnant.")"
(set:$gain_attraction to -15)
(set:$gain_friendship to -10)
(set:$gain_respect to -10)
(set:$gain_dom to -5)
(display:"change relationship")
](else-if:$npc's "traits" contains "religious")[
"Oh Lord... oh no..." She starts tearing up. "(twirl:
"How could you? Bruce will... and I might... oh God...",
"I've sinned so terribly... betrayed Bruce AND let you... inside...",
"This is wrong on so many levels... Bruce trusted me and now...",
"Please leave... I need to pray... and figure out what to do...",
"What have I done? Bruce will never forgive this sin...")"
(set:$gain_attraction to -10)
(set:$gain_friendship to -15)
(set:$gain_respect to -5)
(set:$gain_dom to -5)
(display:"change relationship")
](else:)[
"(twirl:
"Oh shit... oh shit... Bruce is going to absolutely lose it.",
"I can't believe you just did that... Bruce is going to find out...",
"God, what am I going to do? Bruce can't know about this...",
"This is bad... this is really bad... Bruce will kill us both...",
"Why did you...? Bruce is much careful about this stuff...")"
(set:$gain_attraction to -12)
(set:$gain_friendship to -8)
(set:$gain_respect to -8)
(display:"change relationship")
]
](else-if:$satisfaction < 5)[
(if:$npc's "traits" contains "bitch")[
(if:$stage > 2)[
"(twirl:
"Wow. I betrayed Bruce for... that? What a fucking joke.",
"And here I thought you might actually be competition for Bruce. What a waste of my time.",
"Now I see why Bruce just laughs at guys like you. That was pathetic.",
"I can't believe I risked Bruce's wrath for such a disappointing dick.",
"God, Bruce would be laughing his ass off if he knew how bad you were.")" (nl:2)
"(twirl:
"Just... get out. And don't you dare tell anyone about this embarrassment.",
"Leave. Now. This never happened.",
"This was a mistake. A huge, disappointing mistake.",
"Just forget this ever happened. I know I will.",
"Bruce can never know I lowered myself to... this level.")"
](else:)[
"(twirl:
"Oh my god, you couldn't even seal the deal? Bruce would never...",
"Wow, you talk big for someone who can't even follow through.",
"And you thought you could compete with Bruce? What a joke.",
"This is just sad. Bruce would never leave me hanging like this.",
"I can't believe I even considered this. Bruce is clearly superior.")"
]
(set:$gain_attraction to -8)
(set:$gain_friendship to -4)
(set:$gain_respect to -10)
(set:$gain_dom to -5)
(display:"change relationship")
](else-if:$npc's "traits" contains "religious")[
(if:$stage > 2)[
"(twirl:"Oh Lord... I've sinned for... this?")" She looks genuinely distressed. "(twirl:
"Bruce would never disappoint me like this... this is my punishment...",
"I betrayed Bruce's trust for such... mediocrity...",
"This must be God's way of punishing me for betraying Bruce...",
"I feel so ashamed... Bruce deserves better than this...",
"I've compromised my values for... nothing...")"
](else:)[
"(twirl:
"Maybe this is a sign... that I should've stayed faithful to Bruce...",
"I shouldn't have let temptation lead me astray from Bruce...",
"Bruce would never leave things... unfinished like this...",
"This is God's way of telling me to stay with Bruce...",
"I should never have doubted Bruce's... capabilities...")"
]
(set:$gain_attraction to -6)
(set:$gain_friendship to -8)
(set:$gain_respect to -6)
(set:$gain_dom to -4)
(display:"change relationship")
](else-if:$npc's "traits" contains "slut")[
(if:$stage > 2)[
"(twirl:
"Seriously? That's all you got? No wonder Bruce isn't worried about guys like you.",
"Well that was fucking disappointing. Bruce gives way better dick than that.",
"Wow, you really talked yourself up just to give me... that?",
"And you thought you could compete with Bruce? That's actually hilarious.",
"Yeah... I think I'll stick with Bruce's superior cock, thanks.") (twirl:
"Bruce never leaves me this unsatisfied. This was such a waste.",
"At least Bruce knows how to make a girl cum. This was pathetic.",
"Don't worry about Bruce finding out - this wasn't even worth mentioning.",
"Bruce would laugh if he knew how disappointing you were.",
"Now I remember why I let Bruce claim me in the first place.")"
](else:)[
"(twirl:
"All that big talk and you couldn't even get it up properly? Bruce would never...",
"Wow, you're not even in Bruce's league, are you?",
"This is actually sad. Bruce has ruined me for lesser men.",
"No wonder Bruce isn't threatened by guys like you.",
"Yeah... I think I'll stick to Bruce's guaranteed satisfaction.")"
]
(set:$gain_attraction to -10)
(set:$gain_friendship to -5)
(set:$gain_respect to -8)
(set:$gain_dom to -6)
(display:"change relationship")
](else:)[
(if:$stage > 2)[
She looks genuinely disappointed. "(twirl:
"Oh... I thought... never mind. Bruce would never leave me wanting like this.",
"I risked everything with Bruce for... this? That was a mistake.",
"I can't believe I let you talk me into betraying Bruce for... that.",
"Bruce deserves better than this... than me cheating for such mediocrity.",
"I feel awful... Bruce would never disappoint me like this...")"
](else:)[
"(twirl:
"Maybe this is a sign I should stay loyal to Bruce...",
"I can see now why Bruce isn't worried about other guys...",
"This just proves Bruce is the better man...",
"I shouldn't have doubted Bruce's... superiority...",
"Bruce would never leave things unfinished like this...")"
]
(set:$gain_attraction to -7)
(set:$gain_friendship to -6)
(set:$gain_respect to -7)
(set:$gain_dom to -4)
(display:"change relationship")
]
](else-if:$satisfaction > 8)[
(if:$npc's "traits" contains "bitch")[
She's breathing heavily, clearly impressed despite herself. "(twirl:
"Holy fuck... Bruce is going to be so pissed when he finds out how good that was.",
"Goddamn... I hate to admit it, but you just put Bruce to shame.",
"Shit... I've never cum that hard with Bruce. Never. Fuck...",
"Jesus... you just ruined Bruce's dick for me. Completely ruined it.",
"Fuck me... Bruce is going to lose his mind when he realizes what he's up against.") (twirl:
"We're definitely doing this again. Bruce can go fuck himself.",
"Bruce thinks he owns this pussy, but you just claimed it properly.",
"I don't even care if Bruce finds out. That was worth it.",
"Bruce is going to notice something's different when he fucks me next...",
"God... how are you so much better than Bruce? This is crazy.")"
(set:$gain_attraction to 12)
(set:$gain_friendship to 6)
(set:$gain_respect to 8)
(set:$gain_dom to 6)
(display:"change relationship")
](else-if:$npc's "traits" contains "religious")[
She's flushed and panting, clearly conflicted. "(twirl:
"Oh my goodness... I've never... not even with Bruce...",
"Lord forgive me, but... that was incredible... Bruce has never...",
"I feel so wicked saying this, but... you've shown me what I've been missing...",
"This is such a sin, but... Bruce has never made me feel like that...",
"Heaven help me... I've never experienced pleasure like this...")" (nl:2)
"(twirl:
"I know it's wrong, but... when can we do this again?",
"Bruce will never forgive me, but... I need more of this...",
"I've never felt so... fulfilled. Not even with Bruce...",
"This is such a terrible sin, but it feels so right...",
"Bruce could never compare to... what you just did to me...")"
(set:$gain_attraction to 10)
(set:$gain_friendship to 4)
(set:$gain_respect to 6)
(set:$gain_dom to 4)
(display:"change relationship")
](else-if:$npc's "traits" contains "slut")[
She's sprawled out, completely satisfied. "(twirl:
"Holy fucking shit... Bruce who? That was fucking incredible!",
"Damn daddy, you just showed me what I've been missing with Bruce.",
"Bruce thinks he's hot shit, but you just put him in his place.",
"I thought Bruce was good, but you just showed me what good REALLY is.",
"Fuck YES! You just ruined Bruce's cock for me completely.")" (nl:2)
"(twirl:
"We are DEFINITELY doing this again. Bruce can suck it.",
"Bruce is going to be so mad when he finds out how good you fucked me.",
"I don't even care if Bruce knows. That dick is worth the drama.",
"Bruce better step up his game after this...",
"Fuck... how am I supposed to go back to Bruce's dick now?")"
(set:$gain_attraction to 15)
(set:$gain_friendship to 8)
(set:$gain_respect to 10)
(set:$gain_dom to 8)
(display:"change relationship")
](else:)[
She's trying to catch her breath, looking amazed. "(twirl:
"I... I can't believe how good that was. Better than Bruce...",
"That was... wow. Bruce has never made me feel like that.",
"I feel guilty saying this, but... you're so much better than Bruce.",
"I didn't know it could feel this good. Bruce never...",
"Oh god... Bruce is going to be so angry, but... that was worth it.")" (nl:2)
"(twirl:
"I know I shouldn't, but... I want to do this again.",
"Bruce will be so mad if he finds out, but I don't even care.",
"You've completely ruined me for Bruce's... attention.",
"How am I supposed to go back to Bruce after this?",
"I feel awful for betraying Bruce, but... you're just so much better...")"
(set:$gain_attraction to 10)
(set:$gain_friendship to 5)
(set:$gain_respect to 7)
(set:$gain_dom to 5)
(display:"change relationship")
]
](else:)[
(if:$npc's "traits" contains "bitch")[
She seems satisfied but conflicted. "(twirl:
"Mmm... not bad. Different from Bruce, but not bad.",
"Well, you actually held your own. Bruce might have competition.",
"Okay, I see why you were so confident. Almost as good as Bruce.",
"Not quite Bruce's level, but... you've got potential.",
"Hmm... you actually made me cum. Bruce won't like that.")" (nl:2)
"(twirl:
"Don't get cocky though. Bruce still owns this pussy.",
"This was fun, but Bruce better not find out.",
"I might let you have another shot... if Bruce doesn't find out.",
"Bruce would be pissed if he knew, but... it was worth it.",
"Just keep this between us. Bruce doesn't need to know.")"
(set:$gain_attraction to 6)
(set:$gain_friendship to 3)
(set:$gain_respect to 4)
(set:$gain_dom to 2)
(display:"change relationship")
](else-if:$npc's "traits" contains "religious")[
She looks guilty but pleased. "(twirl:
"Oh my... that was... different from Bruce. Good different.",
"I shouldn't compare, but... you're quite skilled too.",
"Lord forgive me... but I enjoyed that almost as much as Bruce.",
"This is so wrong... but you're actually quite good.",
"I shouldn't say this, but... you're nearly as good as Bruce.")" (nl:2)
"(twirl:
"Bruce can never know about this... but thank you.",
"I feel so guilty... but I don't entirely regret it.",
"This was a sin... but a surprisingly pleasant one.",
"Please don't tell Bruce... but I enjoyed that.",
"I'll have to pray for forgiveness... but it was worth it.")"
(set:$gain_attraction to 5)
(set:$gain_friendship to 2)
(set:$gain_respect to 3)
(set:$gain_dom to 2)
(display:"change relationship")
](else-if:$npc's "traits" contains "slut")[
She stretches contentedly. "(twirl:
"Mmm, you definitely know what you're doing. Nearly as good as Bruce.",
"Not bad, stud. Bruce might need to watch his back.",
"Different style than Bruce, but I'm not complaining.",
"Ooh, you actually made me cum. Bruce won't like hearing that.",
"Pretty good... Bruce still has the edge, but you're close.")" (nl:2)
"(twirl:
"We should do this again... just don't tell Bruce.",
"Bruce would be pissed, but that was worth it.",
"Keep this our little secret and maybe we'll do it again.",
"That was fun... but Bruce better not find out.",
"I wouldn't mind another round... if Bruce doesn't know.")"
(set:$gain_attraction to 8)
(set:$gain_friendship to 4)
(set:$gain_respect to 5)
(set:$gain_dom to 3)
(display:"change relationship")
](else:)[
She seems pleasantly surprised. "(twirl:
"That was... really nice. Different from Bruce, but nice.",
"I feel guilty, but... that was actually really good.",
"You're... almost as good as Bruce. Maybe even better...",
"That was better than I expected. Not quite Bruce, but...",
"Oh wow... Bruce might actually have competition.")" (nl:2)
"(twirl:
"Just... don't tell Bruce about this, okay?",
"I shouldn't have done this... but I'm glad I did.",
"Bruce would be so angry... but that felt amazing.",
"This has to stay between us... but thank you.",
"I feel bad about Bruce... but you made me feel so good...")"
(set:$gain_attraction to 6)
(set:$gain_friendship to 3)
(set:$gain_respect to 4)
(set:$gain_dom to 2)
(display:"change relationship")
]
]}(display:"girl sex add stats")(set:$sex_loop_continue to "false"){(set:$character's "arousal" to 0)(display:"refresh stats")(set:$satisfaction to 0)(if: (count:$events,"orgasm") is 1)[(set:$satisfaction to 5)](if: (count:$events,"orgasm") is 2)[(set:$satisfaction to 8)](if: (count:$events,"orgasm") > 2)[(set:$satisfaction to 10)](if: (count:$events,"orgasm") is 0)[(if:$stage < 3)[(set:$satisfaction to 0)](if:$events's length > 8)[(set:$satisfaction to 4)]](if:$type is "creampie" and $npc's "traits" contains "no pill")[(set:$satisfaction to (floor:$satisfaction / 2))](if:$satisfaction < 5)[(print:"<img class='greyborder'
src='img/npc/girls/" + (text:"id" of $npc) + "/sex/post/bad.jpg' width=100% height=auto>")(set:$select to "unhappy")](else-if:$satisfaction > 7)[(print:"<img class='greyborder'
src='img/npc/girls/" + (text:"id" of $npc) + "/sex/post/good.jpg' width=100% height=auto>")(set:$select to "happy")](else:)[(print:"<img class='greyborder'
src='img/npc/girls/" + (text:"id" of $npc) + "/sex/post/normal.jpg' width=100% height=auto>")(set:$select to "normal")](display:"girl update npc image")
($notification_still:"Her satisfaction: " + (text:$satisfaction) + "/10")(if:$satisfaction > 9)[(display:"girl loosen bruce hold")]}(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl sex aftermath mariselle")](else-if:(checkdm:$npc,"id","is","alexia"))[(display:"girl sex aftermath alexia")](else:)[(if:$satisfaction > 8)[(set:$new_mood to (dm:
"mood","super confident",
"emoji","🤩",
"strength",10,
"length",4,
"cause",(cond:$time_events contains "bruce steal","since you stole Bruce's girl and made her cum so many times!","since you had great sex, and made your partner cum so many times."),
"charm buff",2,
"intellect buff",1
))(display:"new mood")(display:"refresh stats")](else-if:$satisfaction > 4)[(set:$new_mood to (dm:
"mood","really confident",
"emoji","😎",
"strength",10,
"length",4,
"cause","since you had great sex, and made your partner cum.",
"charm buff",2,
"intellect buff",0
))(display:"new mood")(display:"refresh stats")](else:)[(set:$new_mood to (dm:
"mood","confident",
"emoji","😏",
"strength",10,
"length",4,
"cause","since you banged a smoking hot babe!",
"charm buff",1,
"intellect buff",0
))(display:"new mood")(display:"refresh stats")]
{(set:$npc_select to $npc's id)(if:$npc_select is "alexia")[(set:$npc_select to "stepsis")]
(if:$time_events contains "bruce steal")[(display:"girl sex aftermath bruce steal")](else:)[(if:$npc's "traits" contains "slut")[
(if:$type is "creampie" and $npc's "traits" contains "no pill")[
"(twirl:"Fuck, goddammit! You really just did that, didn't you??",
"God, you really fucked things up by cumming in me.",
"Jesus, I just can't believe you did that and fucking CAME in me.",
"God you're SUCH an asshole, you really came inside me!",
"I can't believe you came inside me!")
(twirl:"Just get lost, ok?",
"Just leave me alone, ok?",
"Get out of my face!",
"Get out, loser!")"
(set:$gain_attraction to -15)
(set:$gain_friendship to -15)
(set:$gain_respect to -15)
(display:"change relationship")
](else:)[
(if:$satisfaction < 5)[
"(twirl:"Well, that was pretty underwhelming, if we're being honest.",
"You'll have to do a lot better than that to impress ME.",
"Not the best I've had, that's for sure. I've had a lot though - haha.",
"That was pretty meh honestly, sorry.")
(twirl:"Anyhow, feel free to wash up before you head out.",
"Now, get out so I can finish myself off.",
"You can show yourself out, I hope? I am going to finish myself off - I never even came. And I cum easily, too! Shame on you, haha.")"
(set:$gain_attraction to -1)(set:$min_attraction to -3)
(display:"change relationship")
](else-if:$satisfaction > 7)[
"(twirl:"Damn, boy! That was amazing. You're like world championship of fucking material.",
"Credit where credit's due - wow. You're good. Like, I haven't cum like that in a LONG time.",
"Fuckkkk! That was so GOOD. I thought *I* was the experienced one here.",
"Fuck you're good. Dammit. It's rare to find a guy who's NOT useless in the sack!")
(twirl:"Let's do this again sometime.",
"I'm down to get fucked by you anytime, haha. If you make me cum like that!",
"I came so hard... fuck... that was great.",
"Cumming like that... over and over... made me feel like a virgin again, haha.")"
(set:$gain_attraction to 6)
(set:$gain_friendship to 3)(set:$max_friendship to 12)
(set:$gain_respect to 2)
(display:"change relationship")
](else:)[
"(twirl:"Mmm, not bad.",
"Mmm, that was pretty good, not gonna lie.",
"Not bad, boy, not bad.",
"Hehe, mmm. Not bad.")
(twirl:"I think I could've cum again, but I'm sure you'll try even harder next time, hehe.",
"I came pretty hard.",
"Anyone who can make me cum is ok in my book.")"
(set:$gain_attraction to 4)(set:$max_attraction to 12)
(set:$gain_friendship to 1)(set:$max_friendship to 9)
(display:"change relationship")
]
]
](else-if:$npc's "traits" contains "bitch" or $npc's "traits" contains "feminist")[
(if:$type is "creampie" and $npc's "traits" contains "no pill")[
"(twirl:"Fuck, what am I gonna do?",
"God, you really fucked things up by cumming in me.",
"Jesus, I just can't believe you did that and fucking CAME in me. Asshole.",
"God you're such an asshole.",
"I can't believe you came inside me!")
(twirl:"Just get lost, ok?",
"Just leave me alone, ok?",
"Get out of my face!",
"Get out, loser!")"
(set:$gain_attraction to -20)
(set:$gain_friendship to -20)
(set:$gain_respect to -20)
(display:"change relationship")
](else:)[
(if:$satisfaction < 5)[
"(twirl:"Well, that was pretty underwhelming.",
"Not exactly impressed with your 'abilities', mister.",
"Not the best I've had, that's for sure.",
"That was pretty meh.")
(twirl:"Anyhow, feel free to wash up before you head out.",
"Now, get out so I can finish myself off.",
"You can show yourself out, I hope? I am going to finish myself off - I never even came.")"
(set:$gain_attraction to -2)(set:$min_attraction to -6)
(set:$gain_respect to -2)(set:$min_respect to -6)
(display:"change relationship")
](else-if:$satisfaction > 7)[
"(twirl:"Damn, boy! That was amazing.",
"Credit where credit's due - wow. You're good.",
"Fuckkkk! That was so hot.",
"Fuck you're good. Dammit. It's rare to find a guy who's NOT useless in the sack!")
(twirl:"Let's do this again sometime.",
"I'm down to get fucked by you anytime, haha. If you make me cum like that!",
"I came so hard... fuck...")"
(set:$gain_attraction to 4)
(set:$gain_friendship to 1)(set:$max_friendship to 8)
(display:"change relationship")
](else:)[
"(twirl:"Mmm, not bad.",
"Mmm, that was pretty good, not gonna lie.",
"Not bad, boy, not bad.",
"Hehe, mmm. Not bad.")
(twirl:"I think I could've cum again, but I'm sure you'll try even harder next time, hehe.",
"I came pretty hard.",
"Anyone who can make me cum is ok in my book.")"
(set:$gain_attraction to 2)(set:$max_attraction to 10)
(display:"change relationship")
]
]
](else-if:$npc's "traits" contains "bimbo")[
(if:$type is "creampie" and $npc's "traits" contains "no pill")[
"(twirl:"Oh my god!","Oh my god!!!","Like, seriously???")
(twirl:"I can't believe you would just, like, CUM in me!",
"Didn't I tell you not to CUM in me??",
"What am I gonna do if you like got me pregnant?",
"You could have just pulled out!",
"Now I'm gonna have to like, try to squeeze it all out! God...")
(twirl:"Just get lost, ok?",
"Just leave me alone, ok?",
"Get out of my face!",
"Get out, loser!")"
(set:$gain_attraction to -10)
(set:$gain_friendship to -10)
(set:$gain_respect to -10)
(display:"change relationship")
](else:)[
(if:$satisfaction < 5)[
"(twirl:"Why didn't that feel so good?",
"Huh, I didn't cum...",
"Why couldn't I cum?",
"I don't think I came...",
"I don't think I even came...")
(twirl:"Are you just not good at like, fucking?",
"I thought you would be really good at sex...",
"I thought you could last longer than that...",
"You didn't last very long.")"
(set:$gain_attraction to -2)(set:$min_attraction to -4)
(display:"change relationship")
](else-if:$satisfaction > 7)[
That (twirl:"dicking down","fuck-fest") has (twirl:"turned this bimbo","reduced this bimbo") into a (twirl:"whimpering","slobbering"), (twirl:"happy","post-orgasmic") (twirl:"wreck","mess").
(twirl:"You have no doubt she'll want to do this again","You get the feeling she'll want to do this again, another day","You have one very happy customer")...
(set:$gain_attraction to 6)
(set:$gain_friendship to 2)(set:$max_friendship to 10)
(set:$gain_respect to 2)
(set:$gain_dom to -2)
(display:"change relationship")
](else:)[
"(twirl:"Mmm, that was pretty good!",
"Mmm, I like how you fucked me.",
"I like how you fucked me, hehe.",
"Hehe, mmm. I liked that.")
(twirl:"Did you have a good time too?",
"I came pretty hard, I think.",
"When I cum, it's hard to think straight, haha.",
"I might have a hard time walking later, hahaha.",
"I hope you liked it. Liked me. Hehe.")"
(set:$gain_attraction to 3)
(set:$gain_friendship to 1)(set:$max_friendship to 8)
(display:"change relationship")
]
]
](else-if:$npc's "traits" contains "kind" or $npc's "traits" contains "religious")[
(if:$type is "creampie" and $npc's "traits" contains "no pill")[
"(twirl:"Oh god, geesh. You really... did it... inside me.",
"Shoot... I can't believe you really did that. Shot... *it*... all inside me.",
"You really... came... inside me.",
"I think I'm gonna cry... you really came inside me...")
(twirl:"I don't know what to do now...",
"Can you leave me alone now, please?",
"Can you... like, go? Do you mind?",
"Do you mind just leaving?")"
(set:$gain_attraction to -12)
(set:$gain_friendship to -12)
(set:$gain_respect to -12)
(display:"change relationship")
](else:)[
(if:$satisfaction < 5)[
"(twirl:"Well I trust you enjoyed yourself?",
"You enjoyed yourself, I hope?",
"I hope you liked that, hehe.",
"Did you like that?",
"I hope you had a good time.",
"It seems like you really enjoyed yourself - I'm glad.")"
(set:$gain_attraction to 1)(set:$max_attraction to 6)
(set:$gain_friendship to 1)(set:$max_friendship to 6)
(display:"change relationship")
](else-if:$satisfaction > 7)[
(twirl:"Her cheeks are rosy - she's absolutely breathless.",
"She's breathing heavily, with a big ol' smile on her pretty face.",
"She just gazes at you happily, in the afterglow.",
"She seems like she REALLY enjoyed what you did to her.")
"(twirl:"I really liked that...",
"That was... REALLY good... like, wow!",
"That was amazing!!",
"That was... incredible. Thank you!!")"
(set:$gain_attraction to 6)(set:$max_attraction to 18)
(set:$gain_friendship to 4)(set:$max_friendship to 18)
(set:$gain_dom to -2)
(display:"change relationship")
](else:)[
"(twirl:"Mmm, that was pretty good!",
"Mmm, I like how you did that. Felt really good.",
"I like how you... do that. You know how to make me orgasm, hehe.",
"Hehe, mmm. I liked that.")
(twirl:"Did you have a good time too?",
"I came... really... hard.",
"When I... came... it was hard to think straight, haha.",
"I might have a hard time walking later, hahaha.",
"I hope you liked it. Liked me. Hehe.")"
(set:$gain_attraction to 3)(set:$max_attraction to 10)
(set:$gain_friendship to 2)(set:$max_friendship to 10)
(set:$gain_dom to -1)
(display:"change relationship")
]
]
](else:)[
(if:$type is "creampie" and $npc's "traits" contains "no pill")[
"(twirl:"Oh god, geesh. You really... did it... inside me.",
"Shoot... I can't believe you really did that. Shot... *it*... all inside me.",
"You really... came... inside me.",
"I think I'm gonna cry... you really came inside me...")
(twirl:"I don't know what to do now...",
"Can you leave me alone now, please?",
"Can you... like, go? Do you mind?",
"Do you mind just leaving?")"
(set:$gain_attraction to -12)
(set:$gain_friendship to -12)
(set:$gain_respect to -12)
(display:"change relationship")
](else:)[
(if:$satisfaction < 5)[
"(twirl:"Well I trust you enjoyed yourself?",
"You enjoyed yourself, I hope?",
"I hope you liked that, hehe.",
"Did you like that?",
"I hope you had a good time.",
"It seems like you really enjoyed yourself - I'm glad.")"
](else-if:$satisfaction > 7)[
(if:$npc's "traits" contains "sporty")[
(twirl:"Her toned, athletic body is slick with sweat.",
"She's smiling so wide.",
"She gives you a big grin.")
"(twirl:"And THAT'S our workout for today, right?",
"That was a workout in itself, haha. I always wonder what's going on in my body when I cum like that. Physiologically, I mean. It's gotta be good for me.",
"Wow, let's 'work out' together again soon, hahaha. That was great!")"
(set:$gain_respect to 2)
](else-if:$npc's "traits" contains "nerdy")[
(twirl:"Her cheeks are rosy - she's absolutely breathless.",
"She's breathing heavily, with a big ol' smile on her cute, nerdy face.",
"She just gazes at you happily, in the afterglow.",
"She seems like she REALLY enjoyed what you did to her.") "(twirl:"I really liked that...",
"That was... REALLY good... like, wow!",
"That was amazing!!",
"That was... EPIC! Thank you!!")"
](else:)[
(twirl:"Her cheeks are rosy - she's absolutely breathless.",
"She's breathing heavily, with a big ol' smile on her pretty face.",
"She just gazes at you happily, in the afterglow.",
"She seems like she REALLY enjoyed what you did to her.")
"(twirl:"I really liked that...",
"That was... REALLY good... like, wow!",
"That was amazing!!",
"That was... incredible. Thank you!!")"
]
(set:$gain_attraction to 4)
(set:$gain_friendship to 2)(set:$max_friendship to 12)
(set:$gain_dom to -2)
(display:"change relationship")
](else:)[
"(twirl:"Mmm, that was pretty good!",
"Mmm, I like how you did that. Felt really good.",
"I like how you... do that. You know how to make me orgasm, hehe.",
"Hehe, mmm. I liked that.")
(twirl:"Did you have a good time too?",
"I came... really... hard.",
"When I... came... it was hard to think straight, haha.",
"I might have a hard time walking later, hahaha.",
"I hope you liked it. Liked me. Hehe.")"
(set:$gain_attraction to 3)
(set:$gain_friendship to 1)(set:$max_friendship to 8)
(set:$gain_dom to -1)
(display:"change relationship")
]
]
]]
}(display:"girl sex aftermath options")](display:"npc pregnancy inseminate logic")(display:"save npc")
(set:$gain to 0)(if:$satisfaction < 4)[(set:$gain to 1)](else-if:$satisfaction < 8)[(set:$gain to 3)](else:)[(set:$gain to 5)](unless:$gain is 0)[(display:"gain masculinity")]
<div class='options'>(link:"Goodbye")[(display:"advance time")]</div>(if:$your_pleasure > $your_pleasure_close and $your_pleasure < $your_pleasure_max)[(if:(twist:1,2) is 1)["(twirl:"I'm getting close,","I'm gonna cum soon!","I'm cumming soon,","I'm getting pretty close,","Nngh... pretty close...","Fuck, I'm pretty close...")" (twirl:"you say","you announce","you tell her").](else:)[(twirl:"You warn her that you're close to cumming.","You tell her that you're close to cumming.","You tell her you're pretty close.")]](else-if:$your_pleasure > $your_pleasure_edge)[(if:(twist:1,2) is 1)["(if:(twist:1,2) is 1)[(twirl:"Oh fuck","Fuck","MMnngh"), ]I'm gonna cum(twirl:"!","...")" (twirl:"You announce.","You say.")](else:)[(twirl:"You tell her you're gonna cum.","You say you're gonna cum.","In keeping with ancient male tradition, you announce you're about to cum.")]](if:$your_pleasure > 7)[(unless:$position is "bj")[(if:$her_pleasure > $her_pleasure_edge)[(nl:2)"(twirl:"Me too!","Oh fuck, me too!")" she (twirl:"squeals","whimpers").](else:)[(nl:2)(display:"girl sex her cum response")]]](set:$events to $events + (a:"her cum response"))(if:$npc's "traits" contains "pill")[(if:(count:$events,"orgasm") is 0)["(twirl:"Already?","Really, already?","Oh my god, already?")" she says.](else:)["(twirl:"You can cum inside me","It's ok to cum inside me","You can cum inside"), (twirl:"I'm on the pill","I'm not gonna get pregnant","I'm taking the pill","I take the pill","I'm on the pill")," (twirl:"she smiles","she says","she says, softly","she says").]](else:)["(twirl:"Just don't cum inside me","Don't cum inside me","You can't cum inside me","Make sure you pull out","Pull out"), (twirl:"I'm not on the pill","I could get pregnant","I might get pregnant")(twirl:",","!")" (twirl:"she says, urgently","she says","she tells you").]{(set:$events to $events + (a:"girl rough sex response"))
(if:(count:$events,"girl rough sex response" is 1))[
(if:$npc's "likes" contains "rough sex")[(if:(twist:1,2) is 1)["(twirl:"Fuck yes!","Nggh, yes!","Fuckkk yes!","MMm yes!") (twirl:"Fuck me just like that!","I like it rough!","JUST like that!","Fuck me hard!","Treat me like your little slut, yes!","Give it to me!")(if:(twist:1,2) is 1)[ (twirl:"Fu- u- u- uck!","Godddd!","Mmmmm!")]" (if:(twist:1,2) is 1)[(twirl:"she squeals","she says","she whimpers","she mewls","she moans").]](else:)[(twirl:"She clearly enjoys being manhandled.","She is obviously loving it.","She seems not to mind how rough you are.","She seems to like being treated this way.")]](else-if:$npc's "likes" contains "gentle sex")[(if:(twist:1,2) is 1)["(twirl:"Oh my gaww- w- ddd...","Oh fuckkk- k-","Oh god, oh god!","Oh my god...") (twirl:"Can you be a little more gentle?","Can you go a little slower?","Could you be a little gentler?","Go easy on me!")"](else:)[(twirl:"She moans loudly","She squeals quite loudly","She's moaning a LOT")(twirl:"-","...") (twirl:"hard to tell if its from pain or pleasure.","hard to tell if she's enjoying it this rough.","it's hard to tell how much she's enjoying being man-handled like this.")]]
]
}{
(set: $your_pleasure_gain to
(cond:
$character's "arousal" > 8, 4,
$character's "arousal" > 6, 3,
$character's "arousal" > 4, 2,
2
)
)
}{
(if:(checkdm:$npc,"id","is","mariselle"))[(display:"girl sex edge interrupt mariselle")](else:)[
(if:$type is "she rough edge")[(twirl:"She's riding you like a total pro...","Fuck she's good at this.","Her pussy clamps down needily on your cock.","Fuck, she's really slamming that ass down!")](else:)[
(if:$position is "riding")[(twirl:"She's riding you like a total pro...","Fuck she's good at this.","Her pussy clamps down needily on your cock.","It's tough to edge when you're not in control...")](else:)[
(twirl:"Her pussy is so fucking tight.","She's so hot...","Damn, she's so fucking sexy.","She's so tight and wet.","Her pussy clamps down on your cock.")]]]
}{
(if:$type is "she rough edge")[(twirl:"Her huge tits threaten to smother you with each bounce.","She grinds her soaked pussy down on your cock, purring like a tigress.","She expertly slams her hips down, her round ass jiggling provocatively.","Her full, shapely thighs grip your hips with unyielding force.","Her sloppy, wet cunt swallows your cock with every descent.","She licks her lips as she bounces on your cock, focused on wrecking you.","Her sultry eyes bore into yours, challenging you to last longer.","She strokes her tits while slamming down on you, her moans wild and unabashed.","Each impact of her fat ass against your hips sends shudders throughout your body.","Her juicy cunt clings to your cock, milking it relentlessly.",
"Fuck, she's slamming that massive ass down on your cock with a gusto that has your brain short-circuiting.",
"Each bounce of her voluptuous ass sends a tidal wave of pleasure coursing through you.",
"Her massive melons jiggling in your face as she rides you is an erotic spectacle that nearly pushes you over the edge.",
"She knows exactly how to clench and unclench her sodden pussy around your cock to drive you wild.",
"She's a seasoned cock-rider, her expert gyrations milking your shaft.",
"Her ass cheeks slam back into your thighs as she takes you in balls-deep, the sound of her bouncing as lewd as it gets.",
"Holy fuck, that sexy pout that she dons as she slams herself on your cock is almost too much.",
"Her irresistible curves make you want to burst as they bounce tantalizingly with each thrust.",
"Her bouncing tits, her glistening sweat-covered body, and her lust-filled eyes are making your control slip.",
"Your cock is buried balls-deep in her and the sensation of her soaked pussy walls clamping down around you is too fucking good.")](else:)[
(if:$position is "riding")[(twirl:"Her moans crescendo with each thrust of her hips.","She steals your breath with each spectacular bounce of her tits.","The lewd slap of her ass against your thighs echoes through her bedroom, each time she descends.","Her wet cunt flexes around you, urging you to spill your seed.","Her talented hips grind into you, swirling and gyrating in a perfect rhythm.","She lets out lustful gasps, her bouncing tits lured by gravity.","Her arms snake around your neck, pulling you into her sweat-slicked body.","The sway of her hips, the world-class choreography of her body pairs perfectly with your cock.","Her tight cunt spirals down your girth, each bounce magnifying her pleasure.","She plants her foot on the bed‘s edge, squat-fucking you mercilessly, her calves like steel springs.","Her dark eyes hold your gaze, full of desire and lust as she grinds her hot cunt down your cock.",
"Each roll of her hips against you brings your rigid cock deeper into the clutching heat of her pussy.",
"The vision of Mariselle riding you, her eyes crossing as she cums, is etched into your mind, making it hard to hold back.",
"Her slick folds grip your cock like a silken vise, milking you with each succulent bounce.",
"The sight of her sweat-soaked body grinding into you is as heady as the strongest alcohol.",
"Her thick, raven-black hair cascades down her back, bouncing with the rhythm of her body, further pushing you to the brink.",
"The wet slap of her ass on your thighs with each hard grind is driving you insane.")](else:)[
(twirl:"The sight of her sweat-soaked body riding you is pure, primal eroticism.","Her full lips bear down, biting with each punishing thrust of her hips.","Her back arches, showcasing her massive tits as she slams her pussy onto you.","She hisses between clenched teeth, holding back her own squeals of pleasure.","Her nails dig into your chest, a testament to the force of her body's craving.","Her ass quivers with each powerful thrust, a luscious vision in motion.","She whimpers your name with each bounce, her voice raw with desire.","Her agile body moves like liquid fire on your cock, searing your senses.","Her eyes flick down, watching the way your cock disappears inside her.","Her thighs strain with controlled power, pistoning her cunt back onto your cock.")]]
}{
(if:(checkdm:$npc,"id","is","mariselle"))[(twirl: "She takes you into her mouth, down to the base, her lips stretching obscenely around your girth.","Her tongue swirls around your tip, savoring your precum.","The way she locks eyes with you as she works your cock deep into her throat is too fucking hot.","Her saliva drips down your shaft as her mouth dutifully sucks you off.","The wet sounds of her slurping echo through the room, making it hard for you to hold back.","Her lips form an 'O', sliding up and down your length with practiced ease.","She gently teases the underside of your shaft with her tongue, sending shivers of pleasure up your spine.","She fondles your balls while her mouth mercilessly devours your cock.","Just the sight of her fumbling with her massive tits while her mouth is filled with your cock is enough to send you to the brink.","Her throat contracts around your cock as she gags, her eyes watering, yet she doesn't stop.","She chokes on your girth, spit dribbling down her chin, yet she keeps going, taking you in deeper.","The lewd suction noises she makes as she bobs her head on your cock is music to your ears.","She takes your cock out of her mouth just to lick her lips, tasting you, before plunging down once more.","She uses one hand to stroke your shaft while the other is busy with her own nipples, twisting and tugging.","She slurps on your cock, leaving it glistening with her saliva, only to take it back into her mouth again.","The sight of her flushed face, eyes watering and mascara running as she deepthroats you is unforgettable.","Seeing her kneel before you, her tits hanging heavy and bouncing with each bob of her head, is a sight to behold.","She sticks her tongue out, licking up the vein on your shaft before swirling her tongue around your head.","Her cheeks hollow as she sucks hard, her eyes fluttering close as she focuses on pleasuring you.","She looks up at you, her big eyes sparkling with desire and submission as she works your cock with her mouth.","She takes your balls in her mouth, suckling while jerking your cock with unyielding fervor.","She occasionally pauses to lick your slit, flicking her tongue over it, tasting your precum.")](if:(checkdm:$npc,"id","is","alexia"))[(twirl:
"Alexia's tongue dances wickedly around your tip, savoring a bead of precum.",
"She takes $your_cock in slowly, inch by inch, her eyes gleaming mischievously.",
"You can barely hold back as she deep-throats you, humming with pleasure.",
"Her moans vibrate through your shaft as she sucks you off.",
"She locks eyes with you, her almond eyes sparkling while she gags on your length.",
"Your stepsister's lips wrap tightly around you.",
"Alexia slurps noisily, spit and precum coating $your_cock as she works you.",
"She pulls away briefly to lick up the base, her eyes never leaving yours.",
"Her wet tongue flicks over your slit, teasing you mercilessly.",
"She fondles your balls while sucking you deep.",
"Her cheeks hollow out as she sucks harder, her mouth a hot, wet vacuum.",
"Alexia gags on your cock, spit dripping down her chin as she takes you deeper.",
"She makes a show of licking her lips, tasting you before taking you back in.",
"Her hand strokes you while her mouth devours you.")](else:)[
(twirl:"Her mouth feels so good around your cock.","Her lips gently stroke the edge of your cock.","She starts playing with your tip, using her tongue.","When she makes eye contact like that... fuck.","She's so good at this.")]
}{
(if:$sex_events contains "blowjobs received")[(set:$stats's "blowjobs received" to it + 1)]
(if:$sex_events contains "creampies given")[(set:$stats's "creampies given" to it + 1)]
}{
(set: _race to (cond: $character's "race" is "black", "bbc", "bwc"))(set:$pc_race to (cond: $character's "race" is "black", "bbc", "bwc"))
(newtrack: "orgasm " + $girl_select + " 1", "aud/se/sex/orgasm/orgasm/" + $girl_select + " 1.mp3")
(newtrack: "orgasm " + $girl_select + " 2", "aud/se/sex/orgasm/orgasm/" + $girl_select + " 2.mp3")
(newtrack: "bj loop " + $girl_select + " " + _race, "aud/se/sex/loops/bj/" + $girl_select + " " + _race + ".mp3")
(newtrack: "cum moan " + $girl_select + " " + _race, "aud/se/sex/orgasm/cum/" + $girl_select + " " + _race + ".mp3")
(newtrack: "doggy loop " + $girl_select + " " + _race, "aud/se/sex/loops/doggy/" + $girl_select + " " + _race + ".mp3")
(newtrack: "licking loop " + $girl_select + " " + _race, "aud/se/sex/loops/licking/" + $girl_select + " " + _race + ".mp3")
(newtrack: "missionary loop " + $girl_select + " " + _race, "aud/se/sex/loops/missionary/" + $girl_select + " " + _race + ".mp3")
(newtrack: "riding loop " + $girl_select + " " + _race, "aud/se/sex/loops/riding/" + $girl_select + " " + _race + ".mp3")
(newtrack: "penetration " + $girl_select + " " + _race, "aud/se/sex/penetration/" + $girl_select + " " + _race + ".mp3")
}{
(set:$today_events to it + (a:"guy called"))(set:$npc_to_load to "bruce")
(display:"load npc male")(unless:$npc's "name" is "Bruce")[(display:"initialize bruce npc traits")(display:"bruce petname")]($remember:"bruce sex",10,"bruce","none","none")($forget:"bet masculinity")
(set:$ambience to "bedroom")
(display:"play ambience")(set:$npc_select to "bruce")
|status>[(display:"character status")]
<div id='scrollable-content' class='center_screen' data-simplebar>
|screen>[
(set:$current_location to "Your Bedroom")(if:$npc contains "first name")[(set:$his_name to $npc's "first name")](else:)[(set:$his_name to $npc's "name")]
(if:$evening_activity is "Hit the Bar")[Just as you're about to go out, your](else-if:$evening_activity is "Milk yourself")[Just as you're about to start milking, your](else:)[Your] phone rings, and Bruce's familiar, commanding voice fills your ear the moment you answer.(print:"
")(set:$petname to $npc's "petname")"Hey there, $petname. I'm thinking tonight's the night for our little agreement to kick in. How about I come over and we have some fun?"
($simple_option:"NPC invites himself bruce response","Obey.","No!")
]
</div>
<div class='top_right' data-simplebar>
|right_screen>[
($show_tooltip:[<span class='shadow'>(css:"font-size:3.5vmin")[$day_of_week]</span>],[Day $day])
|right_options>[]
]
</div>
(live:1s)[(set:$npc_to_load to "bruce")
(display:"load npc male")(display:"npc screen update location")(stop:)](if:(checkdm:$npc,"ground rules","contains","always pull out"))[(set:$npc's tags to it - (a:"breeder"))](else:)[(set:$npc's tags to it - (a:"breeder"))(set:$npc's tags to it + (a:"breeder"))]
}(if:$choice is "No!")[Your heart pounds as you force the words out, "No, Bruce. I'm done being your plaything. Find someone else."
The silence that follows is deafening. When Bruce speaks again, his voice has dropped to a dangerous whisper.
"You want to run that by me again, sweetheart?" The false warmth is gone, replaced by cold fury. "Because I don't think you understand what you're doing here."
"I understand perfectly," you say, even as your voice trembles. "I'm not going to be your personal fucktoy anymore."
A dark chuckle crackles through the phone. "Oh, $your_name... you stupid, stupid little slut." His voice drips with venom. "You really think you can just walk away from our deal? That's not how this works."
"Watch me," you say, trying to sound braver than you feel.
"You know what? Fine. Have it your way." The rage in his voice is barely contained now. "But remember - you chose this."
The line goes dead.(display:"clear bruce deal")($notification_still:"Bruce is furious. This may have consequences...")($simple_option:"advance time","Next...")($remember:"bruce revenge",500,"bruce","none","bruce reject deal")](else:)["Good girl," he says. (if:$npc's "ground rules" contains "sexy outfits")["And don't forget to dress up nice and slutty for me. I want you ready and waiting, $petname. Remember, you're mine tonight."($remember_update:"add","bruce sex","needs sexy outfits")]
The call ends with Bruce's chuckle echoing in your ear, leaving you with a sinking feeling in the pit of your stomach about what the night will bring.($simple_option:"NPC invites himself bruce respons next","Get ready.")]{
(set:$current_activity to "Invite guy over")
(set:$next to "invite guy load")
(display:"change screen")
(set:$current_location to "Your Bathroom")
(set:$clothing_type to "fetish")
(display:"location and time")
(display:"play sex music")
(set:$option to "he called you")
}($remember_update:"add","bruce sex","no one saw")($play:"sound","doorbell")(set:$current_location to "Doorway")(display:"npc screen update location")(newtrack:'up stairs','aud/ambience/house/chores/up stairs.mp3')(set:_text to (twist:1,5))(if:_text is 1)[As soon as the door swings open, Bruce's eyes lock onto you, his gaze predatory.
"Ah, there's my little plaything," he purrs, stepping inside. "Ready to be used like the good little fucktoy you are?"](if:_text is 2)[Bruce saunters in, eyeing you like you're prey.
"Look at you, all dressed up and nowhere to go... but under me," he chuckles. "Just how I like my personal cum dumpster."](if:_text is 3)[The moment Bruce crosses the threshold, he smirks, his voice dripping with condescension.
"Well, if it isn't my favorite little hole. Missed my cock, haven't you? Don't worry, I'll fill you up good tonight."](if:_text is 4)[As Bruce steps in, his demeanor is one of sheer dominance.
“There's the whore I’ve been aching to fuck,” he declares, locking eyes with you. “I’ve got a load so big, only a dedicated slut like you could take it."](if:_text is 5)["You ready to be used, $petname?" Bruce asks, the moment he sees you, his voice laced with a raw, commanding edge. "I've been thinking all day about slamming into you, using that body of yours for some much-needed relief. Tonight, you're nothing more than a hole for my pleasure."]($play:"sound","up stairs",1000)<div class='options'>(link:"In your room...")[($cs:"invite guy sex room bruce")]<div>(set:$current_location to "Doorway")(display:"npc screen update location")Bruce, oozing confidence and a predatory charm that fills the room the moment he steps inside. His eyes meet your stepdad's, and without missing a beat, he strides forward, offering his hand in a firm handshake that seems more like a display of dominance than a greeting.
"Nice place you've got here," Bruce starts, his voice smooth as silk, yet carrying an edge that suggests he's not here for pleasantries. "I'm Bruce," he introduces himself with a grin that doesn't quite reach his eyes. "I've got some... educational plans for your daughter tonight. You know, just the usual; studying, reviewing... perhaps a bit of hands-on learning."
Your stepdad tries to muster a response, but Bruce is already focusing on you, his grin widening.
"Don't wait up," he tells your stepdad, the arrogance in his tone unmistakable. "We've got a lot to cover, and I intend to be very thorough."
As Bruce leads you away, his hand possessively at the small of your back, you can't help but feel annoyed at how he interacted with your stepdad.
"I'm not even IN college," you hiss. "What sort of studying could we possibly be doing?"
"Who the fuck cares?"($simple_option:"invite guy sex room bruce","In your bedroom...")($remember_update:"add","bruce sex","alexia saw")($pic:"npc/guys/bruce/alexia greet.jpg")(if:$bruce's "target" is "alexia")[(display:"bruce get current target")](else-if:$bruce's "alexia" contains "conquering")[(set:$stage to "hatred")](else:)[(set:$stage to "none")](if:$stage is "hatred")[(if:(twist:1,2) is 1)[When Alexia sees Bruce, her face contorts with fury.
"You're such an asshole, Bruce," she hisses. "I can't believe I fell for your charm. You’re nothing but a manipulative, womanizing jerk."
Bruce just laughs, a deep, resonant sound that echoes off the walls. "Come on, babe," he says. "Don’t take it personally. You were fun, but that's all it was—a good time." He glances your way, his eyes narrowing with amusement. "Besides, your stepsister here fills my needs just fine."
Alexia snaps her gaze to you, her eyes blazing with contempt. "I should've known you were just like him," she spits, her voice venomous. "Both of you, pathetic. Enjoy being his disposable toy."
She stomps off, and you’re left sitting there with Bruce's laughter ringing in your ears.
"Some girls just can't handle it," Bruce shrugs, smugly watching Alexia leave. He turns to you, eyes gleaming with unabashed arrogance. "So, $your_name, ready to give me what I want?"
Your cheeks burn crimson, your heart pounding in your chest. You hate the way he makes you feel—powerless, ashamed, but also aroused.
"Get upstairs," he orders, his tone brooking no argument. "I’ve got some pent-up energy from dealing with *her*.” He jerks his thumb in the direction Alexia just went, chuckling darkly.](else:)["Hey there, doll," Bruce greets you, his eyes already scanning the room for Alexia. When he spots her, his grin widens. "Awww, there’s my fiery ex-lover."
Alexia's face twists in fury. "Get out, Bruce. You have *no* business here."
Bruce just chuckles, wrapping an arm around your waist as he smirks at her. "Relax, Alexia. I'm just here for a little... fun with $your_name". He emphasizes your name with a condescending tone.
"How can you even stand being around him after what he did to me?" Alexia snaps at you, her voice a mixture of disgust and incredulity. "He used me, tossed me aside like garbage, and now you're letting him just fuck you? It's insane!"
Your cheeks burn with shame, but you can’t muster a response. Instead, you lower your gaze, feeling utterly humiliated. Bruce’s grip on you tightens, and he leans in, whispering in your ear, "Let's not keep her waiting, hmm?"
"Bruce, you're a fucking monster," Alexia spits. "And you," she turns her anger on you, "you're just as bad for letting him do this to you. It's pathetic!"
Bruce just laughs heartily, his voice echoing through the room. "Oh, come on, Alexia. You knew what you were getting into. And don't pretend you didn't enjoy every second of it. Now, if you'll excuse us, I've got a 'date' with my favorite little slut."
Alexia's eyes blaze with hatred. "I feel sorry for you, $your_name. You’re letting him turn you into something despicable."
She storms off, slamming the door to her room, leaving you alone with Bruce. He merely shrugs, unaffected by her outburst. "She'll get over it," he says dismissively, already steering you toward the stairs.
You try to keep your composure, but the humiliation gnaws at you, making you feel smaller with each step. Bruce's hand on your waist feels like an iron shackle as he leads you to your bedroom.
"Here we are," he announces, pushing you inside. "Just think about it, doll. While she’s sulking in her room, you’ll be up here getting fucked like the little slut you are."]($remember:"stepsis bruce hatred",30,"stepsis","none","bruce hate deal")](else-if:$stage is any of (a:"seducing","dating"))[(if:(twist:1,2) is 1)["Hey there, gorgeous," Bruce greets with a sleazy, confident grin, instantly stepping into her personal space. "Ready for our little chat?" He takes her hand, pulling her closer, and plants a lingering kiss on her lips. Alexia's eyes widen, but she doesn't pull away – instead, she lets out a small, nervous giggle.
"Bruce," she breathes out, feigning a scolding tone. "I can't believe you're hitting on me while you're here to, you know, take care of my stepsister."
Bruce just laughs, wrapping an arm around her waist. "Oh, don't worry, babe. I'm just going to fuck her brains out upstairs, get her all nice and tired, and then you and I can go out and have some real fun." He smirks down at you, his eyes gleaming with lewd intent. "After all, she's just my little slutty plaything, but you – you deserve the best."
Your face turns crimson, humiliation burning deep as you watch the exchange. Alexia glances your way, her expression a mix of discomfort and morbid curiosity, but she decides to play along. "So, you're saying she'll be all worn out and useless once you're done, huh? That's quite the arrangement."
Bruce chuckles, his hand caressing Alexia's cheek as he speaks loud enough for you to hear. "Absolutely. She knows her place, spread out and ready for me whenever I need a quick fuck. No strings attached, just a warm, tight hole to use. Isn’t that right, dollface?"
Your stomach churns as you force yourself to look away. "Y-Yeah," you mumble, the shame making your voice quiver.
"See?" Bruce says with a wicked grin. "She's practically begging for it. Now, be a good little slut and get upstairs. I’ll be right behind you."
You rise from your chair, legs trembling, and begin making your way up the stairs, feeling Alexia's eyes boring into your back.
"Sis, you really should consider getting some self-respect," Alexia taunts, her voice laced with mean amusement. "Or at least make sure he’s paying you for it."
Bruce's laughter follows you as you reach the top of the stairs, each step feeling heavier than the last. "She doesn't need payment," Bruce calls up. "She's addicted to being fucked senseless. It's pathetic, really. And you know what? That's exactly how I like it."
Tears of humiliation well up in your eyes, but you blink them away, reminding yourself of the deal you made. You have to endure this, for now. Bruce finally joins you at the top of the stairs, slapping your ass as he passes by, guiding you into your bedroom.](else:)[Alexia blushes, a mix of excitement and awkwardness flashing across her face. "Bruce," she greets him, trying to appear nonchalant. "Didn't expect to see you so soon."
Bruce chuckles, stepping over the threshold with an air of casual arrogance. "Oh, I just couldn't stay away," he murmurs, caressing her cheek. His hand slips to her waist, and she stiffens slightly but still smiles.
Turning to you, Bruce's eyes gleam with wicked amusement. "Why don't you go upstairs, $your_name?" he commands, his tone dripping with authority. "I'll be up soon."
You can barely meet his gaze, but you comply, ascending the stairs with your heart pounding in your chest. You barely make it halfway up before Bruce's voice stops you, echoing through the hallway.
"Don't keep her waiting too long," Alexia teases from below, giggling like a lovestruck teenager.
Bruce responds with a derisive laugh, loud enough for you to hear. "Oh, I'm not planning to. Trust me, this won't take long."
Humiliated, you reach your bedroom and leave the door ajar, waiting for Bruce's imminent arrival. Below, you catch snippets of their conversation, each word making your face burn hotter.
"You don't mind, do you, Alexia?" Bruce asks in a conspiratorial whisper, ensuring his words carry upstairs. "Just gotta handle some... business with $your_name first. Gotta be a man of honor."
"I get it," Alexia replies, though her voice sounds strained. "Just, make it quick?"
Bruce laughs. "Quick, slow—doesn't matter. $your_name's a slut through and through, ripe for the taking." He punctuates the statement with laughter that makes your stomach churn.
You hear footsteps, and the door creaks as Bruce steps into your room, closing it behind him. But not before he calls down to Alexia, "Why don't you get ready, babe? We'll head out right after."
By the time the door clicks shut, your face is a brilliant shade of red.](set:$npc_select to "stepsis")(set:$gain_attraction to -5,$gain_respect to -5,$gain_friendship to -2,$min_friendship to -10,$min_attraction to -10,$min_respect to -5)(display:"change relationship")(set:$npc_select to "bruce")](else-if:$stage is any of (a:"fucking","conquering"))[(if:(twist:1,2) is 1)["Well, well, if it isn't my favorite pair of sisters," Bruce says as the door swings open. He strides in confidently, a wolfish grin on his face. Before Alexia can even respond, he pulls her close, capturing her lips in a rough, possessive kiss.
"Mmmph, Bruce," Alexia mumbles against his lips, her voice a mixture of arousal and embarrassment.
Bruce's hands roam her body, squeezing her generous curves with a familiarity that makes your stomach knot. He pulls away, a string of saliva connecting their mouths, and chuckles darkly.
"Don't worry, babe, I'm just here to drain these pesky balls of mine in $your_name, my little sperm toilet."
Alexia flinches slightly, her eyes darting to you. "Yeah... whatever keeps you in prime form for me. Just make it quick."
Bruce laughs, his eyes never leaving Alexia's as he continues to grope her. "Oh, don't you worry. I'll make sure to treat you properly afterward."
He turns his attention to you, smirking as he steps closer. "Upstairs, now. You know the drill, slut."
Your cheeks burn with humiliation as you turn, making your way up the stairs. With every step, you hear Bruce talking to Alexia.
"You know, your sister's really good at keeping me satisfied. Balls drained. Just a warm, wet hole perfect for relieving stress," Bruce says.
"Yeah, well," Alexia replies, "make sure she doesn't get too attached. Last thing I need is her thinking she's anything but a cum rag."
By the time you reach your bedroom, your face is a deep crimson. You leave the door ajar and sit on the edge of the bed, heart pounding in your chest. Bruce's voice floats up the stairs, each word making you squirm in embarrassment.
"Relax, babe. She's too much of a desperate little slut to think she's anything more than what I make her. Now, let me put her out of her misery, and I'll be back for round two with you."
You can hear Alexia's uncomfortable laugh followed by another rough kiss. "Just... don't take too long. I'm impatient," she teases, masking her discomfort with bravado.](else:)[The front door opens with a resounding creak, and there stands Bruce — smug and confident as ever. His eyes dart from you to Alexia, and a smirk tugs at his lips. "Hey there, beautiful," he greets Alexia, his tone dripping with charm as he strides inside.
"Bruce," she responds, glancing at you briefly before turning her full attention back to him.
He saunters over to your stepsister, wrapping an arm around her waist and pulling her close. You can see the faint blush creep onto her cheeks as she tries to act nonchalant.
Bruce leans in, his voice a low murmur but loud enough for you to hear every word.
"Don't worry, babe. I'm just gonna drain my balls in my little fuckmeat here first," he says, jerking his thumb in your direction. "She’s just my sperm toilet, gotta get it out so I can treat you properly and last longer."
Your face flushes a deep crimson as he openly dehumanizes you, reducing you to nothing more than his plaything.
Alexia’s eyes widen a bit, clearly a bit unsettled by the crudeness, but she covers it with a playful scoff. "Really, Bruce? You're gonna talk like that in front of her?"
Bruce just laughs, pulling her even closer. "Just being honest, babe. Don’t want her getting any ideas that she's anything special." He dips his head, capturing her lips in a rough, demanding kiss right in front of you. His hand snakes down to squeeze her ass possessively as they make out, their tongues tangling and mixing in a lewd display of dominance and submission.
Finally, they break the kiss, both of them breathing heavily. Alexia looks at you, her eyes flashing with a mix of emotions. "You heard him, sis. Up you go. Don’t keep him waiting," she says, her tone cold.
You swallow hard, your feet moving mechanically as you head upstairs. Behind you, Bruce and Alexia’s voices filter up, filled with hushed laughter and playful taunts.
Settling in your room, you wait, the seconds stretching into an eternity filled with dread and humiliation. Downstairs, Bruce and Alexia’s conversation continues, ripe with crude jokes and filthy comments about you.
"So, what are you gonna do to her?" you hear Alexia ask, her voice tinged with both curiosity and discomfort.
"Fuck her brains out, of course," Bruce replies casually. "Make her beg for it. She's so desperate; it's honestly pathetic. But hey, it keeps my balls empty, right?"
A soft chuckle from Alexia follows. "Well, just don’t wear her out too much. She is my sister, after all."
Bruce’s laughter echoes, followed by the sound of footsteps making their way up the stairs. Alexia’s teasing voice calls up, "Have fun, you two. Don’t make too much of a mess."
The door to your room swings open, and Bruce steps inside, closing it behind him with a definitive click.]](else:)[(if:$npc's "ground rules" contains "stepsister")[As Bruce strides into your home, his eyes immediately find Alexia.
"Well, what do we have here? Another beauty in the house," he starts.
Alexia, always ready with a retort, raises an eyebrow. "And who are you supposed to be?"
Before Bruce can lay on his charm any thicker, you step in, giving him a sharp pinch on the arm — a not-so-subtle reminder of the rule he's about to break.
"Ow!" Bruce looks at you, feigning innocence, then sighs heavily, the air of a man reluctantly bound by his word. "Fine, fine," he grumbles, "should never have agreed to that rule."
He turns to Alexia, flashing her a grin that promises more than it should.($remember_update:"add","bruce sex","alexia got number")
"My apologies, it seems I'm already spoken for tonight. But believe me, it's my loss."
With that, he follows you upstairs, muttering under his breath about being a "man of his word" and how this could definitely have been "an interesting night."
As you lead the way, you can't help but worry about what Bruce's version of "interesting" might entail.](else-if:$stepsis's "events" contains "bruce number")[(set:$stepsis's "events" to it + (a:"bruce progress"))The moment Bruce steps through the doorway, his gaze locks onto Alexia, and a knowing smile spreads across his face.
"Alexi-YA, still causing trouble?" he chuckles, striding over with the confidence of a man who's already won half the battle.($remember_update:"add","bruce sex","alexia saw")
"You know it," she shoots back, her eyes sparkling with amusement. "Keeping up with your... endeavors, Bruce?" She looks at you.
Bruce leans in, whispering something in your stepsister's ear that makes her eyes widen before a mischievous grin takes over her face. Suddenly, she lets out a yelp, as Bruce gives her ass a firm squeeze. She blushes, but the grin doesn't leave her face.
You watch the exchange, a heavy sigh escaping your lips. Bruce's charm is as potent as ever.
(unless:$bruce's "target" is "alexia")[(display:"bruce select new target")]
"Alright, you two, break it up," you say, a hint of exasperation in your tone. Bruce simply laughs, offering you a wink before finally turning to follow you upstairs.
As you begin to climb the steps, Alexia calls out from below, teasing, "Don't be too loud up there!" Her laughter follows you, a reminder of Bruce's easy sway over people...](else:)[As soon as Bruce steps through the door, his eyes land on Alexia, and his charming smile broadens.
"Who do we have here?" he purrs.
"I'm Alexia, the better sibling. Who the fuck are YOU?" she folds her arms defensively.
Bruce doesn't miss a beat. "I'm Bruce, the man about to make your sister scream my name. But," he glances at her, appraising her with a smirk, "I like to spread the joy. How about you give me your number, and we can explore how much better you claim to be?"
Alexia scoffs, trying to hide the flush creeping up her cheeks. "In your dreams, flyboy."
Bruce leans in, his voice dropping to a seductive whisper. "Oh, I have plenty of dreams, Alexia. Give me your number, and I promise to make them all come true. Besides, there's plenty of me to go around."
You're too dumbfounded to interrupt... it all happens so fast.
There's a moment of hesitation before Alexia relents, scribbling her number on a piece of paper and shoving it into Bruce's hand. "Don't make me regret this," she warns, though the flirtatious glint in her eyes says otherwise.
Bruce winks at her, pocketing the number. "Regret is not in my vocabulary. I'll be in touch, Alexia. And don't worry, I'll take good care of your sister tonight."(set:$stepsis's "events" to it + (a:"bruce number"))(set:$npc_select to "bruce")(set:$gain_dom to 3)(display:"change relationship")(set:$time_events to $time_events + (a:"stepsis number"))<div class='options'><mark>Bruce will now have Alexia's number.</mark></div>]]($simple_option:"invite guy sex room bruce","In your bedroom..."){(set:$social_timer to 0)
[(print:"<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>")]<image|[{(set:$current_location to "Your Bedroom")(set:$location_params to (dm:
"name","Your Bedroom",
"crowded","no",
"sleaze",0,
"intro passage","sex bedroom intro",
"options passage","sex bedroom options",
"ambience","bedroom",
"changing location name","your room",
"changing location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"bj location passage","sex your bedroom",
"bj location name","your bedroom",
"bj location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"sex location passage","sex your bedroom",
"sex location name","your bedroom",
"sex location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"location refresh","location and time and inventory no saving",
"tags",(a:"clean"),
"home","Night",
"bed","your bed",
"home option","Go to bed"))
(set:$room to "bedroom")(display:"npc position inventory")
(set:$couch to "couch")
(set:$wall to "bedroom wall")
(set:$floor to "bedroom floor")
(set:$desk to "desk")
(set:$scene to (dm:"events",(a:"begin","begin")))
(set:$minigame to (dm:
"difficulty",7,
"babe type","clothed",
"cock type","nsfw",
"masculinity level",80,
"reason 1","Damn, you're basically his sex slave...",
"reason 2","How did you like that?",
"reason 3","You looked so cute and desperate, the way you dressed up.",
"afterwards","sex transactional finish"))
(set:$your_name to $character's "female name")
(set:$option to "none")(set:$max_attraction to 5)
(set:$breeder_ruined_orgasms to 0)(set:$beg_creampie to "false")
(set:$scene_type to "sex bedroom")(set:$caught_chance to 0)
(display:"breathing ambience")(set:$his_choice to "none")
(set:$sex_descriptions to (twisted:"sensation","sound","he talks","body","action","thought","you talk"))
(display:"petname initial")(display:"sex sound variants")(set:$his_pleasure to 0)(set:$your_name to $character's "female name")(set:$his_pleasure_threshold to $npc's stamina)(set:$his_satisfaction to 0)(set:$energy to (max:3,(get_fitness:)))(set:$max_energy to (max:3,(get_fitness:)))(set:$your_pleasure to 0)(set:$orgasms to 0)(set:$control to 5)(if:(datanames:$npc) contains "dominance")[(set:$control to (min:10,(max:1,10 - $npc's dominance)))](set:$stamina_stat to "enabled")(set:$control_stat to "enabled")(set:$lubrication_stat to "enabled")(display:"refresh stats sex girl")(set:$lubrication to (ceil:$character's "arousal"/2))
(unless:(is_nude:))[(set:$character's "pussy" to "inaccessible")](else:)[(set:$character's "pussy" to "accessible")]
(display:"sex doggy transactional")(display:"sex oral")(set:$oral_loop to $sex_loop)(set:$npc's "cock" to "not out")
(if:$robe is "true")[(twirl:"You drop","You open") (twirl:"your bathrobe","the robe","your robe","the bathrobe"), (if:(is_nude:))[(twirl:"revealing your naked body","baring your naked body to him","revealing that underneath, you were naked").](else:)[revealing your (print:$outfit's description).](nl:2)](display:"npc describe outfit")(set:$gain to 0)(set:$gain_attraction to 0)
(if:(checkdm:$npc,"ground rules","contains","sexy outfits"))[(unless:$outfit's sluttiness > 7 and not ((is_nude:)))[(if:$outfit's category is "fetish" or $outfit's locations contains "fetishwear")[Bruce scans your outfit with a critical eye, his lips curling into a frown.(nl:2)"Sorry, but this? This isn’t doing it. I wanted slutty, not a costume party reject. Looks like you didn't hold up your end of the deal. Time to pay up, $petname."](else-if:$outfit's tags contains "mens")[He chuckles darkly, shaking his head at your choice. "Dressed in guys' clothes? That's the opposite of what I had in mind. Guess you're owing me for not following through with our arrangement."](else-if:(is_nude:))["Naked? That's the best you could do? I wanted creativity, effort. Something to get me nice and hard, not this... laziness." Bruce's smirk is sharp as a knife. "Well, since you couldn't bother to dress the part, you'll be compensating me in other ways."](else-if:$outfit's emphasizes contains "cleavage" and (twist:1,2) is 1)[Bruce's eyes briefly flicker to your cleavage, a hint of interest sparking before quickly turning into disdain.(nl:2)"Oh, look at that, you decided to show off the girls tonight," he comments, his voice dripping with sarcasm. "But let's be real, sweetheart, a bit of cleavage isn't going to cut it. I was expecting 'fuck me' vibes, not 'first date at the movies.'"](else-if:$outfit's category is "lingerie")["What is this, Valentine's Day? I was expecting something that screams 'take me now,' not 'let's make love.' You really thought this was enough?" He chuckles darkly, shaking his head. "Looks like you misunderstood the assignment. Time to pay up for playing it too safe."](else-if:(checkdm:$outfit,"style","is","slutty"))["So, this is your idea of slutty, huh? Looks like you aimed for provocative but landed on 'PG-13 temptress.'" He clicks his tongue, tsking. "I was expecting you to leave nothing to the imagination, not give me a teaser trailer. Well, it's clear you didn't meet the mark. Looks like there's a penalty for not reaching the bar of sluttiness I had in mind."](else-if:(checkdm:$outfit,"style","is","relaxed"))[Bruce's expression twists into one of outright disgust as he takes in your relaxed, comfy attire. "What in the actual fuck are you wearing? You look like you're about to binge-watch Netflix, not get your brains fucked out." He scoffs, a sneer curling his lip. "Disgusting. I give you a simple task — to dress like you're ready to be used — and you show up in this... this TRAVESTY!!! It's not just disappointing; it's a fucking insult." His voice rises in scorn. "You're supposed to be my slut tonight, not a goddamn couch potato. Looks like you owe me big time for this pathetic attempt at dressing up."](else-if:$outfit's type is "bikini")[His eyes flick over your body, and he scoffs. "A bikini? What is this, amateur hour? I expected you to be dripping in sluttiness, not showing me beachwear." Bruce's grin is cold, merciless. "Guess you've just racked up a fine for not meeting my standards. Hope it was worth it."](else-if:(checkdm:$outfit,"style","is","modest"))["What is this outfit? Do you not know who you're dealing with?" Bruce's tone is incredulous, almost offended. "I wanted a slut, not a saint. This prudish getup is going to cost you — financially."](else-if:(checkdm:$outfit,"style","is","sexy"))[Bruce examines your sexy outfit and snorts. "This is like 'sexy lite.' I gave you one job: to be utterly slutty, and you come at me with this half-assed attempt?" He smirks, shaking his head. "Sorry, but you're going to have to pay for not living up to my expectations."](else:)[Bruce's eyes sweep over you, and his face contorts into a blend of disbelief and irritation.(nl:2)"This is it? This is your attempt at dressing slutty for me?" he asks, his voice laced with disdain. "You're clearly not taking this seriously, so why should I? You'll be paying for this oversight, trust me."](set:$gain to 250)(set:$reason to "Because you didn't wear clothes with at least a sluttiness of 8")(display:"bruce gain debt")($remember_update:"add","bruce sex","not sexy enough")](else:)[($remember_update:"add","bruce sex","you wore sexy")"(twirl:"So you DO know how to follow orders. Good.","There's the little slut I was expecting! Love the getup.","Well, well, looks like someone's eager to please.","You look like you walked straight out of a porno, and that's exactly what I wanted. Good slut.","Well, well, looks like someone's desperate for a good fuck. You've nailed the 'fuck me' dress code.",
"You look like you walked straight out of a porno, and that's exactly what I wanted. Good slut.",
"Look at you, all dolled up and dripping with sex. You're just a few bent over poses away from being a perfect fuck toy.",
"You've got the 'fuck me, I'm cheap' look down pat. Let's see if the performance matches the outfit.",
"Ah, there it is, the uniform of a well-trained fuck puppet. You're a walking invitation for a hard, rough fuck.",
"With that getup, it's like you're advertising, 'Insert cock here.'",
"You must've raided the 'slutwear' section for this number. That's a compliment, by the way. You look ready to be used.",
"Did you get dressed in the dark, or are you just naturally this slutty? Either way, it works for me.")"
($notification_still:"Bruce approves of your slutty outfit.")]](if:$outfit's sluttiness > 5)[(set:$gain to 0)](else:)[(set:$gain to 2)(set:$gain_attraction to 1)]
(set:$npc_select to "bruce")(set:$seen to "none")(unless:$outfit's tags contains "mens" or (is_nude:))[(unless:(datanames:$npc) contains "seen outfits")[(if:(datanames:$outfit) contains "id")[(set:$npc's "seen outfits" to (a:$outfit's id))](else:)[(set:$npc's "seen outfits" to (a:))](set:$seen to "false")](else-if:$npc's "seen outfits" contains $outfit's id)[(set:$seen to "true")](else:)[(set:$seen to "false")(set:$npc's "seen outfits" to it + (a:$outfit's id))]](if:$seen is "false")[(inc:'gain')(inc:'gain_attraction')<div class='options'><mark>Satisfaction/attraction boosted because he hasn't seen you wear your (print:$outfit's description) before.</mark></div>](unless:$gain is 0)[(display:"gain his satisfaction")(display:"change relationship")]
(display:"npc screen update sex guy")(display:"display outfit")
(set:$surface to $couch)(set:$your_choice to "none")
(if:$doggy_text's 1st is "couch")[(set:$surface to $couch)](if:$doggy_text's 1st is "desk")[(set:$surface to $desk)]
(if:$doggy_text's 1st is "floor")[(set:$surface to $floor)]
(if:$doggy_text's 1st is "wall")[(set:$surface to $wall)]
(if:$doggy_text's 1st is "standing")[(set:$surface to $wall)]
(set:$scene's "status" to "foreplay")(live:2s)[(display:"fix outfit")(stop:)](if:(datanames:$outfit) contains "id")[(set:$sex_outfit to $outfit's "id")](else:)[(set:$sex_outfit to "none")](set:$scene to (dm:"events",(a:"begin"),"status","foreplay","interrupt chance",3))
(display:"refresh girl sex meters")(if:(checkdm:$npc,"ground rules","contains","keep quiet"))[($notification_still:"🕊️ Bruce has agreed to keep it quiet. 🕊️")($remember_update:"add","bruce sex","stay quiet")](else:)[(if:$rent_this_week > 149)[<div class='options'><mark>Since you're contributing at least $100 toward household expenses this week, your family doesn't mind if you have sex in the house.</mark></div>](else:)[(set:$change to (($relationships's "stepsis")'s "friendship"))(if:$change > 0)[<div class='options'><mark>Since you and Alexia are on good terms, your chance of getting caught is decreased.</mark></div>](else-if:$change < 0)[<div class='options'><mark>Since you and Alexia aren't on good terms, your chance of getting caught is increased.</mark></div>]
(set:$scene's "interrupt chance" to it - (($relationships's "stepsis")'s "friendship"))
(set:$change to (($relationships's "stepdad")'s "respect"))(if:$change > 0)[<div class='options'><mark>Since your stepdad respects you, your chance of getting caught is decreased.</mark></div>](else-if:$change < 0)[<div class='options'><mark>Since your stepdad doesn't respect you, your chance of getting caught is increased.</mark></div>]]
]}]<text|(if:$npc's tags contains "stepdad dislikes")[(set:$scene's "interrupt chance" to it + 2)]
(set:$scene's "interrupt chance" to it - (($relationships's "stepdad")'s "respect"))($passage_tags:"interrupt_chance")(set:$scene's "interrupt chance" to (min:25,(max:0,$scene's "interrupt chance")))(if:$disable_caught is "Getting Caught Disabled: True" or $rent_this_week > 149 or (checkdm:$npc,"ground rules","contains","keep quiet"))[(set:$scene's "interrupt chance" to 0)(set:$caught_chance to 0)](set:$caught_chance to $scene's "interrupt chance")[<div class='options'><mark>Chance of your family members catching you:</mark></div>(display:"sex transactional chance of getting caught")
(set:$his_name to $npc's "name")
<div class='options'>(display:"sex transactional option links")(display:"update caught chance")]<options|
}{(set:_text to (twist:1,5))(if:_text is 1)["Seems like someone's forgotten the main rule," Bruce says, a smirk playing on his lips. "It's your pussy that's supposed to be doing the pleasing, $petname. Anything else is just cheating the system." He leans closer, his voice a murmur of lascivious reprimand. "And cheating comes with a price - $150, to be exact. Let's hope it was worth it."](else-if:_text is 2)["$petname, what did we say about following rules?" Bruce chides, his tone dripping with condescension. "I was expecting to be pleasured by that delectable pussy of yours." He wags a finger at you, the dominant gleam in his eye unmistakable. "That little detour's gonna cost you $150."](else-if:_text is 3)["Tsk, tsk, tsk, $petname," he scolds. "I believe I was very clear about the terms. Your pussy — those sweet, tight inner muscles — is the only part of you that should be squeezing and milking my cock." His voice drips with obscenity as he continues, "And yet, here you are, trying to find loopholes. You really think I wouldn't notice? Or are you just that eager to please me in every way but the one I specified?"](else-if:_text is 4)[He shakes his head, his expression a blend of mock disappointment and sheer control. "That's $150 you owe me. You should know by now, the only way to truly satisfy me is with that dripping, needy cunt of yours. Everything else is just a costly distraction. Remember, $petname, every time you forget, it's going to cost you. Maybe this will help drill the lesson into that pretty little head of yours."](else-if:_text is 5)["Tsk, tsk, tsk, $your_name, we had a deal, didn't we? Your pussy is supposed to be doing all the work, squeezing and milking my cock with those tight little inner muscles of yours. Using anything else is just cheating," he grins wickedly. "That's $150 you owe me. Remember, I want that sweet cunt of yours. Get it right, or keep racking up that debt."](set:$reason to "Because you broke the rule about only using your pussy")(set:$gain to 150)(display:"bruce gain debt")}{
(set:_text to (twist:1,5))(if:_text is 1)[Bruce's grin spreads wide across his face as he watches you eagerly suck him off, completely engrossed in the act.(nl:2)"Ah, ah, ah, caught you, $petname," Bruce chides, his voice dripping with mock disappointment and a hint of triumph. "You were supposed to only please me with that sweet little pussy of yours. Seems like you forgot our little agreement. Did you really think I wouldn't notice? Or were you just that desperate to wrap those lips around my cock?" ](else-if:_text is 2)[As you take Bruce's massive cock deeper, working it with your mouth, he suddenly looks down at you with a condescending grin. (nl:2)"Oh, what do we have here? Caught you red-handed, $petname," he chuckles darkly, his voice dripping with satisfaction at catching you in the act. "You were supposed to only please me with that tight little pussy of yours. And yet, here you are, acting like a greedy little cockslut."(nl:2)He tsks, shaking his head. (nl:2)"This is gonna cost you, sweetheart. $150 for breaking the rules. Seems like my little bimbo needs a reminder of her place."](else-if:_text is 3)[Bruce watches you with a lewd smirk as you enthusiastically suck his cock, getting it all sloppy with your saliva.(nl:2)"Oh, look at that, my eager little cum dumpster forgot the rules," he taunts, his voice thick with mockery.](else-if:_text is 4)["Ah, ah, ah, breaking the rules already, $petname?" Bruce says, his voice laced with lewd amusement. "Your pussy is the star of the show, not this eager little mouth of yours. But since you're so keen on being a good little blowjob bimbo, it's going to cost you."](else-if:_text is 5)["I warned you, you're supposed to use your pussy to please me, not get greedy with those slutty lips." He gazes down at you, his look one of absolute dominance. "That’s $150 you owe me. Seems like you're not just a disobedient little whore, but a pretty expensive one too. Keep this up, and who knows how deep in debt you'll end up. But by all means, don't let me stop you — your bimbo mouth is costing you a fortune."]
(set:$reason to "Because you broke the 'no blowjobs' rule")(set:$gain to 150)(display:"bruce gain debt")
}{
(set:$bruce_debt to (round:$bruce_debt + $gain))
(unless:$custom_orgasm is "silent")
[
($notification_still:"🔒 " + $reason + ", you owe Bruce " + (currency:$gain) + "." + (cond:$gain is $bruce_debt,""," (Current total debt: " + (currency:$bruce_debt) + ")") + " 🔒")
]
}{($remember_update:"add","bruce sex","bruce sex finish")
<div class='options'>
(display:"refresh stats")
<span class='shadow'>(css:"font-size:4vmin")[(color:"white")[Bedroom Sex Results]]</span>
</div>
(display:"save npc male")
(if:$his_satisfaction > 9)[
Since his satisfaction was 10, you can spend 1 point improving one of (print:$npc's "name")'s stats.
<div class='options'>
[
(if:$npc's "oral skill" < 10)[
(link:"Improve Oral Skills")[
(set:$npc's "oral skill" to it + 1)
(display:"save npc male")
(replace:?bonus)[*NPC's oral skills increased to (print:$npc's "oral skill").*]
(set:$se to "skill up")
(display:"play sound")
]
]
(link:"Improve Sexual Stamina")[
(set:$npc's stamina to it + 1)
(display:"save npc male")
(replace:?bonus)[*Sexual stamina increased to (print:$npc's stamina).*]
(set:$se to "skill up")
(display:"play sound")
]
(if:$npc's fitness < 10)[
(link:"Improve Fitness")[
(set:$npc's fitness to it + 1)
(display:"save npc male")
(replace:?bonus)[*Fitness increased to (print:$npc's fitness). They will now be able to use sex positions that require higher fitness.*]
(set:$se to "skill up")
(display:"play sound")
]
]
(link:"Increase Possible # of Sex Positions")[
(set:$npc's "position limit" to it + 1)
(display:"save npc male")
(replace:?bonus)[*Number of possible passive positions in NPC inventory increased to (print:$npc's "position limit"). (Note that positions are still limited by fitness and roughness.)*]
(set:$se to "skill up")
(display:"play sound")
]
($passage_tags:"npc_training")
]<bonus|
</div>
](else:)[
<div class='options'><span class='shadow'>You can't improve his stats, since he wasn't satisfied enough.</span></div>
]
[<div class='options'><mark>(text-style:"fade-in-out")[Checking for unlockable sex positions...]</mark></div>]<new_position|
(live:0.1s)[(display:"check for new positions")(stop:)]
(live:2s)[
(replace:?new_position)[{
(if:$found is "true")[
(set:$position_inventory's (text:$character's id) to $position_inventory's (text:$character's id) + (a:$unlocked_position))
(replace:?new_position)[{
<div class='options'><mark>(text-style:"fade-in-out")[New Active sex position unlocked!]</mark></div>
(print:$select_position's "video full")
(set:$unlocked_ids to (a:))
(for: each _owned_position, ...($position_inventory's (text:$character's id)))[(set:$unlocked_ids to it + (a:_owned_position's id))]
(display:"position stats")
}]
](else:)[
<div class='options'><mark>(text-style:"fade-in-out")[No new positions earned... train yo skills!]</mark></div>
]
}]
(stop:)
]
(unless:$cum_text is 0)[(if:$cum_text contains "clothes" and (datanames:$outfit) contains "colors")[
(display:"cum on clothes")
(if:(datanames:$outfit) contains "image")[<div class='top_left_pic'>(print:$outfit's "image")</div>]
]]
(nl:2)
(display:"bruce post sex debt collect")
}(if:$bruce_debt > 0)[(set:_text to (twist:1,5))(if:_text is 1)[As Bruce finishes, he steps back, zipping up with a self-satisfied smirk plastered across his face. The air is thick with the scent of sex and the sharp tang of your own humiliation. The playboy looks down at you, still panting and disheveled on the bed, a conqueror surveying his spoils.
"Well, wasn't that just a fucking spectacle," he chuckles, and leans down, his face inches from yours, his breath hot against your skin. "But let's not forget, sweetheart, pleasure ain't free. You've racked up quite the debt, getting your brains fucked out. (currency:$bruce_debt). Cough it up, buttercup."](else-if:_text is 2)[Bruce straightens his shirt, the very picture of nonchalance, as he surveys you sprawled out and spent. With an amused chuckle, he shakes his head, his eyes glinting with a mixture of mockery and disdain. "Look at you, all fucked out and broken in. Who knew you'd be such a willing little slut, hm?"
He saunters closer, a wolfish grin spreading across his face as he leans in, his voice dropping to a taunt.
"But let’s talk payment, darling. You didn't think all this," he gestures to himself with a smugness that makes your skin crawl, "comes for free, did you? Let’s see... carry the one... you owe me (currency:$bruce_debt)."](else-if:_text is 3)[Bruce stands over you, his cocky grin in stark contrast to the wreck he's made of you. As you lie there, drenched in sweat with your thighs slick and aching, he casually wipes his still-dripping cock across your cheek, leaving a trail of after-cum on your flushed skin.
"Sincerely, Bruce," he mocks, zipping up with a chuckle. "Now let's talk numbers," he says, pulling on his shirt. "(currency:$bruce_debt). Better pay up!"](Else-if:_text is 4)[Standing tall, Bruce casually buttons up his shirt, the crisp fabric a stark contrast to your disheveled state. He sneers down at you, sprawled and used up. As he tucks himself away, he gives his shaft one final, leisurely stroke, smearing the last of his cum across your forehead.
"You owe me big time for this little rendezvous. It's (currency:$bruce_debt), to be exact. Better pay up!"](else:)[With a cool nonchalance, Bruce leisurely tucks himself back into his pants, the evidence of your submission still glistening on him.
"You're in the red now, darling," he taunts, a low, vicious chuckle scraping against your ear. "Your little account with me just skyrocketed. You owe (currency:$bruce_debt)."]<div class='options'>(if:(money:) >= $bruce_debt)[(link:"Pay him.")[($cs:"bruce post sex debt collect pay")]](else-if:(money:) > 0)[(link:"Pay him. (Partially)")[($cs:"bruce post sex debt collect pay partial")]](else:)[(link:"You have no money.")[($cs:"bruce post sex debt collect dont pay")]]</div>](else:)[(display:"bruce post sex end")]{
($notification_still:"You pay Bruce " + (currency:$bruce_debt) + ", clearing your 'debt'.")($pay_money:$bruce_debt)(set:$bruce_debt to 0)
(set:_text to (twist:1,5))(if:_text is 1)["Oh, look at that, you actually can pay. Thanks for the business, slut," Bruce chuckles, pocketing the cash with a wink.](else-if:_text is 2)["Well, aren't you a good little paypig? Thanks for settling up, sweetheart. I'll be sure to spend your hard-earned money on something frivolous," Bruce says with a mocking bow.](else-if:_text is 3)["Ah, coughing up the dough like a pro. I knew you were good for something other than being a cum dumpster. Thanks for keeping it professional," Bruce teases.](else-if:_text is 4)["Pleasure doing business with you, literally," Bruce grins as he counts the cash. "I love it when my sluts are also punctual payers. Keep it up, and maybe I'll give you a loyalty card."](else:)[You hand over the money. "Thanks for the fuck and the funds. It's not every day you find a slut with manners. Keep up the good work, I always appreciate a return customer," he says.]
(display:"bruce post sex end")
}{
($notification_still:"You pay Bruce " + (currency:(money:)) + " of your total " + (currency:$bruce_debt) + " 'debt'.")(set:$bruce_debt to it - (money:))($pay_money:(money:))(display:"bruce post sex end owe")
}{
($notification_still:"You don't have any money to pay your 'debt' to Bruce.")(display:"bruce post sex end owe")
}(set:_text to (twist:1,5))(if:_text is 1)["Well, this is a predicament, isn't it?" Bruce says as he towers over you, his voice oozing with condescension. "You can't pay your dues. You better scrape up that cash, or you'll be swallowing another Resistance pill, and trust me, the side effects start to pile up!"](else-if:_text is 2)["Tsk tsk," Bruce clicks his tongue, shaking his head with mock sympathy. "Looks like you're a bit short, darling. I suggest you find a way to cover your debts, or it's back on the pill for you, even once this one is over. And we both know you don't want that. Or do you?"](else-if:_text is 3)["No money, huh?" Bruce sneers. "You've got a debt to settle, and if you can't cough up the cash... you'll need to take another Resistance soon. Better start counting your pennies!"](else-if:_text is 4)[With a predatory grin, Bruce leans in, his breath hot against your cheek. "I'm not a charity, sweetheart. If you don't have the dough, you'll be paying in other ways. Another Resistance pill might just keep you in check until you do."](else:)[Bruce looms over you. "You're in deep now, aren't you? No cash to cover your fun time. Well, you better get resourceful, or I'll have you popping Resistance pills until you're in over your head."](display:"bruce post sex end"){
(display:"bruce post sex buyout option")
(if:$orgasms > 0)[(set:$character's "arousal" to 0)(display:"refresh stats")]
<div class='options'>
(set:$next to "advance time")
(display:"masculinity crisis link")
</div>
(display:"location and time")
}{
(if:$npc's "ground rules" contains "buyout" and $bruce_debt < 1)[<div class='options'>(link:"Buy yourself out of the deal. ($3000)")[(if:(money:) >= 3000)[($pay_money:3000)($notification:"You pay him $3000, and Bruce accepts your buyout!")(display:"clear bruce deal")](else:)[($notification:"You can't afford it.")]]</div>]
}{
(set:$bruce_deal to "false")(set:"ground rules" of $npcs_men's "bruce" to (a:))(set:$bruce_debt to 0)($remember_update:"add","bruce sex","deal over")($remember:"bruce deal",3,"bruce","none","deal over")
}(set:$global_events to it + (a:"bruce couldnt pay debt"))(display:"Resistance Is Futile Trigger")(unless:$character's "birth control" is "nanobots")[(set:$character's "birth control" to "false")](set:$milk to 0)(unless:(is_preg:))[[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[($notification_still:"You still owe Bruce " + (currency:$bruce_debt) + ", so he won't let you transform back.")A knock on the door sends a shiver of dread through you. You already know who it is before you even open it. Bruce stands there, a smug smile on his face as he casually leans against the doorframe, looking every bit the cocky bastard he is.
"Time's almost up, sweetheart," he drawls, holding up a small pink pill between his fingers. "I'm sure you remember the drill. Your debt's still outstanding, and I can't have you turning back into a man just yet."
The way he says "man" is laced with such disdain that it stings.
You open your mouth to protest, to plead for more time or a different way to settle your debt, but Bruce cuts you off with a sharp wave of his hand.
"Nope, we're doing this here and now," he says, his tone brooking no argument. "Swallow this pill, or I'll make sure the next one is a Breeder. And we both know you can't afford THAT kind of fun."
Your hands tremble as you take the Resistance pill from him, the weight of your situation settling over you like a lead blanket. Bruce watches, his eyes gleaming with anticipation as you place the pill on your tongue and swallow.
($notification_still:"Pill timer reset.")(set:$pill_timer to (twist:28,40))(set:$pill_taken to "Resistance")"Good girl," he coos mockingly, stepping into your space, his presence overwhelming. "You know, it's almost touching, how devoted you are to following my rules."
As the familiar warmth of the pill floods your system, confirming that your female form will remain a while longer, Bruce leans in close, his breath hot on your ear.
"Just remember," he whispers, "you're still mine. Every moan, every gasp, every scream of pleasure you make... it all belongs to me. And until you clear your debt, your body is just a plaything for my entertainment."($simple_option:"advance time","Next...")]<screen|</div><div class='top_right' data-simplebar>[($show_tooltip:[<span class='shadow'>(css:"font-size:3.5vmin")[$day_of_week]</span>],[Day $day])]<right_screen|</div>
](else:)[(display:"pill doesnt expire")]{
(set:$drink_flirt to "false")
(if:$npc_type is "coworker")[
(display:"load coworker")
](else:)[
(display:"generate random guy")
(set:$npc's tags to it + (a:"generic npc"))
]
(display:"npc screen update")
(set:$options to "false")
(set:$gain to 0)($passage_tags:"male_npc_approach")
(if:$current_activity is "Go clubbing")[
(display:"catcall clubbing approach")(nl:2)
](else:)[(if:(twist:1,4) is 1)[(set:_guy_desc to (twirl:"a guy in his " + $npc's agecat,"some dude in his " + $npc's agecat))(twirl:"You're approached by _guy_desc.",(upperfirst:_guy_desc) + " approaches you.")](else:)[(print:(upperfirst:$npc's "description"))(print:" ")(twirl:"approaches you.","starts chatting you up.","decides to shoot his shot.","approaches you.","approaches.")]]
(live:1)[(set:_text to (twirl:"before","after"))
(if:$npc's personality <= 5 or $npc's "tags" contains some of (a:"fuckboy","bully","creepy"))[
(if:$outfit's "sluttiness" >= 9)[ (twirl:"Can't say you're surprised with what you're wearing.","He probably thinks you're asking for it from how you're dressed.","You can tell he was looking for someone slutty to hit on, and your clothes fit the bill.")(nl:2)]
(if:$outfit's "sluttiness" <= 2)[ (twirl:"Looks like your outfit didn't keep him away.","You'd have thought the way you're dressed repelled guys like him.","He's ignoring how modest your clothes look.")(nl:2)]
]
(if:_text is "before")[]
(set:$se to "whistle " + (text:(twist:1,4)))(display:"play sound")
(if:$trigger is "butt")[(display:"catcall butt")]
(if:$trigger is "breasts")[(display:"catcall breasts")]
(if:$trigger is "id" or $trigger is "arousal")[(display:"catcall id")]
(if:$pickup is "dirty")[(inc:'gain')]
(if:$pickup is "body")[(inc:'gain')]
(if:$npc's looks > 5)[(inc:'gain')](else-if:$npc's looks < 4)[(dec:'gain')]
(if:$gain > 0)[<div class='options'>(if:$character's "masculinity" > 89)[<mark>(twirl:"You're too masculine for that to arouse you.","You don't gain any arousal.","Your femininity is too low to receive arousal for that.","That doesn't arouse you.","That kind of thing doesn't arouse you.","You don't find that arousing.")</mark>](else:)[(if:$character's "masculinity" > 79)[(set:$gain to 1)](else-if:$character's "masculinity" > 59)[(set:$gain to $gain*1)](else:)[(set:$gain to (floor:$gain*1.5))](display:"gain arousal")]</div>](else:)[(nl:1)]
(display:"catcall reaction")(set:$npc_type to "normal")(stop:)(display:"npc screen update")]
}{(if:$npc_type is "coworker")[(display:"determine coworker gender")(if: $items contains "coworker address book")[(display:"update address book with current npc")]]}{
(set:$pickup to "body")(set:$catcall_type to "butt")
(set:$catcall to (twirl:"hey","hey sentence","full"))
(if:$catcall is "hey")["(twirl:"Ayy girl","Goddamn","God-DAMN girl","Holy shit girl","Hey girl","Girl","Holy fuckkk girl","Yo bitch"), (twirl:"I got an extra large sausage right here for them fat buns of yours","I'd love to shove my face in that fine, pristine ass","you have an amazing booty","you're bootiful","you're a booty angel","that's some CAKE right there","you're DUMMY THI-I-ICCC","you've got a FINE ass","you've got yourself a FINE ol' booty","you got yourself a big, fat butt. Me likey","that's what we call a dump truck","that's a fat ass","you got a FAT ASS","that's a juicy ass you're carrying around")(twirl:"!",".","!!")"]
(if:$catcall is "hey sentence")["(twirl:"Ayy girl!","Goddamn, girl!","Holy shit girl!","Holy shit!","Hey you!","Check this bitch out!","Yo check this slut out!","Hey check this bitch out!","Dayum, girl!","Damn!") (twirl:"Them's some fat buns","That's an amazing booty","You're bootiful","You're a booty angel","That's some CAKE right there","That's what we call a dump truck around here","That's a fat ass","That is a big fat ass you got there","That's a nice ass you got","That's a fuckin' nice ass","YOU got an ass","Your ass... so perfect... so nice and round... MMM","Did you butt dial me, because I swear that ass is calling me","You have such a nice ass","That's a nice ass","I wanna smack that ass")(twirl:"!",".","!!")"]
(if:$catcall is "full")["(twirl:"What a perfect ass! Would love to hotdog those buns","I'd love to shove my face in that ass","Nice ass, girl","Nice ass","Love your fat ass","Nice butt","Nice dump truck","That's a big ol' dump truck","You're bootiful","Nice ass, girl","You're dummy thiccccc","If a guy sees that ass and doesn't wanna cum inside you, there's something wrong with him","I like big butts and I cannot lie","I'd hit that ass so hard, if someone pulled me off, they'd become the King of England","You're thicker than a bowl of oatmeal","Hey, nice ass","Swiggity swooty, damn what a booty","You have sexually attractive hindquarters","Excuse me miss, but that ass could stop a train","Excuse me miss, but that caboose could stop a train","You got a hips to ass ratio like a damn comic book drawing","Whoa what the hell, that's a fine ass","I've got a parking space just for that ass","I wouldn't mind if you sat that big ass down on my lap")(twirl:"!",".","!!","...")"](display:"npc screen update")
}{
(set:$pickup to "body")(set:$catcall_type to "breasts")
(set:$tits to (twirl:"cans","jugs","milkers","tits","boobs","titties"))
(if:$character's "breasts" is "B")[(set:$catcall to "hey")](else:)[(set:$catcall to (twirl:"hey","hey sentence","full"))]
(if:$catcall is "hey")[
"(twirl:"Ayy girl","Goddamn","God-DAMN girl","Holy shit girl","Hey girl","Girl","Holy fuckkk girl","Yo bitch","Excuse me miss"),
(if:$character's "breasts" is "B")[
(set:$tits to (twirl:"b-cups","perkies","itty bitty milkers","tits","boobs","titties"))
(twirl:
"nice tits","nice perkies","nice little titties","nice boobs",
"those are some squeezable little titties",
"I wouldn't mind playing with those perky little things",
"I love watching the way your perky tits bounce",
"those perfect little $tits are mesmerizing",
"your itty bitty milkers are just perfect",
"those titties would look even better without anything covering em",
"I wonder what your face looks like, cause I'll never know - stuck staring at those $tits",
"you're so perky, I mean perty, I mean pretty",
"your titties are pretties",
"you've got a nice little handful there",
"you've got a nice little pair of personalities",
"I bet your smile is even sweeter than your little $tits, so smile",
"those little $tits are legendary",
"with $tits as perfect as those, I bet guys have a hard time keeping eye contact",
"those $tits look like a perfect little handful",
"those $tits look so squeezable",
"Those are some nice $tits you got there",
"I wouldn't mind playing with those perky little $tits",
"I love watching the way your perky $tits bounce",
"Those perfect little $tits are mesmerizing",
"Your itty bitty milkers are just perfect",
"Those $tits would look even better without anything covering them",
"I wonder what your face looks like, cause I'll never know - stuck staring at those $tits",
"You're so perky, I mean pretty"
)
](else-if:$character's "breasts" is "C")[
(twirl:
"nice tits","nice rack","nice cans","nice jugs",
"those are some squeezable titties",
"I'd love to motorboat you",
"I wouldn't mind squeezing those tits",
"I love watching your tits jiggle",
"those tits are mesmerizing",
"your milkers are just perfect",
"those titties would look even better without anything covering em",
"I wonder what your face looks like, cause I'll never know - stuck staring at those $tits",
"you're so perky, I mean perty, I mean pretty",
"your titties are pretties",
"you've got a nice rack",
"you've got a nice little pair of personalities",
"I bet your smile is even sweeter than your tits, so smile",
"those $tits are legendary",
"with $tits like those, I bet guys have a hard time keeping eye contact",
"your cleavage interests me",
"those $tits look so squeezable",
"those $tits look heavy, I could hold them for you"
)
](else-if:$character's "breasts" is "D")[
(twirl:
"nice tits","nice rack","nice cans","nice jugs",
"those are some squeezable titties",
"I'd love to motorboat those",
"I wouldn't mind squeezing those big-ass tits",
"I love watching your tits bounce",
"those tits are amazing",
"your milkers are just perfect",
"those big tits would look even better without anything covering em",
"I wonder what your face looks like, cause I'll never know - stuck staring at those $tits",
"you're so perky, I mean perty, I mean pretty",
"your titties are pretties",
"you've got a nice rack",
"you've got a nice pair of personalities",
"I bet your smile is even sweeter than your tits, so smile",
"those $tits are legendary",
"with $tits like those, I bet guys have a hard time keeping eye contact",
"your cleavage interests me",
"those $tits look so squeezable",
"those $tits look heavy, I could hold them for you",
"you could probably feed a small village with those knockers",
"those sweater puppies are just begging to be played with",
"I could lose myself in those $tits for hours",
"I bet your back aches from carrying around those luscious milk jugs all day",
"those hooters are giving me all sorts of dirty ideas",
"I've never seen a rack that could make me drool like yours does",
"I'm a big fan of your double D's",
"I want to explore every inch of those $tits",
"I bet those bad boys feel even better in my hands than they look",
"your bodacious ta-tas are making it hard for me to focus on anything else",
"I can't take my eyes off of those big, beautiful melons",
"I'm sure you hear this a lot, but those are some seriously impressive fun pillows",
"I wouldn't mind getting lost in your cleavage for a while",
"I'm just a simple guy who loves a good set of knockers, and you've definitely got that"
)
](else-if:$character's "breasts" is "E")[
(set:$tits to (twirl:"cans","jugs","milkers","tits","boobs","titties","udders","bazongas"))
(twirl:
"nice udders","nice rack","nice cans","nice jugs",
"those are some big ol' titties",
"I'd love to motorboat those",
"I wouldn't mind squeezing those big-ass $tits",
"I love watching your $tits bounce",
"those $tits are amazing",
"your milkers are just perfect",
"those big tits would look even better without anything covering em",
"I wonder what your face looks like, cause I'll never know - stuck staring at those $tits",
"you're so perky, I mean perty, I mean pretty",
"those huge $tits must hurt your back",
"you've got a nice rack",
"you've got a nice pair of personalities",
"I bet your smile is even sweeter than your tits, so smile",
"those $tits are so nice and big","with $tits like those, I bet guys have a hard time keeping eye contact",
"your cleavage interests me",
"those $tits look so squeezable",
"those $tits look so damn heavy, I could hold them for you",
"those $tits are HUGE, I'm in love",
"those $tits are gigantic",
"you must need a wheelbarrow to carry around those massive $tits",
"your $tits are like two bowling balls, I bet they weigh a ton",
"those $tits are bigger than my head, I'd love to bury my face in them",
"Your $tits are so huge, they're practically a third person in this conversation",
"those $tits are so big, they should come with their own zip code",
"I bet you can't even find a bra that actually fits those massive $tits",
"your $tits are like a magnet, I just can't stop staring",
"I can't even imagine the amount of attention those $tits get",
"those $tits are like two giant targets on your chest",
"your $tits are so huge, they probably have their own gravitational pull",
"those $tits are like two basketballs, I just want to bounce them",
"I bet those $tits could suffocate me if I got too close",
"your $tits are like two massive pillows, I just want to sink my head into them",
"those $tits are so big, they probably need their own separate seat on an airplane",
"I bet you can't run without giving yourself a black eye, with $tits like that",
"your $tits are like two watermelons, they're just so juicy and ripe",
"those $tits are so big, I bet they have their own gravitational field",
"your $tits are like two giant orbs, I just want to play with them"
)
](else-if:$character's "breasts" is "F" or $character's "breasts" is "G")[
(set:$tits to (twirl:"cans","jugs","milkers","tits","boobs","titties","udders","bazongas"))
(twirl:
"nice udders","nice rack","nice cans","nice jugs",
"those are some big ol' titties",
"I'd love to motorboat those",
"I wouldn't mind squeezing those big-ass $tits",
"I love watching your $tits bounce",
"those $tits are amazing",
"your milkers are just perfect",
"those big tits would look even better without anything covering em",
"I wonder what your face looks like, cause I'll never know - stuck staring at those $tits",
"you're so perky, I mean perty, I mean pretty",
"those huge $tits must hurt your back",
"you've got a nice rack",
"you've got a nice pair of personalities",
"I bet your smile is even sweeter than your tits, so smile",
"those $tits are so nice and big",
"with $tits like those, I bet guys have a hard time keeping eye contact",
"your cleavage interests me","those $tits look so squeezable",
"those $tits look so damn heavy, I could hold them for you",
"those $tits are HUGE, I'm in love",
"those $tits are gigantic",
"I don't care if your tits are floppy, I love them",
"I love those massive $tits",
"those gargantuan $tits are totally my jam",
"you can tit-fuck easily with that massive rack",
"those things are ENORMOUS",
"it must hurt to walk with $tits that big",
"those are some massive udders you've got there",
"I bet your milkers could feed the whole herd",
"I'd love to get lost in those $tits",
"those $tits are so huge, they're practically begging to be groped",
"I bet those massive $tits get in the way all the time",
"those are some cow-level $tits you've got there",
"those are some prime breeding $tits right there",
"I'd love to milk those $tits",
"I bet those huge $tits would look even better covered in my cum",
"those $tits are so massive, I don't know how you don't tip over",
"your $tits are so huge, they could be weaponized",
"I'd love to get my hands on those massive $tits",
"those $tits must weigh a ton",
"those $tits are so huge, I don't know how you manage to walk around",
"I bet those massive $tits feel amazing to squeeze",
"those are some serious milk makers you've got there"
)
](twirl:"!",".","!!")"
](else-if:$catcall is "hey sentence")[
"(twirl:"Ayy girl!","Goddamn, girl!","Holy shit girl!","Holy shit!","Hey you!","Check this bitch out!","Yo check this slut out!","Hey check this bitch out!","Dayum, girl!","Damn!")
(twirl:
"Them's some nice $tits",
"Those are some amazing $tits",
"You're boobiful",
"You're udderly gorgeous",
"That's a MILK TRUCK right there",
"That's what we call a MILK truck around here",
"Those $tits are fire",
"That is a nice set o' $tits you got there",
"That's a nice pair of $tits you got",
"That's a fuckin' nice pair of $tits",
"YOU got $tits",
"Your $tits... so perfect... so squeezable... MMM",
"Did your $tits dial me, because I swear I can hear them calling me",
"You have such a nice pair of $tits",
"That's a nice pair",
"I wanna bury my face between those $tits",
"I can barely look at your face with those big melons in the way",
"your chest is like a shelf, perfect for resting my beer",
"you realize, right, that you're more of a sex object than a person with those $tits",
"you must have trouble finding bras that fit those watermelons",
"I'm surprised you haven't fallen over from the weight of those massive jugs",
"those cans are worth more than any conversation we could ever have",
"I bet you can't even see your own feet with those fun bags in the way",
"your hooters are so big they deserve their own zip code",
"I could motorboat those sweater puppies for hours",
"I bet you're popular with the guys with a chest like that",
"are those puppies real or are they stuffed?",
"those are some big knockers. Bet they're great to snuggle with",
"I'm surprised you're able to stand up straight with those giant hooters weighing you down",
"if I had access to a pair of breasts like that, I'd never leave the house",
"those things are so big, I bet they have their own zip code",
"you should be proud of those milk makers",
"are those things heavy? You must have back problems",
"sorry, but I can't even look you in the face with those massive bazookas staring me down")(twirl:"!",".","!!")"
](else-if:$catcall is "full")[
"(twirl:
"What a perfect pair of $tits! Would love to have them wrapped around my cock",
"I'd love to shove my face a'twixt those $tits",
"Nice $tits, girl",
"Nice $tits",
"Love your big $tits",
"Nice $tits",
"You're a perfect lil' milk truck with those $tits",
"You're just the breast",
"Nice $tits, girl",
"You're dummy top heavyyyy",
"If a guy sees those $tits and doesn't wanna cum inside you, there's something wrong with him",
"I like big $tits and I cannot lie",
"I'd smack those titties around",
"You've got enough milk for my fruit loops",
"Hey, nice $tits",
"Swiggity switties, damn what nice titties",
"You have sexually attractive mammaries",
"Excuse me miss, but those $tits could stop a train",
"You got a belly to $tits ratio like a damn comic book drawing",
"Whoa what the hell, that's a fine pair of $tits",
"I wouldn't mind pinching your nipples",
"Damn girl, those are some juicy $tits",
"Those big $tits are making me thirsty",
"I can't stop staring at your huge $tits",
"Your $tits are so big and perky, but I'll bet they'll sag when you get older'",
"I want to motorboat those $tits all night long",
"You must have a hard time finding clothes that fit those massive $tits",
"Your $tits are a work of art",
"Those $tits look like they need a good squeezing",
"I bet your back hurts from carrying those big $tits all day",
"I could get lost in your cleavage for days",
"Your $tits are a thing of beauty",
"Those $tits are so perfect, I can't even believe they're real",
"Your $tits make me want to do things I'm not proud of",
"I bet you get a lot of attention with those huge $tits",
"Your $tits are like two giant pillows of heaven")(twirl:"!",".","!!","...")"
]
}{
(set:$pickup to "normal")
(set:$npcrace to $npc's "race")
(display:"catcall id " + $character's "id")
}{(set:$pickup to (twirl:"racial","racial","body","face","face","face","dirty","dirty","face"))(if:$npc's "race" is $character's "race")[(set:$pickup to (twirl:"body","face","face","face","dirty","dirty","face"))](if:$pickup is "racial")[(set:$greeting to (twirl:"Hey there cutie,","Hey girl,","Oh my god,","Don't take this the wrong way, but","Don't get offended, but","I'm not racist or anything, but","Hey babe,","Hey girl,","Mmmm,","Wowza,","Hey,"))"(twirl:"$greeting are you latina? You're so fucking gorgeous.","$greeting can I ask, are you white, or latina? Either way, you're gorgeous.","$greeting I feel like you look like a Latina nympho Miley Cyrus.","$greeting are you latina or something? I love slim girls with a big ass like you.","Heym I can't tell, are you latina or white? Either way, you're a fucking 10 out of 10!","$greeting are you latina? Muy caliente!!!","What is your ethnicity? You're so hot!","You are a goddess. Where are you from?","You're so hot. What's your ethnicity?","Mmm, I love a sexy latina brunette.","You must be Trump’s wall, because I can’t get over you.")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey,","Fuck,","Goddamn,","Hey girl,","Hey,","Oh my god,","Holy shit girl,"))"(twirl:"$greeting everything about you is perfect, that body, that face, mmm.","$greeting I love your body. What do you do to maintain it? Any special workout routines?","Your face, your body, everything is perfect!","$greeting you're such a babe... are you all natural?","$greeting you really got a beautiful body.","$greeting your body is fucking elegant.","$greeting your body is so slender, yet fuckable.","$greeting I love fucking girls with your body type.")"]
(if:$pickup is "face")[(set:$greeting to (twirl:"Hey doll,","Hey gorgeous,","Hey there girl,","Hey girl,","Hey,","Hey there cutie-pie,","Oh my god,","Holy fuck girl,"))"(twirl:"$greeting you've got angel eyes, but the devil's tongue.","$greeting I feel like you're the prettiest babe on the planet.","$greeting your eyes are so sexy.","$greeting you look so fucking elegant...","Let me pick my jaw off the ground, you are so gorgeous.","$greeting your face alone gave me an instant boner!","Do you mind if I say, you have bedroom eyes?","You have the face of a real slut. But in a good way! Is it true though?","You're gorgeous, but you got a resting bitch face.","$greeting I normally don't go for brunettes, but you're perfect!","Fuck, you're gorgeous.","$greeting I thought you were giving me angry looks, but I think you just have a resting bitch face, haha. You're so freaking hot though!","$greeting God specifically designed you to be hot.","$greeting you're so hot, I might jerk off to you tonight. That is, unless there's hope for me!","Oh my god, your eyes...","$greeting you've made me hard just with your eyes. How does that make you feel?","You look a little like Miley Cyrus, anybody ever tell you that?","With a face like that, you could easily become a model.","You're so cute and sexy at the same time.","You got me feeling like Lo Pan with those green eyes. They look brown from a distance, but they're green up close.","$greeting those eyes, tho!","$greeting you look a little like Cassie from Euphoria... hot as fuck.")"]
(if:$pickup is "dirty")["(twirl:"I'd love for you to be my stepsister, haha.","Jesus, you're a cutie. I'd love to tap that ass, haha.","You may have an RBF, but lemme tell you, I'd be DTF.","You look like the kind of girl who might have daddy issues.","I bet you could suck a golf ball through a garden hose.","You're so fuckin sexy. I don't think I'd able to pull out.","I feel like your mouth was designed to suck dick.","My spider senses tell me you like cock.","You got a big mouth, made for big cocks like mine! Haha.")"]}{
(set:$pickup to (twirl:"body","body","body","face","face","dirty","dirty","racial","racial"))(if:$npc's "race" is $character's "race")[(set:$pickup to (twirl:"body","body","body","face","face","dirty","dirty"))]
(if:$pickup is "body")["(twirl:"Fuck, I love those big tits. Are they all natural?","Bae, you got some beautiful fat tiddies.","My mouth actually watered when I first set eyes on you.","You are so fuckable. Like, your body is built for sex!","Damn I'm sure you get this a lot, but I love your tits. They're like UDDERS really.","You're an all around stunner. Your curves, eyes, lips, skin color. Mmm.","Those tits need to be classified as WMD, they could knock somebody out.","You're so fuckin sexy, with those amazing tits.","Biracial, curvy, big natural breasts, pretty face. You're fucking gorgeous.","You're like a thick version of Zendaya.","I want to suck on those...","I like my girls thicc like you!","God damn I love the way your body jiggles when you walk.","Your body is so nice and thick... I love it.","Your tits are like... supreme. My god.","That sexy, curvy body you have just gave me an instant boner.","Damn girl, I'd love to make that jiggly body jiggle even more, if you know what I mean.","I love your short, stacked body. Mmm. Big tits and ass.","Looks like you're all natural, how your body bounces. Mmm.","Damn girl, I love your body. Everything about you... mmm.","Wow, girl. Thickness for the win!","Holy shit, how big are your boobs actually??")"]
(if:$pickup is "face")["(twirl:"You are so fuckin' fine!","With looks like yours, you could easily be the sugar baby of a billionaire.","You look a little like Rihanna - anyone ever tell you that?","I feel like you're one of the most beautiful women EVER.","I think I need to invent new words to describe you. Fantacredibleous?","How can someone be so hot???")"]
(if:$pickup is "racial")["(twirl:"I don't normally go for black girls, but you're HOT!","Are you biracial or something? You're so damn fine.","You look like a fucking fertility goddess. What's your race?","You look like an NBA All-star Weekend groupie. Thick, big tits, ethnically ambiguous. Me likey.","I'd make a baby with you, with a body and face like yours! Fuck. What's your race?","You're so hot for a black girl. Fuck. Or are you latina?","You're so beautiful. What's your race?","What is your ethnicity? Are you biracial?","Are you biracial? You're so freaking hot.","You're fucking flawless. Are you latina? Or African American?","My god, just look at *you*! Where are you from?","Damn girl, where are you from? Are you black? Dominican? So freaking hot!")"]
(if:$pickup is "dirty")["(twirl:"I'd hit that so hard, for a good 45 seconds before I'd nut inside you.","I feel like you have the looks to marry a millionaire or billionaire. But can I get a little sucky sucky fucky fucky in first?","You're so fucking... fuckable.","You've made me hard already. Do you like that?","Those massive tits would look great wrapped around my cock.","Damn girl, I feel like you could really drain my balls, with a body and face like that.")"]
}{
(set:$pickup to (twirl:"body","body","body","face","face","dirty","dirty","racial","racial"))
(if:$npc's "race" is $character's "race")[(set:$pickup to (twirl:"body","body","body","face","face","dirty","dirty"))]
(if:$pickup is "body")["(twirl:"Fuck, I love those big tits. Are they all natural?","Bae, you got some beautiful fat tiddies.","What size are they? I'm going with big... did I guess correctly? Are you the prize?","My mouth actually watered when I first set eyes on you.","MMm girl, that beautiful body... you need to be tamed!","I'll be honest, I'm not totally sold on your face... but your body is incredible.","You are so fuckable. Like, your body is built for sex!","Damn I'm sure you get this a lot, but I love your tits. They're like UDDERS really.","You're an all around stunner. Your curves, eyes, lips, skin color. Mmm.","Those tits need to be classified as WMD, they could knock somebody out.","You're so fuckin sexy, with those amazing tits.","I like my girls thicc like you!","God damn I love the way your body jiggles when you walk.","Your body is so nice and thick... I love it.","Your tits are like... supreme. My god.","That sexy, curvy body you have just gave me an instant boner.","Damn girl, I'd love to make that jiggly body jiggle even more, if you know what I mean.","I love your short, stacked body. Mmm. Big tits and ass.","Looks like you're all natural, how your body bounces. Mmm.","Damn girl, I love your body. Everything about you... mmm.","Wow, girl. Thickness for the win!","My god, just look at you! Where are you from?","Your boobs... your body... majestic.","To be honest, your face is just so-so, but your boobs. Mmm. I'd forget all that for those boobies.","Love those fuckin' hangers on you... goddess.","Hmm, you're hips are very wide. You look like you'd make good breeding stock.")"]
(if:$pickup is "face")["(twirl:"Don't take this the wrong way, but you look a lil like Pete Davidson, but with tits.","Anyone tell you that you look a bit like Mia Khalifa?","You are so fuckin' fine!","How can someone be so hot???","With looks like yours, you could easily be the sugar baby of a billionaire.","You're giving me some serious Jynx Maze vibes.")"]
(if:$pickup is "dirty")["(twirl:"Let me just say... you're a *prime* fuck.","You just look so damn bangable.","I'd hit that so hard, for a good 45 seconds before I'd nut inside you.","I want to suck on those...","You're so fucking... fuckable.","I would dive in that pussy so deep I'd need scuba gear.","You've made me hard already. Do you like that?","Those massive tits would look great wrapped around my cock.","Damn girl, I feel like you could really drain my balls, with a body and face like that.","After consulting biologists, physicists, and mathematicians around the world, I have deduced I would last approximately 4.7 seconds in your pussy.")"]
(if:$pickup is "racial")["(twirl:"Damn girl, where are you from? Your body got me breaking my neck here.","You look like an NBA All-star Weekend groupie. Thick, big tits, ethnically ambiguous. Me likey.","You're delicious. Are you Arab?","Biracial, curvy, big natural breasts, pretty face. You're fucking gorgeous.","I'd make a baby with you, with a body and face like yours! Fuck. What's your race?","You're so thick, even for a latina. Goddamn.","You're so beautiful. What's your race?","What is your ethnicity? Are you biracial?","Are you biracial? You're so freaking hot.","You're fucking flawless. Are you latina? Or African American?","I don't normally go for latina girls, but you're HOT!","Are you biracial or something? You're so damn fine.","You look like a fucking fertility goddess. What's your race?")"]
}{
(set:$pickup to (twirl:"body","body","face","dirty","dirty","racial","racial","racial","racial"))
(if:$npc's "race" is $character's "race")[(set:$pickup to (twirl:"body","body","face","dirty","dirty"))]
(if:$pickup is "racial")[(set:$greeting to (twirl:"Hey there cutie,","Hey girl,","Oh my god,","Don't take this the wrong way, but","Don't get offended, but","I'm not racist or anything, but","Hey babe,","Hey girl,","Mmmm,","Wowza,","Hey,"))"(twirl:"Me will love you long time! Hehe, I mean, you're hot.","$greeting I love asians, and your body is killer.","$greeting you're so curvy for an asian, I love it!","$greeting I bet you have a really tight pussy. Do you?","$greeting I'd love to see your tiny little asian pussy stretched around my big $npcrace dick!","You're breathtaking. Where are you from?","Good lord, you are *juicy* for an asian.","$greeting your tits are just astounding. Especially for an asian.","Oh my god, you're so hot. Are you from China?","Even if you're not a good driver, I'd still love to take *you* for a drive!","$greeting I promise I don't have the yellow fever, I just think you're really cute!","$greeting I've always wanted to dominate a delicate little geisha flower like you... mmm.","Mmm, you are an oriental delight!","$greeting are you from China? Because I'm China get on you!","$greeting are you from the Philippines? Because I wanna *Phil* you with my *penis*. Too much?","$greeting are you from Thailand? Cause tonight your going to BangKok! Get it?","$greeting are you from Tokyo? Because I want to get in Japanese. As in, your panties!","$greeting do you know why I like Asian girls? Because they’re tighter.","$greeting I would like to introduce my Crouching Tiger to your Hidden Dragon!","I bet you give really good massages. Hehe.","Why don't we dim sum lights?","You're really curvy for an asian girl!","$greeting you're one of the hottest asian girls I've ever seen!","$greeting can you be my sexy Asian goddess?","Mind if I colonize your pussy with my big $npcrace cock?","$greeting I'd love to see those cute asian lips wrapped around my cock. Either pair, hehe.","$greeting you have an amazing rack for an asian girl, is it natural?","Where are you from? You're so cute!")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey,","Fuck,","Goddamn,","Hey girl,","Hey,","Oh my god,","Holy shit girl,"))"(twirl:"$greeting you're so cute and little. But your tits are big!","I like girls with your body type, small and petite.","$greeting you're so small and cute!","Those tits are huge! Are they natural?","Fuck! You're so curvy for such a short girl. Me likey.","$greeting you're short, but stacked! Curves like a race track.","$greeting I like that your body is small, but curvy. Tiny but mighty!","$greeting you're fun-sized, and those tits are killer.","$greeting those tits are amazing.","$greeting you have the body of a mini goddess.","$greeting you're so short, yet so stacked.","$greeting you got such big tits for such a cute little girl!","$greeting those tits are so nice... can they possibly be natural?","$greeting you're fucking adorable. So short, yet stacked!")"]
(if:$pickup is "face")[(set:$greeting to (twirl:"Hey doll,","Hey gorgeous,","Hey there girl,","Hey girl,","Hey,","Hey there cutie-pie,"))"(twirl:"$greeting has anyone ever told you you look like Chun Li? You know, that chick from Street Fighter 2.","$greeting you're so cute! I just wanna pinch your cheeks. And other parts of you, hehe.","Hey, you're gorgeous!","$greeting I'm sure you hear it a lot, but you're really pretty.","$greeting ou're breathtakingly beautiful!","$greeting you're one of the most beautiful girls I've ever seen.","$greeting you're really pretty.","$greeting I love how exotic-looking you are.","Is it weird to say I love your lips?","You're so pretty. I love your eyelashes, your black hair, mmm.","You're so freaking cute! Can I have your number?","Hey, you're fucking gorgeous!","$greeting you're a total *bombshell.*","$greeting anyone ever tell you that you have a *come hither* sort of face?","$greeting you're fucking hot.")"]
(if:$pickup is "dirty")[(set:$greeting to (twirl:"Hey girl,","Hey there girl,","Hey,","Hey slut,","Hey,","Hey, don't get offended, but","Hey, not to be offensive, but"))"(twirl:"$greeting I feel like you were made to be pounded. Mm. So small, yet so much breast meat. And I bet your pussy is tight!","$greeting you make me so fucking hard.","$greeting I would pull that black hair roughly when I fuck you.","$greeting that cute little body is just begging to be fucked. Don't say no to it!","$greeting I'd love to cover that cute little face with cum.","$greeting something about sultry exotic asian faces, just makes me want to cover them with cum.","Would you like to help drain my balls?","You look like you like cocks.","You're barely 5 feet tall, perfect for sucking my cock.","$greeting I bet you go ga-ga for cocks.","I wanna pump your fertile asian pussy full of cum!","My god, the things I would do to *you*.","$greeting you don't have an innocent face. Yours just says 'slut'.","$greeting I bet those thick lips would look best, wrapped around my big $npcrace cock.","$greeting you have a whorish face. I like it.","$greeting you just look like a slut with that face. There's no escaping it.","$greeting you're a sexy little firecracker, how would you like to come over and give me a blowjob?")"]
}{
(set:$pickup to (twirl:"face","face","body","dirty"))
(set:$greeting to (twirl:"Hey girl,","Hey,","Ayyy girl,","Hey beautiful,","Hey there gorgeous,","Hey there,","Hello there,"))
(if:$pickup is "face")["(twirl:"$greeting you're so pretty, it hurts!","Guess what, I have a thing for redheads. You check off a lot of boxes...","Redheads are so hot! You're amazing.","$greeting is it true what they say about gingers and souls?","God, your red hair, your eyes... fuck...","Fuck. Redheads like you can have it.","I love your red hair, your pale skin... fuck.","$greeting you look like the perfect gingerbread cookie for me.","You look like you're a lot of fun.","You're such a beautiful ginger. Everything about you is sexy.","Your face, you're like an actual goddess.","$greeting you are super cute.","$greeting I love the sheer intensity of your face!","Pale skin, red hair, you're my favorite colour scheme!","$greeting anyone ever tell you that you look like a red-headed Ananya Pandey? Honestly, I think you're prettier.","$greeting you're a 10 out of 10. I love redheads.","$greeting, anyone ever tell you that you look like Bella Thorne?","$greeting your eyes are incredible.","your eyes are fucking *orgasmic.*","$greeting you're giving me Kim Possible vibes.","$greeting you are drop-dead gorgeous!","$greeting you're one of the hottest redheads I've ever seen!","you're so fucking cute and hot at the same time!")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,"))"(twirl:"$greeting that bubble butt is driving me crazy.","$greeting that ass is peachy. I love a girl who's bottom-heavy.","$greeting you're bottom heavy... small tits, but a big ol' butt. Just how I like it.","$greeting aren't *you* a delicious little gingerbread cookie, with a big ass?","$greeting that ass is FAT!")"]
(if:$pickup is "dirty")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,","Don't take this the wrong way...","Please don't get offended, but","Don't get offended by this, but"))"(twirl:"$greeting you're so fucking hot, I can't imagine what your O-face is like.","Wanna know a secret? Redheads get me hard, just about instantly. See it straining against my pants?","I don't even mind if you suck my soul out of my body, as long as you're sucking my cock. Hahaha.","Girls like you need to be *spanked*. Just saying.","Here's a rhyme... your hair is so red, I want you in my bed. How was that?","I want a sweet kiss and some naughty dirty sex.","You could make me hard without showing any titty or ass. In fact, I'm hard right now.","I always thought I'd like to have redhead kids. Maybe you can help me with that!","$greeting you are a ginger dime-piece, I'd love to blow a load in you.","$greeting you are FUCKABLE.","$greeting I'd love to blow my load all over your big, pale ass.","$greeting I'd love to pull that beautiful red hair while I fuck you.","$greeting your ass is amazing, big and round. And your face is fucking gorgeous, perfect to cover with cum.")"]
}{
(set:$pickup to (twirl:"face","face","body","dirty"))
(set:$greeting to (twirl:"Hey girl,","Hey,","Ayyy girl,","Hey beautiful,","Hey there gorgeous,","Hey there,","Hello there,","Goddamn girl,","Holy shit girl,","Hey,","Hey girl,"))(set:$very to (twirl:"so","so freaking","so fucking","so goddamn","so","so"))
(if:$pickup is "face")["(twirl:"$greeting you're such a dime piece but look quite mentally unstable. I'd still hit it though!","$greeting you're such a genuine beauty.","$greeting you look $very tasty.","$greeting you're just $very gorgeous, absolutely fuckable.","$greeting you look like an actual dream girl.","$greeting you really have a face like a future milf.","$greeting you're perfect eye candy.","$greeting you're $very beautiful.","$greeting you're $very ethereal.","$greeting your smile would light up any room.","$greeting I'm totally lost in those eyes.","$greeting you're the prettiest brunette I've seen in a while.","$greeting you're $very beautiful that you'd make the average man weak in the knees.","$greeting you are such a babe.","$greeting anyone ever tell you that you look like Hannah Baker? Katherine Langford.","$greeting you got that brunette barbie look really going for ya.","$greeting you look like the pornstar version of Emily Blunt.","You sort of remind me of Alexandra Daddario. It's the striking eyes and dark hair that do it.","$greeting your blue eyes are so hypnotizing.","$greeting you look like a kinky Katy Perry!")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,","Fuck...","Mmm...","God...","God,"))"(twirl:"$greeting those tits, that big ass, you're perfect!","$greeting your body is practically made for sex.","God, even if that body isn't all natural, I'd still fuck you any day of the week.","$greeting you have such nice tits and ass, like an hourglass.","$greeting your pornstar body gonna make me go giggity.","$greeting you got a body like a racetrack.","$greeting you got a body like a bimbo. It's a good thing.","$greeting I'm already addicted to staring at that body.","With that body, you're my type of girl. Hourglass shape, big tits, big ass.","I'd love to spank that big ass. And squeeze those tits.","$greeting your body really got my heartrate up.","$greeting you've got a big ass for a white girl.","$greeting I love your ass, your thick thighs, your sexy eyes, your tits, everything about you!","$greeting you're such a hot piece of ass. You'd look so good in lingerie.")"]
(if:$pickup is "dirty")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,","Don't take this the wrong way...","Please don't get offended, but","Don't get offended by this, but"))"(twirl:"$greeting you're so fucking hot, I can't imagine what your O-face is like.","$greeting you look like a natural born slut.","$greeting you're so fucking sexy, I could make you my bitch and you'd love it.","$greeting those thick lips were made to suck dick.","$greeting you got those 'I will either suck you off or chop your fucking head off' eyes. So... which is it?","$greeting I would love to tie you up and make you my sex slave.","$greeting you got the face of a bimbo slut.","$greeting you look like a slut, a dirty, nasty slut. And I like it.","$greeting I'd love to see those big tits bouncing all over the place when I fuck you.","$greeting you don't know what I'd do to fuck you.","$greeting I'm just gonna say right now, that I wouldn't last 10 seconds with a blowjob from you. Holy shit, those eyes are sexy.","$greeting you're so sexy. Any guy would be so lucky to have you sit on his face.","$greeting your ass is incredible, I'd love to watch you slam it back against my cock.")"]
}{
(set:$pickup to (twirl:"face","face","body","dirty"))
(set:$greeting to (twirl:"Hey girl,","Hey,","Ayyy girl,","Hey beautiful,","Hey there gorgeous,","Hey there,","Hello there,","Goddamn girl,","Holy shit girl,","Hey,","Hey girl,"))(set:$very to (twirl:"so","so freaking","so fucking","so goddamn","so","so"))
(if:$pickup is "face")["(twirl:"$greeting you're such a goddess!","$greeting you're such a genuine beauty.","$greeting you look $very tasty.","$greeting you're just $very gorgeous, absolutely fuckable.","$greeting you look like an actual dream girl.","$greeting you're perfect eye candy.","$greeting you're $very beautiful.","$greeting you're $very hot. I love your tattoos.","$greeting your smile would light up any room.","$greeting I'm totally lost in those eyes.","$greeting you're the prettiest brunette I've seen in a while.","$greeting you're $very beautiful that you'd make the average man weak in the knees.","$greeting you are such a babe.","$greeting you're one of those girls, that the word 'perfect' is an understatement for.","$greeting you got that brunette barbie look really going for ya.","You're so gorgeous, that it literally hurts to look at you. But imma do it anyway, haha.","I know that your boobs get a lot of attention but damn, your face is really something else, amazing.")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,","Fuck...","Mmm...","God...","God,","Jesús Cristo..."))"(twirl:"$greeting your tits are perfect, like you're from another dimension!","$greeting your body is practically made for sex.","God, even if that body isn't all natural, I'd still fuck you any day of the week.","$greeting I mean this in an honest way - you have the nicest pair of tits I've literally ever seen.","$greeting your pornstar body gonna make me go giggity.","$greeting you got a body like a racetrack.","$greeting you got a body like a bimbo. It's a good thing.","$greeting I'm already addicted to staring at that body.","With that body, you're my type of girl. Are those tits natural?","I'd love to squeeze those tits. They jiggle so much whenever you walk, must be natural.","$greeting your body really got my heartrate up.","$greeting you got a lotta tats there... are they all over your body? Would love to see them.","$greeting I love those tits! Your body is like tits on a stick, haha.","$greeting you're such a hot piece of ass. You'd look so good in lingerie.","I love how you show off your tits. Whoops, I mean, *tats*, of course!")"]
(if:$pickup is "dirty")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,","Don't take this the wrong way...","Please don't get offended, but","Don't get offended by this, but"))"(twirl:"$greeting you're so fucking hot, I can't imagine what your O-face is like.","$greeting you look like a natural born slut.","$greeting you're so fucking sexy, I could make you my bitch and you'd love it.","$greeting those lips were made to suck dick.","$greeting I would love to tie you up and make you my sex slave.","$greeting are those tattoos all over your body?","$greeting I'd love to see those big tits bouncing all over the place when I fuck you.","$greeting you don't know what I'd do to fuck you.","$greeting I'm just gonna say right now, that I wouldn't last 10 seconds with a blowjob from you. Holy shit, those eyes are sexy.","$greeting did you sleep with the guy who gave you those tats?","$greeting your tits are incredible, I'd love to grab them while I fuck you.")"]
}{
(set:$pickup to (twirl:"face","body","body","dirty"))
(set:$greeting to (twirl:"Hey girl,","Hey,","Ayyy girl,","Hey beautiful,","Hey there gorgeous,","Hey there,","Hello there,"))
(if:$pickup is "face")["(twirl:"$greeting you're so pretty, it hurts!","Guess what, I have a thing for blondes. You check off a lot of boxes...","I have a thing for blonde bombshells like you.","$greeting will you be my blonde barbie doll?","God, your blonde hair, your eyes... fuck...","Fuck. Blondes like you can *get* it.","I love your blonde hair, your pale skin... fuck.","$greeting you look like the perfect gingerbread cookie for me.","You look like you're a lot of fun.","You're such a beautiful blonde. Everything about you is sexy.","Your face, you're like an actual goddess.","$greeting you are super cute.","$greeting I love the sheer intensity of your face!","Pale skin, blonde hair, you're my favorite colour scheme!","$greeting you're a sexy blonde goddess.","$greeting you're a 10 out of 10. I love blondes.","$greeting, you're just so fucking cute. That's all there is to say.","$greeting your eyes are incredible.","your eyes are fucking *orgasmic.*","$greeting you're giving me Kim Possible vibes.","$greeting you are drop-dead gorgeous!","$greeting you're one of the hottest blondes I've ever seen! Just delightful.","$greeting you're so fucking cute and hot at the same time!","$greeting your gorgeous blue eyes are blazing into my soul...","$greeting you look like a dream come true.","$greeting you're so cute, I don't care if you're dumb!")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,"))"(twirl:"$greeting that bubble butt and those big tits are driving me crazy.","$greeting those tits are amazing. I love a girl who's top-heavy.","$greeting you're top heavy... big ol' milkers. Just how I like it.","$greeting aren't *you* a chesty delight to behold?","$greeting your tits are incredible...","Oh my god, I don't know what's hotter... your sexy eyes? Cute face? Or those perfect tits? What a woman!","$greeting I just love your body.","$greeting you're so cute, and that natural body is insane. So thick and juicy.","$greeting with a body like yours, I don't mind if you're a dumb blonde.")"]
(if:$pickup is "dirty")[(set:$greeting to (twirl:"Hey girl,","Hey girl, FUCK,","Oh my GOD girl,","Hey there beautiful,","Hey there gorgeous,","Hey there,","Hello there,","DAMN girl,","Mmm,","Holy FUCK girl,","DAYUM girl...","FUCK,","Goddamn girl,","Don't take this the wrong way...","Please don't get offended, but","Don't get offended by this, but"))"(twirl:"$greeting you're so fucking hot, I can't imagine what your O-face is like.","Wanna know a secret? Blondes get me hard, just about instantly. See it straining against my pants?","$greeting I don't mind a dumb blonde, if you're good at cocksucking.","I don't even mind if you suck my soul out of my body, as long as you're sucking my cock. Hahaha.","Girls like you need to be *spanked*. Just saying.","Here's a rhyme... your hair is so blonde, I want you in my bed. How was that?","I want a sweet kiss and some naughty dirty sex.","You could make me hard without showing any titty or ass. In fact, I'm hard right now.","I always thought I'd like to have blonde kids. Maybe you can help me with that!","$greeting I'd love to cum all over your cute, pretty face.","$greeting you are FUCKABLE.","$greeting I'd love to blow my load all over your big, pale ass.","$greeting I'd love to pull that beautiful blonde hair while I fuck you.","$greeting your ass is amazing, big and round. And your face is fucking gorgeous, perfect to cover with cum.","$greeting if my cock was in your hand, I would bust almost immediately.","$greeting you look like such an amazingly good fuck, it hurts.","$greeting I would do despicable unforgivable things to have you stroke my cock. You're a woman who deserves cum in her everyday.","You are fucking build. For. Cock.")"]}{
(set:$pickup to (twirl:"body","body","face","dirty","dirty","face","racial","racial","racial"))
(if:$npc's "race" is "asian")[(set:$pickup to (twirl:"body","body","face","dirty","dirty","face"))]
(if:$pickup is "racial")[(set:$greeting to (twirl:"Hey there cutie,","Hey girl,","Oh my god,","Don't take this the wrong way, but","Don't get offended, but","I'm not racist or anything, but","Hey babe,","Hey girl,","Mmmm,","Wowza,","Hey,"))"(twirl:"Me will love you long time! Hehe, I mean, you're hot.","$greeting I love asians, and your body is killer. Are those tits natural?","$greeting your tits are really nice for an asian.","$greeting I bet you have a really tight pussy. Do you?","$greeting I'd love to see your tiny little asian pussy stretched around my big $npcrace dick!","You're breathtaking. Where are you from?","Good lord, you are like tits on a stick! Nice and squeezable, especially for an asian girl.","$greeting your tits are lovely. Especially for an asian.","Oh my god, you're so hot. Are you from Japan?","Even if you're not a good driver, I'd still love to take *you* for a drive!","$greeting I promise I don't have the yellow fever, I just think you're really cute!","$greeting I've always wanted to dominate a delicate little geisha flower like you... mmm.","Mmm, you are an oriental delight!","$greeting are you from China? Because I'm China get on you!","$greeting are you from the Philippines? Because I wanna *Phil* you with my *penis*. Too much?","$greeting are you from Thailand? Cause tonight your going to BangKok! Get it?","$greeting are you from Tokyo? Because I want to get in Japanese. As in, your panties!","$greeting do you know why I like Asian girls? Because they’re tighter.","$greeting I would like to introduce my Crouching Tiger to your Hidden Dragon!","I bet you give really good massages. Hehe.","Why don't we dim sum lights?","You're really curvy for an asian girl!","$greeting you're one of the hottest asian girls I've ever seen!","$greeting can you be my sexy Asian goddess?","Mind if I colonize your pussy with my big $npcrace cock?","$greeting I'd love to see those cute asian lips wrapped around my cock. Either pair, hehe.","$greeting you have an amazing rack for an asian girl, is it natural?","Where are you from? You're so cute!","$greeting you look like the perfect little geisha.")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey,","Fuck,","Goddamn,","Hey girl,","Hey,","Oh my god,","Holy shit girl,"))"(twirl:"$greeting you're so cute and little. But your tits are actually pretty big!","$greeting I like girls with your body type, small and petite.","$greeting you're so small and cute!","Those tits are so nice! Are they natural?","Fuck! You're so curvy for such a short girl. Me likey.","$greeting you're so small and fuckable. Fun sized!","$greeting I like that your body is small, but curvy. Tiny but mighty!","$greeting you're fun-sized, and those tits are killer.","$greeting those tits are amazing. I can tell they're natural.","$greeting you have the body of a mini goddess.","$greeting I love short girls. Especially with a cute little C cup tits like those.","$greeting you got decent tits for such a cute little girl!","$greeting those tits are so nice... like perfect little handfuls.","$greeting you're fucking adorable. Short, yet stacked!","$greeting those tits look like yummy handfuls.")"]
(if:$pickup is "face")[(set:$greeting to (twirl:"Hey doll,","Hey gorgeous,","Hey there girl,","Hey girl,","Hey,","Hey there cutie-pie,"))(set:$very to (twirl:"so","goddamned","so fucking","freaking","so freaking","so fucking","fucking","so fucking","so","*really*"))"(twirl:"$greeting you're $very gorgeous.","$greeting you're $very cute! I just wanna pinch your cheeks. And other parts of you, hehe.","Hey, you're $very gorgeous!","$greeting I'm sure you hear it a lot, but you're $very pretty.","$greeting you're breathtakingly beautiful!","$greeting you're one of the most beautiful girls I've ever seen.","$greeting you're $very pretty.","$greeting I love how exotic-looking you are.","$greeting you're really hot, and $very exotic-looking.","You're so pretty. I love your eyelashes, your black hair, mmm.","You're so freaking cute! Can I have your number?","$greeting you're $very gorgeous!","$greeting you're a total *bombshell.*","$greeting anyone ever tell you that you have a *come hither* sort of face?","$greeting you're fucking hot.","$greeting you may be cute, but you're face does *not* look innocent.","$greeting you have a kinda slutty face. And I mean that in a good way!")"]
(if:$pickup is "dirty")[(set:$greeting to (twirl:"Hey girl,","Hey there girl,","Hey,","Hey slut,","Hey,","Hey, don't get offended, but","Hey, not to be offensive, but"))"(twirl:"$greeting I feel like you were made to be pounded. Mm. So small, yet so much breast meat. And I bet your pussy is tight!","$greeting you make me so fucking hard.","$greeting I would pull that black hair roughly when I fuck you.","$greeting that cute little body is just begging to be fucked. Don't say no to it!","$greeting I'd love to cover that cute little face with cum.","$greeting something about sultry exotic asian faces, just makes me want to cover them with cum.","Would you like to help drain my balls?","You look like you like cocks.","You're barely 5 feet tall, perfect for sucking my cock.","$greeting I bet you go ga-ga for cocks.","I wanna pump your fertile asian pussy full of cum!","My god, the things I would do to *you*.","$greeting you don't have an innocent face. Yours just says 'slut'.","$greeting I bet those thick lips would look best, wrapped around my big $npcrace cock.","$greeting you have a whorish face. I like it.","$greeting you just look like a slut with that face. There's no escaping it.","$greeting you're a sexy little firecracker, how would you like to come over and give me a blowjob?","$greeting I bet you're a dirty little slut. Me likey.")"]
}{
(set:$pickup to (twirl:"body","body","face","dirty","racial"))
(if:$pickup is "racial")[(set:$greeting to (twirl:"Hey there cutie,","Hey girl,","Oh my god,","Don't take this the wrong way, but","Don't get offended, but","I'm not racist or anything, but","Hey babe,","Hey girl,","Mmmm,","Wowza,","Hey,"))"(twirl:"$greeting you're so pretty for a black girl!","$greeting you're one of the hottest black girls I've ever seen.","$greeting I've always wanted to do it with a black girl. Will you be my first?","$greeting can I spank that big black booty?","$greeting you are just absolutely gorgeous for a black girl!","$greeting I love your body, and that delightful chocolate skin. Daddy wants a taste!","$greeting do you think a nice black girl like you could love a $npcrace man like me? I have a big cock!","$greeting you're one of the few black girls I've ever seen that I'd totally fuck.","$greeting I've always wanted to try a black girl.","$greeting you look like a nice slice of chocolate cake.","$greeting I wanna tug on that natural curly hair while I fuck you...")"]
(if:$pickup is "body")[(set:$greeting to (twirl:"Hey girl,","Hey,","Fuck,","Goddamn,","Hey girl,","Hey,","Oh my god,","Holy shit girl,"))"(twirl:"$greeting that bubble butt is driving me crazy.","$greeting that ass is peachy. I love a girl who's bottom-heavy.","$greeting you're bottom heavy... small tits, but a big ol' butt. Just how I like it.","$greeting aren't *you* a delicious little piece of chocolate cake, with a big ass?","$greeting that ass is FAT!","$greeting I wanna spank that fine booty.","$greeting that's a proper dump truck you got there. Looks great on your slender little body.","$greeting I bet that fat ass gets a lot of attention, but I think your tits are nice too!","$greeting you got such a nice little bubble butt going on. It's like a gift from god.","$greeting I think that nice set of C cup tits, with a round ass, is such a sexy combination.","$greeting everything about you is perfect, that body, that face, mmm.","$greeting I love your body. What do you do to maintain it? Any special workout routines?","Your face, your body, everything is perfect!","$greeting you're such a babe... are you all natural?","$greeting you really got a beautiful body.","$greeting your body is fucking elegant.","$greeting your body is so slender, yet fuckable.","$greeting I love fucking girls with your body type. C-cup tits and a fat ass.")"]
(if:$pickup is "face")[(set:$greeting to (twirl:"Hey doll,","Hey gorgeous,","Hey there girl,","Hey girl,","Hey,","Hey there cutie-pie,"))(set:$very to (twirl:"so","goddamned","so fucking","freaking","so freaking","so fucking","fucking","so fucking","so","*really*"))"(twirl:"$greeting you're $very gorgeous.","$greeting those big, dark eyes of yours. They are so mesmerizing.","Hey, you're $very gorgeous!","$greeting I'm sure you hear it a lot, but you're $very pretty.","$greeting you're breathtakingly beautiful!","$greeting you're one of the most beautiful girls I've ever seen.","$greeting you're $very pretty.","You're so pretty. I love your eyelashes, your curly hair, mmm.","You're so freaking gorgeous! Can I have your number?","$greeting you're $very gorgeous!","$greeting you're a total *bombshell.*","$greeting I love your hair, it's fucking sexy. I like it when girls keep it natural.","$greeting you're fucking hot.","$greeting you look like a girl next door!")"]
(if:$pickup is "dirty")[(set:$greeting to (twirl:"Hey girl,","Hey there girl,","Hey,","Hey slut,","Hey,","Hey, don't get offended, but","Hey, not to be offensive, but"))"(twirl:"$greeting I feel like you were made to be pounded. Mm. So small, yet so much breast and ass meat. I bet that pussy is tight too!","$greeting you make me so fucking hard.","$greeting I would pull that black hair roughly when I fuck you.","$greeting that cute little body is just begging to be fucked. Don't say no to it!","$greeting I'd love to cover that cute little face with cum.","$greeting something about sultry exotic black faces, just makes me want to cover them with cum.","Would you like to help drain my balls?","You look like you like cocks.","$greeting I bet you go ga-ga for cocks.","I wanna pump your fertile black pussy full of cum!","My god, the things I would do to *you*.","$greeting you don't have an innocent face. Yours just says 'slut'.","$greeting I bet those thick lips would look best, wrapped around my big $npcrace cock.","$greeting you have a whorish face. I like it.","$greeting you just look like a slut with that face. There's no escaping it.","$greeting you're a sexy little firecracker, how would you like to come over and give me a blowjob?","$greeting I bet you're a dirty little slut. Me likey.","Your lips would look great wrapped around my big $npcrace cock.")"]
}{
(print:(upperfirst:$npc's "description"))
(if:$npc's "tags" contains "chad" and (twist:1,2) is 1)[
(twirl:"moves smoothly through the crowd towards you, eyes shining with blatant interest as he nears you on the dance floor.",
"gets closer to you, his body rhythmically moving to the pounding bass. A suggestive smile plays on his lips as he locks eyes with you.",
"seems to appear out of nowhere, moving with the music. And then, he's up against you, his body pressing into yours, his eyes never leaving your figure.",
"seems to dominate the space around him as he approaches.",
"gracefully moves through the throng of people. When he's eventually at arm's length, he boldly starts dancing up on you.",
"maneuvers through the throng of dancers, before zeroing in on you. His movements confident, he dances up to you.",
"notices you in the crowd, his eyes immediately flashing with interest as he approaches.",
"skillfully glides around the pulsating mass of dancers.",
"confidently shimmies past a line of gyrating bodies, his mesmerizing moves drawing attention from everyone around him, but his laser-focused eyes never leaving yours.",
"doesn't waste any time introducing himself to the dance floor, his swaggering movements standing out in the crowd.",
"fluidly navigates the dance floor like a shark probing the depths of its territory. He spots you amidst the crowd of grinding bodies and slithers over, overtly showcasing his interest, a cocky grin plastered on his face.",
"effortlessly moves across the dance floor. His playful smirk and the confident twinkle in his eyes convey his intentions even before he starts dancing up against you.",
"maneuvers through the crowd, his magnetic presence impossible to miss. His body, streaked with sweat, shimmers in the neon lights of the club.",
"stands out in the crowd, his moves reflecting pure confidence. His eyes find you across the room and he starts slowly dancing his way towards you, a smoldering smile on his lips.",
"makes no pretense of hiding his interest as he dances closer, his body moving with the music.",
"weaves through other dancers, his body undulating with the rhythm. He dances up to you, his intent clear as he matches his sway to yours.",
"commands the floor as he meshes with the rhythm, his eyes on you, marking you as his prey for the night.",
"sways through the crowd like a predator in the wild, closing in on you with an air of certainty.",
"approaches, warm and dripping with charm, his intense eyes professing a lustful sort of interest as he loses himself in the pulsing music and your body.",
"masters the dance floor and the thrum of the crowd, his confidence glowing like a neon sign as he eyes you across the room, ready to make his move.",
"exudes a magnetic allure as he manoeuvres effortlessly through the crowd, his sights set on you like a predator locking onto its prey.",
"struts through the writhing mass of bodies with an unapologetic flair, his eyes lined with a daring challenge as he zeroes in on you, ready to claim your attention.",
"bucks the crowd, his energy pulsing with the rhythm of the music and his full attention attuned to your presence, his confident smile hinting at the night's possibilities.",
"captures your attention as he threads through the crowd, his figure radiating confidence, his eyes silently promising an exhilarating blend of dance and desire.",
"brands himself as an object of allure as he confidently inches closer to you, his gaze openly admiring yet with an edge of anticipation.",
"invades your space with the confidence of a predator, his eyes settled on you, his movements a subtle invitation for a dance of desire.",
"dismisses the sea of undulating bodies around him, his focus solely on you as he dances provocatively towards you, his eyes never wavering from your form.",
"broadcasts an undeniable air of interest as he navigates the dance floor, his gaze locked onto you as he sways his way into your personal space.",
"arrives at your side before you even realise he's there. His body is close, his confidence filling the space between you, his interest in you clear and direct.",
"slips into your space as if he belongs there, his focus sharp on you and his intentions clear as the rhythmic music builds around you.",
"emanates such a magnetic aura that you can feel it even before he breaks through the crowd. When he finally approaches, his smirk is self-assured, his interest in you undisguised.")
(if:$trigger is "butt" and $npc's "personality" < 8 and not ($drugging is "Non-con: Disabled"))[
(display:"describe butt")(set:$hands to $npc's "hands")
(twirl:"Without warning, his hand drops to your $butt, squeezing assuredly as he pulls you closer.",
"His hand on your $butt is firm and unyielding, his smile going from flirtatious to lewd as he deviously squeezes you closer.",
"With an unapologetic grin, he doesn't hesitate to grope your $butt, confidently commanding your attention.",
"He boldly wraps his $hands hand around your $butt, his grin suggesting he knows exactly what he's doing and loves it.",
"His $hands hand unceremoniously lands on your $butt, his cocky grin mirrored in the confident squeeze he gives you.",
"With a smirk playing on his lips, he places his $hands hand on your $butt, kneading it in time with the music.",
"He's dancing up against you now, his hand unambiguously grabbing your $butt, his gaze challenging as he grins.",
"His hand confidently finds your $butt, squeezing it salaciously as he dances with you.",
"A lewd grin crosses his face as he trails his hand down to your $butt, giving it a firm squeeze.",
"Brashly, he cups your $butt in his hand, his grin devilishly daring.",
"He closes the gap between you two with a firm grasp on your $butt, squeezing it in time with the beat.",
"His hands wander to your $butt, giving it an unabashed squeeze.",
"A lewd chuckle escapes him as he reaches down to blatantly grab your $butt, his eagerness mirrored in his firm grip.",
"Unflinching, he firmly grabs your $butt, kneading it obscenely against the rhythm.",
"A wicked smirk crossing his face, he doesn't hesitate to grope your $butt, $hands fingers digging into the soft flesh.",
"His $hands hand descends, palming your $butt with proprietary confidence.",
"His grip on your $butt is possessive and bold, pulling you closer with a lewd grin.",
"He makes his intentions crystal clear by boldly cupping and squeezing your $butt.",
"Decidedly, his hand lands on your $butt, a firm and provocative squeeze following.",
"Daringly, his hand grasps your $butt, his fingers digging deep into your flesh.",
"Without a shred of hesitation, he palms your $butt with a lewd, appreciative squeeze.")
<div class='options'>(set:$gain to 1)(display:"gain arousal")</div>
](else-if:$trigger is "breasts")[
(display:"describe breasts")
(twirl:"His gaze brazenly drops to your $breasts, a grin stretching across his face as he unabashedly appraises your form.",
"He makes no effort to hide his obvious interest as his eyes dart towards your $breasts, his grin lewd and confident.",
"His gaze flicks down unabashedly to your $breasts, a devious smirk playing on his lips.",
"His eyes shamelessly rake over your $breasts as he continues to confidently engage in conversation.",
"A cocky smirk forms on his lips as his gaze boldly drops to your $breasts, lingering there with clear interest.",
"He leans back slightly, shifting his unabashed gaze to your $breasts, clearly appreciating what he sees.",
"His gaze confidently strays down to your $breasts, his smirk growing all the more lewd.",
"His attention descends without apology to your $breasts, the cocky grin plastered on his face reflecting his bold intentions.",
"His gaze shamelessly dives onto your $breasts, the lewd glint in his eyes not wasted on you.",
"A provocative smile plays on his lips as he lewdly lets his gaze fall to your $breasts.",
"His gaze roams undeterred to your $breasts, a gleam of appreciation lighting up his eyes.",
"A roguish glee dances in his eyes as he unabashedly lets his gaze drop to your $breasts.",
"His eyes confidently take in your figure, pausing briefly and noticeably on your $breasts.",
"He speaks to you but his gaze is clearly fixated on your $breasts, an unabashed appreciation gleaming in his smirk.",
"A bold, appreciative grin finds its way to his lips as his gaze clearly drops to admire your $breasts.")
](else-if:(twist:1,4) is 1)[
(set:$hands to $npc's "hands")
(twirl:"His $hands hand slides up to the small of your back, pulling you possessively towards him as he continues to sway and dance.",
"He confidently moves his hand up your spine, pulling you closer to his body as the rhythm pulses through you.",
"Something genuinely lustful flashes in his eyes as his fingers trace up the small of your back, pulling you tightly against him.",
"His $hands hand confidently finds its way to your lower back as he pulls you into him with a predatory gaze.",
"He weaves you closer, his fingers running possessively up your back, his body pressed tight against yours.",
"His fingers snake around you, slowly travelling up your back, his grip firm and possessive as he pulls you flush against his chest.",
"He slides his $hands hand around your waist and up your back, pulling you securely against him.",
"His $hands hand moves with assertive intimacy to the small of your back, pulling you closer as he continues to dance.",
"He pulls you closer, his confident touch dancing possessively on the small of your back.",
"With an air of cocksure confidence, his arm snakes possessively around your waist.",
"His fingers trace over your arm, as he guides your body closer to his with a self-assured smirk.",
"His arm curls around your waist.",
"He casually slides his arm around your waist, holding you against him with an easy sort of sudden possessiveness.",
"His confident touch slides boldly over your waist, cinching you tightly against him.",
"His hand tightens on your hip, hauling you into him with determined possession.",
"His hand runs down your arm, entwining your fingers with his with deep-rooted assurance, locking you close.",
"His fingers go on a journey, exploring your waist, the side of your thigh, staking a claim as he dances you closer to him.",
"His hand rests confidently on your lower back, pressing you to him as he moves to the beat of the song.",
"He's bold, confident - his arm looping around your waist as he pulls you against him, steeping the two of you into intimate rhythm.",
"His fingers creep around your waist, a blatant hint of ownership.",
"His fingers circle your wrist, gently pulling you to dance closer to him.",
"He reaches out, brushing the small of your back before pulling you against him, his cocky smirk leaving no doubt about his intentions.",
"His fingers trace up your arm, twining with yours naturally, drawing you closer.",
"His fingertips brush against your skin, his touch inviting and warm as he takes hold of your waist and pulls you against him.")
]
](else-if:$npc's "tags" contains "gentleman")[
(twirl:"maneuvers his way through the sea of bodies, maintaining a respectful distance as he positions himself next to you on the dance floor.",
"slides through the crowd with ease, making a point to ask for your permission to dance together.",
"moves with a light-hearted grace, his body swaying with the music as he respectably enters your space.",
"approaches but keeps an appropriate distance, allowing the rhythm of the music to speak his intentions.",
"notices you from across the room and holds out a hand invitingly, his body language respectful yet charming as he moves to the beat.",
"dances close, but not too close, maintaining a considerate space between you.",
"gradually makes way towards you with a gentlemanly confidence, his body language light and approachable as he dances nearby.",
"dances over smoothly, a smile playing on his lips as he maintains respectful eye contact, moving in rhythm without encroaching on your space.",
"steps up lightly, placing himself at a friendly distance as he sways with the beat, his eyes expressing a clear yet respectful interest.",
"sways with the music, showing consideration by moving closer carefully, mindful of your personal space.",
"approaches in a non-threatening manner, his dancing movements comfortable and genuine, his smile inviting as he maintains a respectful distance from you.",
"gracefully approaches, his movements displaying confidence without arrogance, his bright smile never leaving his face while keeping a courteous gap.",
"glides over gently, keeping his pace matching with yours as he maintains respectful distance, making you feel comfortable with his nearness.",
"smoothly transitions from dancing solo to dancing close to you, his movements respectful yet exuding an understated confidence.",
"breaks through the crowd, moving towards you with a classy, confident stride, his infectious energy inviting you to dance.",
"offers a respectful smile mixed with a dose of unmistakable interest as he dances nearby.",
"maneuvers the dance floor with a comfortable swagger, his smile warm and inviting as he danced closer but kept a respectful distance.",
"drifts closer with each beat, holding your gaze with a warm, inviting smile.",
"approaches you on the dance floor, his movements casual and relaxed, his smile friendly and earnest.",
"slides into view with a warm smile, moving effortlessly to the groove as he enters your space.",
"lets the music guide him towards you, his approach gentle and respectful.",
"comes over, establishing a rhythm next to you, his positive energy bright and inviting.",
"edges closer with a friendly nod and a warm smile, falling into step with the rhythm of the beat.",
"dances up to you smoothly, his respectful distance and friendly demeanor putting you at ease.",
"approaches with kindness in his eyes, his movements easily matching the rhythm of the music.",
"maneuvers his way towards you, introducing himself with a genuine smile as he begins to dance.",
"respectfully enters your space, matching his movements to the beat, making you comfortable with his confident yet gentle approach.",
"makes his move, stepping closer, his eyes on yours, dancing near you but at a respectful distance.")
](else-if:$npc's "tags" contains "fuckboy" and (twist:1,2) is 1)[
(twirl:"overtly checks you out as he dances closer, the expression on his face leaving no doubt about his lewd intentions.",
"appears to have been watching you for a while before he finally moves in, his grin unsettling as he leaks confidence like a cheap cologne.",
"comes over with a poorly disguised sense of entitlement, practically demanding your attention as he closes in on you.",
"sizes you up with a smirk, his gaze lingering on all the wrong places as he introduces himself into your personal space.",
"leers at you before making his move, his body language oozing sleazy confidence as he approaches.",
"approaches with a cockiness entirely undeserved, his desperation thinly veiled by a quickly put-on charm.",
"slithers towards you, his glazed eyes lascivious as they greedily take in your body.",
"makes his way toward you with a crude grin, his overly-confident demeanor dripping with sleaziness.",
"sashays up to you with clear arrogance, a lewd and invasive grin on his face.",
"examines you with appraising eyes before creeping in.",
"undoubtedly thinks he's God's gift to you as he slides up close, his gaze making it clear he thinks he's already won.",
"approaches with a slithering swagger, his leer betraying a predatory interest in you.",
"shamelessly eyes you from afar before making a beeline for you, his overconfidence and lecherous manner quite clear to see.",
"moseys right into your space, his eyes sweeping over your body with a sexually-charged arrogance.",
"grins lewdly, showcasing an air of entitlement as he creeps closer.",
"eyes you brazenly, a cheap smirk plastered on his face.",
"approaches with a condescending swagger, his intentions written in his leer.",
"locks his predatory gaze on you, unmistakably exuding arrogance.",
"drifts close with a smug visage, clearly only after one thing.",
"shamelessly sizes you up, his actions reeking of a cheap ploy.",
"innuendos hang heavy between his words, an appraising sweep of his eyes.",
"doesn't bother hiding his lustful intentions as he sidles up.",
"shuffs towards you, oozing presumptuous confidence.",
"saunters up with a self-satisfied smirk and an unwarranted ego.",
"leers at you like a meal, a predatory grin spreading on his face.",
"slithers into your space, his unpleasant demeanor leaving little doubt.",
"wears his lewdness openly, a cocky smirk betraying his intent.",
"invades your personal space, his expression wearing his intentions.",
"approaches with a smirk that makes your skin crawl.",
"moves toward you, a lewd grin belying his over-the-top confidence.",
"slips into your sphere, his intentions obvious in his ever-present leer.",
"locks onto you with the entitlement of one who thinks he's a god.",
"catches you in his lascivious gaze as he slinks toward you.",
"edges into your space with wolfish arrogance, bred solely for the hunt.",
"lechers at you, body language proclaiming his claim to fame: big talk.",
"struts towards you, his grating confidence masking devoted lechery.",
"comes in way too close, wearing his sleaziness like a poorly-tailored suit.",
"leers at you from afar before sidling his way into your presence.",
"slinks into your vicinity, an unsettling air of vanity surrounding him.")
(if:$trigger is "butt" and not ($drugging is "Non-con: Disabled"))[
(display:"describe butt")(set:$hands to $npc's "hands")
(twirl:"With a sleazy smirk, he wastes no time in grabbing your $butt without an ounce of shame.",
"His $hands hand unexpectedly squeezes your $butt, his eyes glinting with selfish lust.",
"The grin on his face turns lewd as he shamelessly clutches your $butt.",
"His hand wanders south, a sleazy grope confirming your suspicions of his one track mind.",
"His $hands hands land on your $butt without any pretense.",
"He grabs a handful of your $butt, his smirk lewd and self-serving.",
"His hand finds your $butt like it's entitled to be there.",
"He not-so-subtly squeezes your $butt, oblivious to the boundaries he's overstepping.",
"With no regard for your feelings, his hand snakes down to your $butt, the sleaze in his grin all too evident.",
"Slinking his $hands hand onto your $butt, he doesn't bother to veil his arrogance or intentions.",
"His hand lands on your $butt.",
"The audacity slathered over his face as his hand reaches down to grope your $butt sends a shiver down your spine.",
"With a cavalier superiority, his $hands hand grasps your $butt and won't be denied, his interest anything but subtle.",
"He's brazenly fondling your $butt like it's his god-given right, not bothering with courtesy or consent.",
"He snatches at your $butt with a poorly-masked entitlement to your body.","His hand lands on your $butt, firm and bold.",
"Without warning, his fingertips dig into your $butt.",
"He casually drops his hand onto your $butt, flirtatious on the onslaught.",
"He grins as his hand finds its way to your $butt.",
"Your $butt meets his palm as he dances closer.",
"The sleazeball's hand shamelessly snakes to your $butt.",
"With cocky bravado, his fingers pinch your $butt.",
"Abruptly, he squeezes your $butt, his face smirking.",
"His touch is invasive, hand fondling your $butt.",
"The audacity of his hand on your $butt is blatant.",
"Boldly, he grabs at your $butt, grinning at his own audacity.",
"His hand strokes your $butt, his audacity shocking.",
"He smears self-assuredness over your $butt with his hand.",
"He seizes your $butt, his grin unapologetic.",
"He grinds into you, one hand brazenly on your $butt.")
](else-if:$trigger is "breasts" and not ($drugging is "Non-con: Disabled"))[
(display:"describe breasts")(set:$hands to $npc's "hands")
(twirl:"His gaze brazenly drops to your $breasts.",
"He makes no effort to hide his obvious interest as his eyes dart towards your $breasts, his grin lewd and confident.",
"His gaze flicks down unabashedly to your $breasts.",
"His eyes shamelessly rake over your $breasts as he starts to engage in conversation.",
"A cocky smirk forms on his lips as his gaze boldly drops to your $breasts, lingering there with clear interest.",
"He leans back slightly, shifting his unabashed gaze to your $breasts, clearly appreciating what he sees.",
"His gaze confidently strays down to your $breasts, his smirk growing all the more lewd.",
"His attention descends without apology to your $breasts, the cocky grin plastered on his face reflecting his bold intentions.",
"His gaze shamelessly dives onto your $breasts, the lewd glint in his eyes not wasted on you.",
"A provocative smile plays on his lips as he lewdly lets his gaze fall to your $breasts.",
"His gaze roams undeterred to your $breasts, a gleam of appreciation lighting up his eyes.",
"A roguish glee dances in his eyes as he unabashedly lets his gaze drop to your $breasts.",
"His eyes confidently take in your figure, pausing briefly and noticeably on your $breasts.",
"His gaze is clearly fixated on your $breasts.",
"A bold, appreciative grin finds its way to his lips as his gaze clearly drops to admire your $breasts.",
"His gaze openly lewd, he has the audacity to cup your $breasts with an honestly alarming confidence.",
"His hands grotesquely paw at your $breasts, his boldness crossing the line between bravado and sleaze.",
"Disrespectfully dismissing any notion of personal space, he gropes your $breasts with a grunt of obscene satisfaction.",
"He unceremoniously cups your $breasts.",
"He takes advantage of the crowded dance floor by pinching your $breasts.",
"His self-assured demeanor takes a turn for the obnoxious as he grabs your $breasts in view of everyone.",
"He boldly brushes his fingers over your $breasts.",
"He lewdly fondles your $breasts.",
"He's shameless as his hand confidently squeezes one of your $breasts.",
"The vulgar reality of his $hands fingers on your $breasts takes you by surprise.",
"Cocky and tasteless, he thinks nothing of grabbing a handful of your $breasts.",
"He grabs your $breasts with a chauvinistic smirk.",
"The grating confidence in his eyes only escalates as his fingers daringly toy with your $breasts.",
"Suddenly, his obnoxiously arrogant fingers are digging into your $breasts.",
"He grabs your $breasts, his hands filthy with self-serving lust.",
"His vulgar chuckle echoes in your ear as he unapologetically gropes your $breasts.",
"His blatant disregard for boundaries becomes painfully evident when his sleazy hands find your $breasts.",
"His hands, arrogant and intrusive, wander to your $breasts.",
"You gasp as his fingertips glaze over your $breasts, his vulgar smirk deepening.",
"He's getting bolder, his hands shamelessly roaming over your $breasts.",
"He gropes your $breasts, his breath hot in your ear.",
"He grates your last nerve as he guides his hands to your $breasts.",
"He decimates personal boundaries as he crudely handles your $breasts.",
"A gasp falls from you as his touch finds your $breasts.")
]
](else-if:$npc's "tags" contains "jock" and (twist:1,2) is 1)[
(twirl:"boldly snakes through the crowd, his physique on full display as he moves closer to you.",
"navigates through the dance floor until he reaches you.",
"dominates the room with his imposing presence, casually moving closer to you.",
"dances closer to you.",
"dances his way across the floor, his athletic build moving rhythmically till he stands next to you.",
"approaches with a swagger, his solid build outlined by the flickering club lights.",
"weaves through the sea of bodies, his commanding size making way for him as he dances closer to your space.",
"glides through the crowd, his imposing stature radiating confidence as he moves closer to dance next to you.",
"maneuvers through the dance floor, his athletic figure moving with striking energy towards you.",
"approaches smoothly, the outlines of his muscular build visible in the neon lights as he dances closer to you.",
"makes his presence known, his broad shoulders and solid build gracefully moving with the beat as he approaches you.",
"deftly slides through the crowd, his impressive physique standing out as he dances until he is at arm's length with you.",
"dances his way towards you, his physique quite impressive as he exhibits his movements confidently.",
"navigates around the gyrating bodies, his muscular physique moving rhythmically as he sways his way towards you.",
"approaches you, his muscles moving rhythmically with the music.",
"dances closer, his built body moving in time with the beat.",
"makes his way to you on the dance floor.",
"moves through the crowd, his impressive physique noticeable as he comes up to you.",
"dances his way across the floor to you.",
"glides through the crowd, his athletic figure obvious as he approaches.",
"approaches you with a confident stride, his athletic build prominent.",
"sweeps through the crowd, standing out due to his muscular physique as he heads towards you.",
"navigates the floor, his muscular form cutting through the crowd till he reaches you.",
"approaches, his striking physique impossible to ignore.",
"moves smoothly towards you, his fit figure in rhythm with the music.",
"dances his way towards you, his athletic form moving with ease through the crowd.")
](else-if:$npc's "tags" contains "nerd")[
(twirl:"shuffles a bit awkwardly towards you, a hopeful smile on his face.",
"approaches you in an endearingly clumsy manner.",
"closes the gap between the two of you, his movements slightly disjointed yet persistent.",
"nervously makes his way through the crowd, a tentative smile on his lips.",
"dances uncertainly nearby, casting glances at you from time to time before finally working up the courage to come over.",
"takes small, deliberate steps towards you, his bashful smile lightening his shy demeanour.",
"moves with restrained caution, his sweet smile directed towards you.",
"edges closer, dancing a bit stiffly with a shy smile playing on his lips.",
"inchess his way closer to you, looking earnest.",
"dances awkwardly in your direction, his smile tinged with a bit of blush.",
"approaches, his steps hesitant yet curious.",
"shows his intention to dance closer while showcasing his complete lack of rhythm.",
"pushes through the dancing crowd, his movements timid yet determined.",
"makes his way to the rhythm, a bashful smile curling onto his lips.",
"attempts to dance closer, his movements slightly hesitant but his hopeful eyes fixed on you.",
"maneuvers through the crowd, awkward yet enthusiastic, to 'dance' near you.",
"tries to maintain an awkward swaying rhythm as he inches closer to you.",
"approaches, clumsy yet eager, casting a nervous smile your way.",
"makes his way throughout the crowd, slightly unsteady yet making his intentions clear.",
"dances his way around, trying to catch your attention.",
"shyly darts closer to you, his excitement overriding his dancing awkwardness.",
"test his dance abilities while moving closer to you, a bashful grin on his face.",
"approaches, the rhythm confusing his limbs a bit but his face breaking out into an earnest smile.")
(if:$trigger is "breasts")[
(display:"describe breasts")
(twirl:"His eyes dart towards your $breasts, hastily looking away, hoping you didn't catch him.",
"Casting quick, shy glances, he tries, unsuccessfully, to inconspicuously peek at your $breasts.",
"He steals a glance at your $breasts when he thinks you're not watching.",
"With a discreet shift of his gaze, he glances at your $breasts.",
"His eyes flicker to your $breasts, quickly shifting away when he realizes his glance was not as secretive as he thought.",
"He attempts a stealthy glance at your $breasts, his face turning a shade pinker when he realizes you saw him.",
"His gaze momentarily drops to your $breasts, before darting away, hoping you didn't notice his fleeting attention.",
"His gaze dip to your $breasts briefly.",
"His eyes dart to your $breasts, then away.",
"He takes a shy peek at your $breasts.",
"His glance flickers to your $breasts momentarily.",
"A swift look travels to your $breasts.",
"He steals a quick look at your $breasts.",
"His gaze strays to your $breasts for an instant.",
"He sneaks a glance at your $breasts.",
"He covertly observes your $breasts.",
"A quick sidelong glance lands on your $breasts.",
"He quickly checks out your $breasts.")
]
](else-if:$npc's "tags" contains "bully")[
(twirl:"pushes through the crowd without any hint of politeness, his dominant gaze already settling onto you as he approaches.",
"cuts through the throng, his demeanor bullish as he sidles up to you, a challenging smirk on his face.",
"gallantly plows through the crowd, almost knocking down a few dancers as he stomps his way towards you.",
"dominates his way through the crowd, his eyes already roving over your form with unabashed interest as he makes a beeline towards you.",
"jostles his way through some dancers, throwing his weight around as he jostles his way towards you, his demeanor clearly dominant.",
"forces his way through the dancing bodies, the confidence in his stride bordering on arrogance as he approaches you.",
"pushes through the crowd, his movements aggressive yet confident as he carves his path towards you.",
"forces his way towards you, pushing past dancers as he zeroes in on your spot, his overbearing presence hard to ignore.",
"powers through the mass of bodies, his clumsy display of dominance marking a path towards your direction.",
"jostles his way through the dance floor, toward you.",
"lumbers through the crowd, his boisterous laughter and abrasive movements hard to ignore as he moves towards your space.",
"muscles his way towards you, his movements bullish and assertive.",
"pushes past the other dancers without a hint of politeness, his eyes intently locked onto your figure as he moves closer.",
"moves determinedly through the dance floor, his preying eyes resting on you as he elbows his way towards you.",
"pushes his way through the crowd to reach you.",
"makes a beeline for you, brushing past other dancers.",
"shoves past some people to get closer to you.",
"muscles his way through the crowd, coming towards you.",
"forcefully navigates the crowd to dance closer to you.",
"blatantly asserts his presence as he approaches you.",
"barrels his way through the dance floor, focusing on you.",
"charges bull-headed through the dance floor, aiming directly for you.",
"pounds his way across the floor to reach your side.",
"thrusts his way towards you, shoving past other dancers.",
"plows through the crowd with you visibly in his sights.",
"tramples through the dancers, making his way towards you.")
(if:$trigger is "butt" and $npc's "personality" < 8 and not ($drugging is "Non-con: Disabled"))[
(display:"describe butt")
(twirl:"As soon as he's close enough, his hand lands possessively on your $butt.",
"Once up against you, he doesn't hesitate to firmly squeeze your $butt.",
"His hand promptly finds your $butt, grabbing hold of it assertively.",
"He reaches for your $butt, his grip confident and possessive.",
"His hand lands assuredly on your $butt, giving it a bold squeeze.",
"His intentions are clear - his hand drops to your $butt, squeezing it assuredly.")
]
](else-if:$npc's "tags" contains "nice" and (twist:1,2) is 1)[
(twirl:"moves towards you with a friendly disposition, making his way to your side of the dance floor.",
"dances across the floor with an unassuming grin, slowly closing the gap between the two of you.",
"approaches with a warm smile, his easy going nature evident as he dances up to you.",
"navigates his way through the crowd, his sincere smile growing wider as he gets closer to you.",
"slowly makes his way through the throng of people, offering a kind smile when he makes it to your side.",
"decently maneuvers his way through the crowd, making sure not to cause any inconvenience as he approaches you.",
"tentatively weaves through the crowd, his smile friendly and inviting as he gets closer.",
"dances over to you with a gentle ease, a genuine smile tugging at his lips.",
"moves towards you with a witnessing smile, his nerves apparent but charming as he approaches you.",
"meanders his way through the throng of people, a soft smile playing on his lips as he gets closer to you.",
"ebbs his way through, giving a small wave and a friendly smile as he approaches you.",
"maneuvers through the crowd, a polite anticipation in his eyes as he dances closer.")
](else-if:$npc's "tags" contains "unremarkable" and (twist:1,2) is 1)[
(twirl:"moves towards you with a friendly disposition, making his way to your side of the dance floor.",
"dances across the floor with an unassuming grin, slowly closing the gap between the two of you.",
"approaches with a warm smile, his easy going nature evident as he dances up to you.",
"navigates his way through the crowd, his sincere smile growing wider as he gets closer to you.",
"slowly makes his way through the throng of people, offering a kind smile when he makes it to your side.",
"decently maneuvers his way through the crowd, making sure not to cause any inconvenience as he approaches you.",
"tentatively weaves through the crowd, his smile friendly and inviting as he gets closer.",
"dances over to you with a gentle ease, a genuine smile tugging at his lips.",
"moves towards you with a witnessing smile, his nerves apparent but charming as he approaches you.",
"meanders his way through the throng of people, a soft smile playing on his lips as he gets closer to you.",
"ebbs his way through, giving a small wave and a friendly smile as he approaches you.",
"maneuvers through the crowd, a polite anticipation in his eyes as he dances closer.")
](else-if:$npc's "tags" contains "cool" and (twist:1,2) is 1)[
(twirl:"slithers through the crowd, dancing to his own beat, a relaxed smile playing on his lips as he approaches you.",
"moves through the throng with a lighthearted grace, his dancing moves accidentally funny yet captivating as he closes the space between you.",
"bewitches the crowd with his rather hilarious moves, catching your attention as he saunters over to you.",
"sways rhythmically, his dance style unconventional yet hypnotizing as he grins at you while moving closer.",
"dances across the floor in a jaunty manner, his movements goofy yet captivating as he casually inches closer to you.",
"captivates the crowd with his charmingly odd dance moves, chuckling to himself as he makes his way towards you.",
"glides towards you, his dancing moves surprisingly humorous yet strangely appealing.",
"navigates the crowd, his quirkiness making him stand out as he gets closer to you.",
"owns the dance floor, moving with amusing playfulness as he does his 'signature' dance move, before heading your way.",
"breaks into an entertaining impromptu jig, causing a few laughs around him before he smoothly sidles up to you.",
"catches your eye with his charmingly goofy dancing, his approach to you smooth despite his wobbly dance moves.",
"slides across the dance floor in a funny but endearing shuffle, his eyes twinkling with laughter as he approaches you.",
"makes his way towards you, his movements hilarious yet captivating as he throws in a random moonwalk.",
"approaches with a funny disregard for rhythm, his dance movements laughable yet strangely charming.")
](else-if:$npc's "tags" contains "annoying" and (twist:1,2) is 1)[
(twirl:"staggers through the crowd, swaying off beat to the music. He flashes you a toothy grin as he clumsily moves closer.",
"struts over with misplaced confidence; his sour breath reaches you before he does.",
"maneuvers the dance floor with flamboyantly excessive hand gestures, his obnoxious laughter reaching your ears as he nears.",
"navigates towards you with an overly ostentatious air, his mismatched dancing movements oddly out of sync with the beat.",
"elbows his way past others, his sleazy smile and bouncing eyebrows quickly making their way towards you.",
"swaggers through the crowd, his annoying grin taking up real estate on his face as he moves noticeably closer.",
"loudly announces his approach, his awkward dancing style and incessant chatter difficult to ignore as he moves painfully closer.",
"advances, his overbearing personality pushing out ahead of him as he dances in your direction.",
"plows through the crowd, his eyes glaringly bright and obnoxious as he dances awkwardly closer to you.",
"shimmies into the crowd, dancing towards you all too eagerly with an annoyingly lingering stare.",
"approaches you, executing some downright strange dance moves that earn him a few odd glances from other clubbers.",
"sweeps towards you with an emphatic intensity, dancing awkwardly and erratically out of rhythm.",
"drunkly dances and stumbles towards you, releasing a whoop that cringes nearby dancers.",
"moves with a cringe-worthy rhythm, his offbeat dance moves attracting a crowd of staring faces as he gets closer to you.",
"clumsily pushes himself through the dancing crowd, his hiccuping laughter echoing in your direction as he approaches.",
"draws attention with his funny dance moves, his loud laughter and over-expressive facial expressions clear as he dances towards you.",
"clumsily stumbles towards you, grinning widely.",
"dances towards you, tripping over his own feet.",
"jumps around awkwardly as he makes his way over.",
"shows off his off-beat dancing as he nears you.",
"guffaws obnoxiously as he approaches.",
"cackles loudly, drawing attention as he dances closer.",
"makes faces, grinning goofily as he approaches.",
"shouts over the music, inviting amused glances as he nears.",
"attempts some wild dance moves, drawing chuckles as he comes over.",
"flails his arms around, dancing closer to you.",
"lordshis way over, his laugh echoing above the music.",
"waves his hands in the air, dancing in an increasingly annoying fashion towards you.",
"laughs way too loudly, his boisterous approach hard to ignore.",
"struts obnoxiously towards you, bumping into others as he comes.",
"does a goofy dance as he moves closer to your space.")
](else-if:$npc's "tags" contains "smug" and (twist:1,2) is 1)[
(twirl:"makes his way over to you, a smug grin plastered on his face as he maneuvers through the crowd.",
"approaches, his movements smooth and his expression self-satisfied.",
"dances towards you, the smirk on his face clearly showing his high self-esteem.",
"slides over with a satisfaction that flickers in his eyes, his dance moves smooth and practiced.",
"moves towards you, the smug tilt of his lips unmistakable as he smoothly negotiates the distance.",
"weaves through the crowd, a sense of satisfaction oozing from him as he moves closer to you.",
"dances his way through, the smug grin on his face growing as he approaches.",
"shuffles closer, a self-contented smile adorning his face, believing he's the center of attention.",
"saunters over with a superiority that reflects in his domineering stance, his grin growing with each step he takes towards you.",
"approaches you, oozing smugness with each hip-sway and shoulder-shrug, a sly grin never leaving his face.",
"shimmies through the crowd, a smug grin curling on his lips as he gradually grows nearer.",
"prances his way through until he finds you, his grin smug and unwavering.",
"maneuvers through the crowd with a cocky stride, his smug smile unwavering.",
"glides through the crowd, the cheshire grin on his face radiating smug confidence.",
"slides over smoothly, his grin whipped out like a badge of honor.",
"struts confidently through the crowd towards you, his smug grin beaming.",
"strolls over, oozing smugness with every step.",
"saunters towards you, clearly pleased with himself.",
"prances towards you, his smirk exuding superiority.",
"approaches, his air of self-importance unavoidable.",
"draws near, oozing smugness from every pore.",
"moseys your way, self-importance dripping from his grin.")
](else-if:$npc's "age" < 24 and (twist:1,2) is 1)[
(twirl:"half-walks, half-bounces over to you, his arms sweeping out and twisting into the 'Smeeze'.",
"executes the 'CitiRokk Shuffle' as he navigates his way to your side.",
"breaks into a series of ‘Swagg Bouncee’ moves, his gaze fixated on you through the rhythm.",
"bops his way over to you, throwing in some trendy 'Woahs' between his strides.",
"interlaces his approach with the 'Kangsta Wok' dip, matching his steps to the beat, his eyes never leaving yours.",
"playfully integrates the 'Bust Down' into his steps as he moves closer with a cheeky grin.",
"navigates his way towards you, his expression earnest as he throws in the occasional 'floss'.",
"spins his way towards you, dropping a dab here and there.",
"oscillates towards you, attempting a 'Millie Rock' or two, each step closer matched with a sheepish grin.",
"dances up, his version of 'The Wobble' disjointed but enthusiastic as he moves closer.",
"sweeps into view, his energetic rendition of 'The Shoot' only somewhat in time with the music.",
"moves in your direction, throwing uncoordinated shapes to the rhythm.",
"sways in rhythm, making the most out of his best Gen-Z dance moves to swagger his way into your space.",
"steps closer, throwing diffident dance moves that might be the 'in' thing among his cohort.")
](else-if:$npc's "age" > 44 and (twist:1,2) is 1)[
(twirl:"shuffles over, attempting to keep up with the rhythm of the younger crowd.",
"approaches with a squinty grin, swaying slightly out of sync with the beats.",
"struts over with a surprising spryness for his age, casting you glances that are appreciative yet overly paternal.",
"ambles towards you with a choreography that's seen better days, a half-leer, half-smirk atop his graying stubble.",
"weaves his way through the crowd, his eyes clearly accustomed to leering at girls half his age.",
"dances over with a nostalgic vibe, his eyes unabashedly raking over your figure as he dances to the beat of a decade past.",
"pirouettes with attempted elegance, his eyes straying to the young women surrounding him.",
"rhythmically nods his head to the beat, sending you a wistful grin as he ambles over.",
"jives his way over, grinning widely.",
"slides through the crowd, casting you a hopeful smirk.",
"shimmies closer, winking flirtatiously.",
"hobbles over, snapping his fingers in beat.",
"moves to the rhythm, giving you a toothy grin.",
"bops over, thinking himself suave as he approaches.",
"happily sways his way towards you, his goofy smile growing wider.",
"approaches, his dad-dance in full swing.",
"does a little jig as he nears, laughing at his own moves.",
"attempts a salsa step, grinning as he moves towards you.",
"dances closer to you, his hips swaying comically to the beat.",
"gives you a cheeky wink as he bravely cha-chas closer.",
"attempts a moonwalk, comically sliding closer to you.",
"changes his dance style every few steps, nearing you with a big grin.",
"does a twirl, pointing at you in an attempt to be suave as he gets closer.",
"tries to mimic a popular dance move, his attempts only causing chuckles as he approaches you.")
](else-if:$npc's "tags" contains "chubby" and (twist:1,2) is 1)[
(twirl:"approaches, the vibrating lights casting a kaleidoscope of color on the zebra pattern of sweat spreading across his shirt.",
"zooms in - or rather wobbles over, jiggling like a cloud making its way over to you, with a grin that could outshine the sun.",
"shakes and shimmies his way towards you, attempting a salsa step but instead performing an unintentional belly dance.",
"dances over, his round belly moving to a rhythm that is entirely its own.",
"bounces his way over, his movements suggesting a bouncy castle going through its mid-life crisis.",
"rolls full-steam ahead through the dance floor, looking like a potato attempting the 'stanky leg'.",
"sways his way towards you, his belly dancing much like jelly on a rollercoaster.",
"approaches, his body swishing and swaying to its own beat, his movements convincing you that humans could, in fact, moonwalk horizontally.",
"moves in your direction, his jelly-like movements convincing you he's doing more of a limbo than a dance.","wobbles his way towards you, his heavy breaths syncopating with the beat.",
"bounces over, his chubby cheeks jiggling to the rhythm as he inches closer.",
"rolls onto the dancefloor, each movement causing new ripples to race across his rotund frame.",
"strains his bulky physique through the crowd, his plump face already sweating as he nears you.",
"shimmies his way over, his body swaying like jelly on a plate.",
"barrels his way over, his round belly leading the way.",
"dances unevenly towards you, his chunky figure swaying with the effort.",
"sweats his way over, his rotund body struggling to keep up with the beat.",
"stomps over, each step sending a new tremor through his bulky figure.",
"ambles towards you, his extra padding jostling with each off-beat move.")
](else:)[
(twirl:"slides over to you, his eyes hopeful as he dances his way through the crowd.",
"closes the gap between you, his body moving rhythmically to the music.",
"approaches you, his eyes locked onto yours.",
"maneuvers through the crowd, his eyes not leaving your gaze as he dances closer.",
"shakes his hips loosely as he casually slides in your direction.",
"crosses the dance floor confidently, his eyes locked on you as he stomach-flutters his way closer.",
"bops his way through the throng, his focus on you undistracted by the pulsating lights and loud beats.",
"glides toward you, his movements smooth and rhythmic.",
"approaches you as the music blares, his eyes burning into yours.",
"weaves his way rhythmically through the crowd, his eyes fixed on you as he draws closer.",
"befriends the beat, his high spirits undeniable as he gravitates towards you.",
"blends in with the crowd as he slides his way towards you, showcasing his unrefined yet confident dance abilities.",
"strides across the crowd, his rhythmic shoulder sway hard to ignore as he edges closer to you.",
"dances his way towards you, his eyes catching every shimmering ray of light emanating from the crowded dance floor.",
"moves closer in the flickering lights, his gaze fixed firmly on you as he dances.",
"maneuvers through the crowd with a smooth sway, finally landing his gaze on you.",
"dances his way across the pulsing dance floor, his eyes never leaving your figure as he gets closer.",
"slides through the crowd, the confidence in his steps matching the steady beat as he approaches.",
"finds rhythm in the madness, his dancing figure inching closer through the crowd.",
"approaches you smoothly, carving his way through the crowd of dancing people.","approaches, his eyes locked on you.", "makes a beeline for you, his intentions clear.", "weaves through the crowd, heading straight for you.", "subtly edges closer, his interest apparent.", "moves in your direction, meeting your gaze.", "approaches, cutting a path through the crowd.", "nears, his gaze fixed on you.", "gracefully heads your way, a purpose in his stride.", "dances closer, not shying away from your gaze.", "braves the crowded dance floor, his destination clear.", "finds his way to you, his gaze steady.", "approaches, seeming undeterred by the crowd.", "maneuvers towards you, not hiding his intentions.", "heads in your direction, making his interest known.")
]
}{
(display:"catcall reaction willpower check offended text")
(print:$willpower_text's leadup)(set:$next to "catcall reaction willpower check offended result")
(set:$chance to 50)
<div class='options'><mark>Willpower check!</mark></div>
(display:"roll")
}{
(set: _baseChance to 50) <!-- Base chance for the willpower check -->
(set: _willpowerLevel to $arousal_denial's level) <!-- Player's willpower level (1-10) -->
(set: _willpowerDifficulty to $willpower_difficulty) <!-- Willpower difficulty (1-10) -->
(set: _arousal to $character's arousal) <!-- Player's arousal (1-10) -->
(set: _reluctance to $character's reluctance) <!-- Player's reluctance (1-10) -->
(set: _dominance to $npc's dominance) <!-- Other's dominance (1-10) -->
(set: _otherEffects to 0) <!-- Placeholder for other minor effects -->
<!-- Willpower Modifier: Active only when aroused -->
(set: _willpowerModifier to (cond: _arousal > 5, (5 - _willpowerLevel) * 2, 0))
<!-- Difficulty Modifier: More significant impact at extremes -->
(set: _difficultyModifier to (pow: (_willpowerDifficulty - 5), 2) * 2 * (sign: (_willpowerDifficulty - 5)))
<!-- Arousal Modifier: Moderate impact -->
(set: _arousalModifier to (_arousal - 5) * 2)
<!-- Reluctance Modifier: Linear, as higher reluctance makes it easier -->
(set: _reluctanceModifier to (5 - _reluctance) * 2)
<!-- Dominance Modifier: More significant impact at extremes -->
(set: _dominanceModifier to (pow: (_dominance - 5), 2) * 2 * (sign: (_dominance - 5)))
<!-- Calculating the final willpower check chance -->
(set: _willpowerCheck to _baseChance - _difficultyModifier + _willpowerModifier - _arousalModifier + _reluctanceModifier - _dominanceModifier + _otherEffects)
<!-- Ensure the final value stays within the 1-100 range -->
(set: $chance to (min: (max: _willpowerCheck, 1), 100))
}{(if:(win:))[(print:$willpower_text's resist){(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",4,
"length",3,
"cause","since you snapped at a guy for hitting on you.",
"charm buff",-1,
"intellect buff",-1
))<div class='options'>(display:"new mood")</div>(display:"refresh stats")}(display:"catcall guy leaves")](else:)[(print:$willpower_text's "give in")<div class='options'>(link:"Next.")[(set:$response to "friendly")(display:"proposition")]</div>]}{
(display:"outfit bottom plurals")(set:$top to $outfit's "top")(display:"describe hair")
(if:$outfit's sluttiness > 7 and (twist:1,2) is 1)[
(display:"catcall reaction willpower check offended text outfit")
](else-if:$npc_type is "coworker" and (twist:1,2) is 1)[
(display:"catcall reaction willpower check offended text coworker")
](else:)[
(if:$pickup is "racial")[
(if:(is_bim:))[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You're trying to keep up with his words, but it’s like, super hard. “Um, that's kinda like, not okay?”",
"resist","You scrunch your face in an attempt to look serious. “Like, you can’t just say that... even if it's a little bit true?” \n\nYou twirl a strand of your $hair, confused by your own response.",
"give in","He chuckles at your attempt to sound offended, the condescension thick in his voice.\n\n“You don’t even know why you’re mad, do you, sweetie?”\n\nHis laughter makes your head feel all fuzzy."),
(dm:
"leadup","You giggle, not fully grasping the weight of his words. “Hehe, you're so forward!”",
"resist","But then you pout, remembering someone said you should be mad at this.\n\n“Wait, I’m supposed to be, like, offended right now, aren’t I?”",
"give in","He grins, patronizingly tapping your nose. “Aww, you almost got it. But you’re too cute to really care, aren't you?” \n\nAnd you nod because he's probably right!"),
(dm:
"leadup","Your brows knit together, trying to process his backhanded compliment. “I'm not sure if I should, like, thank you or...?”",
"resist","For a brief moment, you channel every smart girl you've seen on TV. “That’s, like, totally racist... and stuff!” \n\nYou almost believe yourself.",
"give in","With a soft chuckle, he waves off your concern. “Oh, come on, you don’t care about that. You’re too busy being pretty.” \n\nHis dismissive tone should hurt, but it kinda makes you smile instead."),
(dm:
"leadup","You blink slowly. “Huh?”",
"resist","Summoning your deepest thoughts, you try to look stern. “That’s, like, not nice... you should say sorry?” \n\nYour voice lilts up at the end, making it sound like a question.",
"give in","He laughs openly at your confused attempt to stand up for yourself. “You can’t even tell when you’re being insulted, can you, princess?” \n\nYou giggle back because his laugh is kind of infectious..."),
(dm:
"leadup","You twirl a lock of hair around your finger, puzzled by his words. “Um, what’s that supposed to mean?”",
"resist","You pout, trying to remember why you should be mad.\n\n“That's, like, totally not cool, you know?”\n\nYou stomp your foot for emphasis, feeling a bit proud for remembering.",
"give in","He chuckles at your confusion, leaning in to whisper something filthy and even more racially charged.\n\nYou giggle, not fully grasping it, but his tone makes you blush and tingle in all the right places."),
(dm:
"leadup","You blink slowly, his comment going over your head at first. “Hehe, you’re funny, mister!”",
"resist","Your lips form a cute frown as you try to figure out if you should be offended.\n\n“Wait, are you being, like, mean or something?”",
"give in","He laughs at your attempt to be serious, a patronizing glint in his eye.\n\n“It’s just a joke, sweetie. You’re too pretty to worry about it.”\n\nYou nod, relieved and smiling again."),
(dm:
"leadup","Your mind feels all fuzzy as he throws those big words at you. “Oh my god, like, what?”",
"resist","You scrunch up your face cutely, attempting to process.\n\n“That sounds bad, but you’re smiling, so...?”\n\nYou're really trying, but it's hard!",
"give in","He smirks, seeing your struggle and swooping in with more condescending charm.\n\n“Don’t hurt that pretty head of yours thinking too hard.”\n\nYou laugh, relieved. Thinking IS hard."),
(dm:
"leadup","You’re too busy snapping a selfie to fully catch his words. “Haha, you’re so random!”",
"resist","Something he said makes a little alarm bell ring in the back of your mind.\n\n“Wait, that sounded like a no-no...”\n\nYou’re sure you've heard someone get mad about this before.",
"give in","He takes your phone, angling it for a better shot of you both, and you forget all about being mad.\n\n“You look hot when you’re confused. It’s cute.”\n\nYou beam, loving the attention.")
)
)
](else-if:(is_breeder:) and $pill_known is "true" and $character's "arousal" > 3)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","Something inside you ensure that you fixate on the swell of his jeans. Damn these fucking Breeder instincts...",
"resist","You snap your eyes up, determined not to let biology win.\n\n“Whatever you're selling, I'm not buying. Keep those comments to yourself.”\n\nYour words are fierce, but your body thrums with unwanted arousal...",
"give in","As much as you hate the stereotyping...\n\n“I… that's not… stop,” you stutter, arousal evident despite your best efforts. Your new physiology is craving him, and it's written all over your flushed, needy expression."),
(dm:
"leadup","His words make your skin crawl, but it's the greedy pulsing between your thighs that catches you off guard — you curse silently.",
"resist","Biting back a moan, you battle the pre-programmed lust.\n\n“Your ignorance is as disgusting as your come-on. Take a hike.”\n\nThe quiver in your voice almost betrays you, but you manage to stand your ground.",
"give in","Reality slips as you imagine him fulfilling the Breeder pill’s overwhelming imperative. \n\n“No, don’t… ugh,” you groan softly, a surge of dampness betraying your inner conflict at the worst possible moment."),
(dm:
"leadup","You barely register his racially-tinged comment over the sudden, maddening throbbing of your fertility-driven needs.",
"resist","Shaking with the effort, you force down the compulsion to submit to his primal capability.\n\n“Back off with that disgusting talk. You’re out of line.”\n\nThe wetness soaking your panties makes a mockery of your defiance - but he doesn't need to know that.",
"give in","Any coherent response is railroaded by the urgent clenching below. The pill’s programming is kicking in hard.\n\n“You can’t… Oh god…” you murmur, cheeks burning with shame and desire."),
(dm:
"leadup","Offense wrestles with obscene curiosity as you wonder just how he might back up such bold talk. The Breeder pill is playing dirty tricks on you.",
"resist","Gritting your teeth, you fight the lurid scenarios blossoming in your mind.\n\n“Touch me and lose a hand, asshole.”\n\nYour lips might issue threats, but your dilated eyes and hard nipples are singing a different song.",
"give in","It’s like being wrapped in a fog of lust. His racially-tainted pickup line should push you away, yet all you can picture is his cock plunging in, out, twitching as it fills you...\n\n“Please, um, don’t say that,” you plead, hips canting forward."),
(dm:
"leadup","The raw ache inside you flares at his words, a primal part of your Breeder body keenly interested despite your disgust.",
"resist","You clamp your thighs shut, desperate to ignore the trickle of warmth between them as you lash out.\n\n“Your fetish isn't a compliment, it's garbage. Keep moving!”\n\nThe wet slickness of your folds scoffs at your attempt at outrage.",
"give in","His crude pickup line is distant thunder against the storm raging within you, drenched lips craving his, the thought of his seed flooding you.\n\n“Stop... um... talking like that…” you whimper, biting your lip."),
(dm:
"leadup","Your rational mind reels at his words, but below, an insistent ache pulses.",
"resist","You muster every shred of dignity.\n\n“Your ignorance is astounding, and I’m not here for objectification.”\n\nDespite the tremble in your body, your voice is steely.",
"give in","He sees the split second your eyes cloud with lust, and his smile is predatory.\n\n“I just can't... You shouldn’t...” you falter, without conviction."),
(dm:
"leadup","You're offended, yeah - but there's a confusing roar of desire underneath, responding to his physicality, not his words.",
"resist","With fiery eyes, you push back.\n\n“I'm a person, not your stereotype.”",
"give in","His gaze is locked on the parting of your lips, the shallow breaths - he knows he's hitting a nerve.\n\n“Stop, that's--you're… it's not right,” your attempt at outrage melting into a mewl of want."),
(dm:
"leadup","His comment disgusts you, yet there’s an undeniable slickness telling another story altogether.",
"resist","You brace against the flood of unwelcome heat.\n\n“You're so crass. Walk away before I make a scene!”",
"give in","He watches the struggle on your face turn to defeat, pressing his advantage with a knowing grin.\n\n“No, don't—ugh, why am I…” your voice trails as a wave of enforced Breeder pill yearning silences your will."),
(dm:"leadup","Gross, yet some part of you wants to hear what else he'll say, wants to feel where his crude bravery will take this encounter.",
"resist","All the volume in the world can't hide your rising panic as you confront him.\n\n“Check yourself before you try that bullshit with someone else. I’m not interested.”",
"give in","His lip curls up knowingly as he watches your inner turmoil bubble to the surface.\n\n“Just go... but also... I mean…” your staccato words betray the crushing tide of need swirling within you."),
(dm:
"leadup","Your mind screams objection, but there's a resonance in his certainty that makes your pulse race and your pussy clench.",
"resist","Anger gives you brief clarity.\n\n“I don't care what you think you want. What I want is for you to leave, now.”",
"give in","His eyes hold yours with a look that says he knows exactly what effect he's having on you.\n\n“But you can’t mean... oh god…” you can practically feel your body betraying you, warm and pliant and horribly receptive.")
))
](else-if:$character's "masculinity" > 74 and $character's arousal > 6)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You’re mentally recoiling from his words, but your body betrays a flicker of arousal. “That’s not cool, man.”",
"resist","Clutching at the shreds of your former masculinity, you struggle to assert yourself.\n\n“Look, I’m not... this isn't me, okay? Just stop.”\n\nYour voice cracks in a way that’s frustratingly feminine.",
"give in","He doesn’t seem to notice your discomfort, or maybe he doesn’t care, his grin widening.\n\n“You’re cute when you’re flustered.”\n\nA laugh escapes you, too high-pitched, betraying your inner turmoil."),
(dm:
"leadup","Your heart races, a confusing mix of anger and desire. “Hey, back off with those comments.”",
"resist","You try to stand firm, to hold onto who you are inside.\n\n“That's racist and I’m not here for it, not now, not ever.”\n\nYet the quiver in your voice doesn’t match your words.",
"give in","His cocky chuckle cuts through your defenses, interpreting your shaky stance as reticence rather than resolve.\n\n“You don’t sound too sure. You’ll warm up to me.”\n\nAnd to your dismay, your body seems to agree."),
(dm:
"leadup","You’re struggling with the foreign heat pooling in your belly. “Cut it out, that’s not okay.”",
"resist","Your hands ball into fists at your sides, but they’re smaller and softer now.\n\n“I mean it, stop. I won't tell you again.”",
"give in","The determined glint in your eye flickers as he steps closer, his body language screaming confidence.\n\n“You’re sending mixed signals here.”\n\nAnd as your breath hitches, you realize he may be right."),
(dm:
"leadup","An uncomfortable warmth flushes your cheeks at his words. “Hey, that’s not appropriate.”",
"resist","With each word, you feel your old self pushing back against the confusion.\n\n“I’m not interested, and I won't be. End of discussion.”\n\nBut the softness of your new voice doesn’t carry the same weight.",
"give in","He misreads your firm stance as playful hard-to-get, his laughter ringing in your ears.\n\n“You’ll come around.”\n\nAnd your involuntary giggle only seems to confirm his assumption."),
(dm:
"leadup","His words hit a nerve, and you’re shocked by the reaction in your body. “Stop talking like that!”",
"resist","You summon every bit of your past self to reject the lewd invitation.\n\n“Not gonna happen. Just walk away, buddy.”",
"give in","He observes your flushed face, mistaking your discomfort for coy shyness.\n\n“I think you need some convincing.”\n\nAnd despite your best efforts, you find yourself melting under his gaze.")
)
)
](else-if:$character's "arousal" > 5)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You swallow hard, his words igniting something unexpected inside. “You shouldn’t say that...”",
"resist","But you find your resolve, pushing back against the heat building within.\n\n“That's not going to work on me, buddy. Step back.”\n\nYou wipe your suddenly clammy palms on your $bottom.",
"give in","He leans in closer, his breath on your neck, and you're unable to suppress the shiver that courses through you.\n\n“You’re bad,” you whisper."),
(dm:
"leadup","Your hands fidget with the hem of your $top, his comment sending a flush of warmth through you. “Is that supposed to be a compliment?”",
"resist","A flicker of anger gives you strength, and you assert yourself.\n\n“Yeah, no. I'm not here for your entertainment.”\n\nYou bite down on your lip, trying to ignore your pounding heartbeat.",
"give in","His smirk tells you he knows exactly what he's doing to you, and damn it, he’s good.\n\nYou trail off, your defenses crumbling under his gaze."),
(dm:
"leadup","Your attempts to maintain composure falter; the lewd remark makes you feel all sorts of wrong.",
"resist","You dig deep for outrage, feeling it clash with the arousal you didn’t ask for.\n\n“Fuck off with that racist shit.”\n\nYour stance is defiant, even as warmth spreads between your thighs.",
"give in","But he just grins wider, stepping into your space and cutting off your retreat.\n\n“Come on, you like it.”\n\nAnd to your dismay, you do. \n\nFuck..."),
(dm:
"leadup","His words are crude, and you can feel heat pooling in your belly. “That’s really inappropriate.”",
"resist","You’re momentarily paralyzed by the sensation, then shake your head, focusing.\n\n“I don’t think so. I’m better than that, and I deserve better than that.”\n\nYour words are a steel trap, snapping shut.",
"give in","He notices your momentary hesitation, the flicker of desire in your eyes, and it empowers him.\n\n“You're trying so hard not to smile. Just give in.”\n\nYour giggle, much to your own shock, rings out..."),
(dm:
"leadup","You feel a flush creep over your cheeks, his blatant words touching something deep within. “That kind of talk isn’t going to get you anywhere.”",
"resist","Clutching at your burgeoning anger, you push back against the heat of his words.\n\n“You need to leave. Now.”",
"give in","He doesn’t back down; instead, he leans in, the corner of his mouth lifting in knowing amusement.\n\n“All talk, no action. You’re not THAT offended.”\n\nHis confidence is a tidal wave, and you’re caught in the current, helpless to resist.")
)
)
](else:)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You’re shocked and your voice cracks, “Are you serious right now?”",
"resist","Annoyed and offended, you snap with evident frustration.\n\n“That's not charming, it's racist! Don't talk to me.”\n\nYou turn your back to him, seething.",
"give in","His cavalier attitude unexpectedly cracks your stern facade and, despite your better judgment, you let out an unwilling snort of laughter."),
(dm:
"leadup","Your face feels hot, a blush spreading despite your anger.\n\n“Did you really just say that?”",
"resist","With a huff, you add:\n\n“It's disgusting. You should be ashamed of yourself.”",
"give in","Your face betrays you; a smile peels across your lips despite the sour taste of his words. His disarming grin is, annoyingly, effective."),
(dm:
"leadup","The comment hits hard and your eyes narrow.\n\n“Wow, that's so fucking inappropriate!”",
"resist","Your tone is icy. “That's not suave, it's offensive. I'm not interested in guys like you.”",
"give in","You're caught off-guard and a giggle slips past your lips before you can catch it. There's something about his confidence..."),
(dm:
"leadup","You scoff, outraged. “I can't believe you'd say something like that!”",
"resist","You glare at him sharply, “Back off. I don't tolerate that kind of talk.”\n\nYou prepare to turn on your heel and walk away.",
"give in","You find his audacity kind of comical, and you can't help but chuckle, even as you try to stay angry."),
(dm:
"leadup","Your eyebrow arches.",
"resist","You cut him off, firm and direct, “I'm not here to be your stereotype or your fantasy. Goodbye.”",
"give in","Somehow, his confident grin tugs the edges of your mouth upward into a reluctant smile."),
(dm:
"leadup","You're stunned into silence for a moment, “You’ve GOT to be kidding me...”",
"resist","You find your voice, strong and decisive, “That’s both racist and pathetic. Walk away.”",
"give in","Despite the anger simmering within you, his shameless wink leaves you battling a wave of unexpected emotions.")
)
)]
](else-if:"body" is $pickup)[
(if:(is_bim:))[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You feel a giggle bubble up, “Oh my gosh, that's like, so forward of you!”",
"resist","You twirl your hair, trying to muster a serious face. “But like, you shouldn't talk to girls that way... unless they're into it, which I am sooo not.”",
"give in","He grins and leans closer, “I bet you love the attention.” Your smothered smile and heated cheeks give you away as your bimbo instincts take over."),
(dm:
"leadup","Your eyes widen at his comments. “Wow, you like really know how to talk to a girl!”",
"resist","You pause, remembering you should probably be mad. “Umm, like, I think I’m supposed to be offended right now, right?”",
"give in","He laughs, and the sound sends tingles down your spine. “No need to play coy with me, sweetheart.” And, oh, how your bimbo heart skips a beat."),
(dm:
"leadup","You bat your eyelashes, his words caressing your ego. “You think I'm perfect? Aww, thanks!”",
"resist","But a flicker of your old self reminds you. “Though, like, you should probs keep those thoughts to yourself, mister!”",
"give in","He winks, dismissing your flimsy protests. “Come on, you love it.” And truthfully, your bimbo brain is having a hard time disagreeing..."),
(dm:
"leadup","You practically preen under his gaze, “Hehe, you're making me blush!”",
"resist","You pout, trying to look angry. “But like, it's not nice to say that stuff to girls, even if it's kinda true for me...”",
"give in","He brushes your arm, sending little sparks through your body. “I can tell you’re the best kind of bimbo.”\n\nYour bubbly laughter confirms his assumption."),
(dm:
"leadup","You twirl a lock of your $hair, feeling bubbly inside. “That's naughty!”",
"resist","But you remember you're not just a piece of meat. “Like, stop being a perv!”\n\nYou put your hands on your hips, trying to seem tough.",
"give in","He just laughs, and his boldness sends a shiver down your spine. “You know you love it.”\n\nYour giggle confirms it before you can stop yourself."),
(dm:
"leadup","Your glossed lips part in a dazed smile. “Oh my god!”",
"resist","A flicker of self-respect flares up. “Ugh, but you can't just say stuff like that!” You wag a finger at him.",
"give in","His unapologetic gaze roams your body, and you can't help but preen under the attention. “I could look at you all day.”\n\nYou beam at him, flattered beyond resistance."),
(dm:
"leadup","You're almost flattered, but part of you recoils. “Haha, I'm not just a body you know!”",
"resist","Clutching at the remnants of your self-worth, you snap back. “You're, like, totally objectifying me!” You stomp your foot for emphasis.",
"give in","He chuckles, moving in closer. “But you're so beautiful.” And just like that, your willpower dissolves into blushes and bashful smiles."),
(dm:
"leadup","You bat your eyelashes, unsure how to feel. “Aww, you think I'm sexy?”",
"resist","Something within protests, and you tilt your head to the side. “But, like, keep it classy, yeah?” The pout on your lips is almost convincing.",
"give in","He edges closer, his voice dropping to a husky whisper. “You're irresistible.” You lean into him instinctively, the bimbo in you taking the reins."),
(dm:
"leadup","His words make you giggle, despite yourself. “You're so bold!”",
"resist","You summon your best stern look, though it's undermined by a sultry undercurrent. “Not cool, mister. I'm not that easy.”",
"give in","He smirks at your feeble defense, his confidence rendering your protests futile. “And you love it.” Your coquettish laugh concedes defeat.")
)
)
](else-if:(is_breeder:) and $pill_known is "true" and $character's "arousal" > 3)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","His blatant ogling churns your insides, but it also deeply stirs something forbidden within you.",
"resist","You wrap your arms around yourself, both shielding your body and concealing its treacherous heat.\n\n“Keep your filthy thoughts to yourself,” you snap, while fighting not to squirm under his gaze.",
"give in","A crimson flush invades your cheeks as his words sink into your flesh, awakening an ache you loathe to admit.\n\n“I... stop, that's... you can't just...” Your feeble protest is agonizingly weak against the swell of need roaring in your blood."),
(dm:
"leadup","His crude assessment of your body is vile, but some base part of you revels in the attention; the Breeder pill’s influence is ruthless!",
"resist","Anger boils over as you confront him, teeth clenched.\n\n“You think you can talk to me like that? Try respecting a woman for once.”\n\nYour own body's betrayal burns as your nipples harden despite the chill of your anger.",
"give in","His comment about your body makes your insides clench in pained desire.\n\n“Don't... uh, don’t say that,” you stammer, moist heat gathering at your center as your brain screams in protest."),
(dm:
"leadup","Your skin crawls with unwanted anticipation at his remark; the pill's effects making you absurdly aware of every curve and swell of your own body.",
"resist","You puff up, all spitfire and righteous indignation.\n\n“My body's not your playground, keep dreaming, pervert.”",
"give in","It's like each lewd observation physically tugs at you, your nipples painfully taut—he's playing your Breeder body's impulses like a damn fiddle.\n\n“God, please, just...” you murmur, your heavy breaths saying far too much."),
(dm:
"leadup","You want to hate his comments, but there's something insidious curling deep within— something hungry and shameful.",
"resist","You muster a disgusted sneer, despite the moistening betrayal below.\n\n“What a lowlife. Eyes up here, you're talking to a person.”",
"give in","His lewd comments send shivers down your spine.\n\n“There's more... more to, um, me than that,” you nearly choke on the words as your body rocks with an involuntary throb."),
(dm:
"leadup","The filth he spouts should have you recoiling, yet your skin tingles with perverse anticipation.",
"resist","Lashing out seems to be the only way to regain some semblance of control.\n\n“Not an object for you to drool over; grow up, asshole.”",
"give in","Unfortunately, his obscene comments have triggered a low buzz through your core... damn this Breeder pill!\n\n“Please, I don't... ah, this isn’t...” your protests sound hollow even to your own ears."),
(dm:
"leadup","The crude comment should've sparked fury, but instead, there's an awful churn of heat between your legs.",
"resist","Bristling with indignation, you try to shove the feeling aside.\n\n“Are you always this much of an ass or is today special?”\n\nYou cross your arms over your chest, even as your nipples peak traitorously against your $top.",
"give in","His eyes are glued to your body, as you struggle to form words.\n\n“Don’t... you can’t just... fuck,” you gasp, squirming with the urge to just press into his ogling stare."),
(dm:
"leadup","Thanks to the stupid Breeder pill, his words make you all slick and fuzzy inside.",
"resist","Anger bubbles up, laced with the Breeder pill's maddening lust - but you manage to push it aside.\n\n“Keep your dirty thoughts to yourself, pervert.”",
"give in","A tremble takes over your thighs, picturing his hands gripping you... inseminating you...\n\n“I’m not... don’t objectify me... oh god,” you groan, the Breeder's longing making a mockery of your protest."),
(dm:
"leadup","Despite your disgust, your Breeder pill pussy clenches in anticipation.",
"resist","With defiance, you squash the urge.\n\n“My body isn’t here for you to comment on, you fucking creep.”\n\nAnd yet, there’s a silent scream from within, crazed for his touch. Any touch, really.",
"give in","Licking your lips, you ache to feel whether he can make good on that objectifying praise.\n\n“That’s so... uh...” you murmur weakly, your inner walls fluttering."),
(dm:
"leadup","His comment makes you see red — but lower, much lower, it’s a dark, throbbing red of X-Change Breeder-induced desire.",
"resist","You recoil at the lewd appraisal, but deep inside, you’re molten-hot and needy.\n\n“Just because you've got a mouth doesn't mean you should use it,” you snap.",
"give in","Shame coats you as you feel your pussy pulse greedily at his filthy acknowledgment.\n\n“Not- Not cool,” you stammer, thighs pressing together to contain the wanton rush. A totally toothless response."),
(dm:
"leadup","Your heart races in mingled outrage and craving as he praises your body.",
"resist","Fisting your hands, you glare, determined to ignore the pill’s siren call.\n\n“You’re a pig, you know that? Just shut it.”\n\nThe slick trail trickling down your inner thigh is saying something else, of course...",
"give in","In a flush, you imagine those same lewd words praised in the throes of wild, unrestrained fucking.\n\n“I... what did you just...?” Your voice is lost in a breathy moan, body desperate to be the object of his primal lust."),
(dm:
"leadup","You flush with anger - and something else.",
"resist","Your chest heaves in righteous fury, even as that Breeder pill kindles a fire within.\n\n“Keep dreaming, asshole. I'm gonna stay in your fantasies.”",
"give in","The unbidden mental image of him thrusting into you, hands roaming your body, lingers intoxicatingly.\n\n“Don't...say that. It's not...ahh,” you trail off, your skin betraying you with goosebumps of arousal.")))
](else-if:$character's "masculinity" > 74 and $character's arousal > 6)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","The blatant objectification sets off a furious echo of your masculinity. “Go leer at someone else, I'm not an object.”",
"resist","You clench your fists, fighting against the rising heat. “I said stop. This isn't a damn adult film and I'm not your plaything.”",
"give in","But his eyes rake over you, persistent and hungry. He steps closer, making your female form respond with a flush that belies your internal struggle. “Can't help it, everything about you screams fuckable.” You're helpless to suppress the shiver."),
(dm:
"leadup","His words feel like a slap, a violation. “You're disgusting, you know that?”",
"resist","You feel a surge of anger, but it's diluted by the alien sensations rippling through you. “Back the fuck off, dude. Not cool.”",
"give in","He just smirks, thriving on the control he senses slipping from your grasp. “I know you want it.”\n\nYour breath hitches, and you hate how your body seems to agree."),
(dm:
"leadup","Your chest heaves, not entirely from offense.\n\n“That's none of your business.”",
"resist","Your mind battles the unwelcome arousal, desperate to retain some dignity.\n\n“I won't be a notch on your bedpost, asshole.”",
"give in","But his gaze is intent, seeing right through you, and you feel your resolve crumbling.\n\n“Just think about it,” he says, and the worst part is, you already are."),
(dm:
"leadup","You're appalled by his audacity.",
"resist","You attempt to channel your inner man, the part of you that wouldn't take this shit.\n\n“You're about ten seconds from a slap, buddy.”",
"give in","Yet, his confidence is like a wrecking ball to your disarray of emotions. He leans in, whispering graphic promises that make your new body quiver with unwanted need."),
(dm:
"leadup","You're seething, yet his gaze lingers on your curves. “You need to stop staring.”",
"resist","You're trying to project your masculine outrage, but your voice falters. “Didn't anyone teach you respect?”",
"give in","However, he simply grins wider. “You just need to relax and enjoy the attention.” And as he brushes against you, you feel a traitorous warmth spread through you."),
(dm:
"leadup","You attempt to ice him out. “Look, you're way out of line.”",
"resist","You're holding onto your core self, the part that recoils from such vulgarity. “You can fuck right off with that shit.”",
"give in","But he doesn’t relent, his leering expression and unwavering insistence melting your resistance. “C'mon, I can see it in your eyes,” he insists, and your laugh is nervous, a crack in your armor.")
)
)
](else-if:$character's "arousal" > 5)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","Your pulse quickens despite your indignation. “That's... you can’t just say things like that.”",
"resist","You try to scowl, to shut it down.\n\n“I'm not some fantasy you can just summon with words.” Your voice trembles with more than just anger.",
"give in","He leans in, voice low and confident. “I can see you're aching for it.” And god help you, your body betrays your innermost desires with a soft, wanting sigh."),
(dm:
"leadup","A flush of unwanted warmth spreads across your skin. “You think you can talk to me like that?”",
"resist","You grit your teeth, fighting the delicious shiver his words send through you. “I don't care what you think. Keep your dirty thoughts to yourself.”",
"give in","He smirks, seeing the fight and the fire in your eyes. “Your body seems to think so...” And it’s infuriating how right he is."),
(dm:
"leadup","The heat of his gaze is almost tangible, kindling something within. “That's inappropriate…”",
"resist","You square your shoulders, trying to ignore the heat pooling inside. “I won’t be another notch on your belt.”",
"give in","His chuckle is deep, a sound that resonates with the warmth you're desperate to douse. “We both know you want to be.” And damn if you don't laugh along, lost to the rush."),
(dm:
"leadup","Your breath catches, your body reacting despite your best efforts. “Stop looking at me like that.”",
"resist","With a fierce glare, you attempt to regain control. “My body isn’t yours to comment on.”",
"give in","He doesn’t even try to hide his perusal, and it sends a thrill through you. “But it’s such a beautiful sight.” You curse yourself for the blush that creeps into your cheeks."),
(dm:
"leadup","His words ooze with brazen intent, and you feel the flush of arousal. “Is that supposed to flatter me?”",
"resist","Desperation underlines your response, an attempt to douse the flame. “It doesn’t. It just pisses me off.”",
"give in","Yet he’s relentless, his eyes tracing your figure with unashamed hunger. “Mmm, I can make it more than flattery.” Your giggles betray you, the sound as light as your head feels."),
(dm:
"leadup","You’re incensed, but your body responds with a maddening tingle. “You can't talk to me like that…”",
"resist","Anger brings a brittle edge to your voice. “I'm not your plaything. Shut it.”",
"give in","But his confidence is a siren call to the part of you that craves what he's offering. “That tension, I can help you with that.” His offer twists a knot deeper within, and you find yourself inexplicably nodding."),
(dm:
"leadup","You’re fighting a battle on two fronts; his lewd words set your nerves alight. “You’re being way too forward.”",
"resist","You’re indignant, trying to put as much distance between you and the desire. “I’m not here for your entertainment.”",
"give in","He steps closer, a wolfish grin on his face. “But you're entertaining the thought now, aren't you?” And the warmth in your laugh tells him all he needs to know.")
)
)
](else:)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You start to form a sharp rebuttal. “Listen, I don't appreciate—”",
"resist","“—being spoken to like some cheap thrill. I've got more self-respect than that.”",
"give in","He's quick to interject, a charming smile cutting through your objections. “—how incredible you look? I know, I can't help but say it.”\n\nYour irritation wavers as you're thrown off balance by his sheer gall."),
(dm:
"leadup","You open your mouth to chastise him. “You can't just—”",
"resist","“—expect everyone to be okay with that crap. It's not happening.”",
"give in","However, he interrupts smoothly, “—get enough of you? Yes I can, and I will.” His brazenness somehow makes it seem like a compliment."),
(dm:
"leadup","Indignation brews, and you’re ready to lash out. “What you just said—”",
"resist","You don't let up. “—is so out of line, it's not even on the map. Watch your mouth.”",
"give in","His interruption is slick as silk. “—is turning you on, isn't it? No need to deny it.” And despite your best efforts, your blush speaks volumes."),
(dm:
"leadup","Feeling bold, you begin to lay into him. “First of all—”",
"resist","Doggedly, you push on, your confidence rallying. “—that's no way to speak to a lady, or anyone. Get lost.”",
"give in","But he skillfully drowns out your protest. “—how about we skip the small talk and jump to the good part?” The offer catches you off guard, and you momentarily falter."),
(dm:
"leadup","You're about to unload a full tirade. “Do you really think—”",
"resist","You stay on the offensive. “—that I'd fall for such an obvious line? Think again, sleazeball.”",
"give in","Before you can finish, he's already firing back. “—I'm letting you go without getting your number? Not a chance.” The arrogance in his words holds you speechless."),
(dm:
"leadup","Anger bubbles as you confront him. “Have you NO decency—”",
"resist","Determined, you complete your thought. “—or respect? Spare me your lines.”",
"give in","But he's unfazed, speaking over you easily. “—to resist a woman as gorgeous as you? None whatsoever.”\n\nHis words are so unexpected, you're momentarily disarmed."),
(dm:
"leadup","You’re gearing up to give him a piece of your mind. “Can you even hear—”",
"resist","You cut through the nonsense. “—yourself? Because I don’t want to. Your game is weak.”",
"give in","He doesn't let you finish. “—how my heart skips a beat when I see you?” The disarming confession catches you mid-eyeroll, leaving you speechless.")
)
)]](else-if:"dirty" is $pickup)[
(if:(is_bim:))[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You scrunch your nose, feeling a little confused but mostly excited. “Like, you can't just say that to someone you just met!”",
"resist","You wag a finger playfully, still struggling to muster genuine anger. “That's like, not very nice, mister!”",
"give in","He chuckles, gazing at you with obvious desire. “You act mad, but your body says you're lying.” You feel a rush of heat and giggle, forgetting why you were annoyed.")
,
(dm:
"leadup","Your mouth falls open, a little bit shocked but also kinda turned on. “Wow, that's like, really forward!”",
"resist","You pout, trying to be serious, but it’s hard. “You shouldn't talk to girls that way. Like, we have feelings and stuff.”",
"give in","He doesn’t seem fazed, leaning in with a sly grin. “I bet you'd love the way I talk in bed.”\n\nYour resistance crumbles as you burst out laughing, the thought sounding more appealing than it should.")
,
(dm:
"leadup","You blink, slow to realize you should be mad. “Um, that's super rude!”",
"resist","You try to cross your arms in disapproval, but you’re too uncoordinated. “I'm like, so mad right now.”",
"give in","He smirks, finding your attempted anger cute. “Your mouth says no, but those lips...”\n\nYou start to scowl, but then you think about it, and instead, a smile creeps across your face.")
,
(dm:
"leadup","You’re not sure what to make of his words. “Gosh, can you be any more direct?”",
"resist","You try to sound upset, but you also can’t help but wonder about it. “That’s totally not okay...”",
"give in","Before you can regain your composure, he’s stepping closer, the heat in his eyes unmistakable. “Why don't we find out?” And before you know it, you're nodding and giggling, swept up in the moment.")
,
(dm:
"leadup","You swat at him playfully, even though part of you is intrigued. “Hey! That's like, really naughty! I'm not just some sex toy, ya know!”",
"resist","You toss your $hair, doing your best attempt at disgust.",
"give in","But his laughter is infectious, and you find yourself getting lost in his gaze. “Show me then, prove me wrong.” Your silly grin tells him everything he needs to know.")
)
)
](else-if:$character's "masculinity" > 74 and $character's arousal > 6)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","Your masculine pride recoils, but your new form throbs with a sensation that's foreign. “I— You can't talk to people like that.”",
"resist","You hold onto the indignation, trying to push past the confusing warmth spreading through you. “I’m not... this isn’t who I am. Stop.”",
"give in","He moves in, a predator sensing weakness. “All this anger... Let’s find a more fun way to release that tension.” The insinuation leaves you tongue-tied, your body betraying your male mind.")
,
(dm:
"leadup","You’re dumbstruck by the crude comment, feeling a betrayal in your body you can’t name. “What the— That's not okay, man!”",
"resist","Desperately, you cling to your male outrage, barely containing the rush in your veins. “Back the hell off, dude. Not fucking cool.”",
"give in","But he's relentless, his smile widening. “That mouth's saying no, but it could be put to such better use.” The raw suggestion hits deep, leaving you flushed and flustered.")
,
(dm:
"leadup","Anger flashes, but it's quickly muddled by an unsettling heat. “That’s so inappropriate...”",
"resist","You assert as much of your male ego as you can muster, fighting the flush on your face. “You’re WAY out of line, buddy.”",
"give in","His gaze darkens, voice dropping to a seductive timber. “Baby, with you looking like that, lines are meant to be crossed.” The implicit offer shocks you into heated silence.")
,
(dm:
"leadup","Shock and rage war within, but so does an unwanted tinge of arousal. “You’re out of your fucking mind...”",
"resist","You try to push down the alien sensations writhing beneath your skin. “Not in a million years. That’s just— No.”",
"give in","Undeterred, he leans closer, a devious glint in his eye. “Why fight it? Let's make you feel good.” His hand brushes against you, making your chest tighten and your protest falter."),
(dm:
"leadup","You feel a rush of indignation mixed with bewilderment. Your manly instincts are screaming. “Hey! You can't just talk about...”",
"resist","You muster every ounce of your masculine pride, rebuking him strongly. “I don’t know which is smaller—your respect or your intelligence.”",
"give in","He grins, unfazed, a predator sensing weakness. “Don't worry, once my cock's in that pretty mouth of yours, you won’t need to talk.” Your newly feminine cheeks flare with heat, his words ripping through any facade of male fortitude.")
,
(dm:
"leadup","The crude comment sends your mind spinning. “This isn’t... You're totally out of line!”",
"resist","Your voice cracks. “Fuck off with your sexist bullshit — I’m nobody's object!”",
"give in","He laughs, the sound deep and confident. “Why not use that mouth for something a lot more satisfying?”\n\nHis obscenity catches you off-guard, silencing your protest with a deep, confusing arousal.")
,
(dm:
"leadup","Your immediate reaction is to punch him. “Can't believe you’d say that...”",
"resist","Determination stirs within you. “Not sure what kind of girls you’ve been with, but that shit doesn’t fly with me.”",
"give in","He steps closer, a lecherous grin on his face. “Ever heard that a cock-sucking slut can't talk back? Let’s test that theory.”\n\nThe crude domination in his words ignites a response from your body that makes you tremble.")
,
(dm:
"leadup","Your gut reaction is a mix of male territorial aggression and embarrassed surprise. “Who the hell do you think you are?”",
"resist","You stand your ground despite the foreign emotions battling within you. “This is my body, not your plaything, asshole.”",
"give in","He closes the distance between you, leaving no room for escape. “Seems like that body of yours needs a reminder of just how good it can feel.”\n\nHis insinuation leaves you spluttering, the male sensibility within you losing the fight.")
,
(dm:
"leadup","Shocked, you sputter a retort, “You can't... I mean... what? I’ve got half a mind to—”",
"resist","Shaken but trying to gather your composure, you push back and tell him off.",
"give in","Cutting you off, he gives a low, dirty chuckle. “The other half’s just dying to be quieted down by a mouthful my cum, isn’t it?”\n\nHis words send an unfathomable rush through you, complicating your anger with unwanted lust.")
)
)
](else-if:$character's "arousal" > 5)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","Heat creeps into your cheeks as you fumble your words. “I... that’s really not something you say to a lady…”",
"resist","You muster all the control you've got left. “And you're not the kind of man I'm interested in, so back off!”",
"give in","He smirks, seeing your resolve waver. “Why waste words when you could be moaning around my cock instead?” The suggestion hits you like a jolt, leaving you speechless and flushed.")
,
(dm:
"leadup","Your mouth goes dry, offended but undeniably turned on. “You just think you can say anything, huh?”",
"resist","You stand your ground despite the trembling in your knees. “It's gonna take more than dirty talk to get to me. So stop trying.”",
"give in","But he closes the distance, voice low and certain. Yep. And I've got another idea - let's put that pretty mouth to better use.”\n\nYour heart pounds, arousal washing over your shock.")
,
(dm:
"leadup","“Do you ever shut up?”",
"resist","You keep your voice steady even as your body betrays you. “Your words are as cheap as your intentions. I'm not buying it.”",
"give in","His reply is laced with carnal promise. “No, but I can shut YOU up - with something I'd like your lips around.”\n\nYou bite back a gasp as the room seems to grow hotter.")
,
(dm:
"leadup","It’s hard to think of a comeback, your body screaming in contradiction to your values. “Is that supposed to be... flattering?”",
"resist","You clench your teeth, trying to focus. “Actually, flattery would assume respect. What you're offering is just insulting.”",
"give in","He doesn't skip a beat. “If you think that’s forward, wait till you see what else I have planned for you...” The crudeness of it shocks you, but it’s the thrill that really makes you falter."),
(dm:
"leadup","Your cheeks burn as you stammer, “I can’t believe you would—”",
"resist","You fiercely rebuff him, “—ever think I would let you talk to me like that. You're a pig!”",
"give in","He cuts you off with a smirk, “—be even sexier with your lips wrapped around my cock?” The mental image grips you with an intense tightness."),
(dm:
"leadup","You gasp, aghast and aflame. “Do you always talk to women like—”",
"resist","You assert your dignity, “—they're nothing but sex objects for you? That's not going to work on me!”",
"give in","His retort is quick, “—they're begging for it? Because you look like you're aching to be filled.” The words evoke an involuntary shudder."),
(dm:
"leadup","You're flustered, trying to hold onto your composure. “You think it’s okay to just—”",
"resist","Your voice hardens, “—say these obscene things? Get lost!”",
"give in","He interjects, his voice dark with promise, “—let me taste that sweet pussy?” The lewd suggestion sends heat coursing through you."),
(dm:
"leadup","Offended yet oddly stirred, you half-shout, “Stop talking about my body like it's—”",
"resist","You try to stand your ground, “—some kind of trophy for your collection! It's disgusting.”",
"give in","He finishes for you, “—made for my cum? Because it really is.” The crude imagery leaves you breathless, your arousal betraying your outward anger."),
(dm:
"leadup","Your voice shakes as arousal wars with indignation, “Seriously, you can just—”",
"resist","You retort sharply, “—fuck right off with that attitude. I'm someone, not something.”",
"give in","But he's relentless, “—admit you want it, your moans muffled around my cock.” The image is so vivid, it tightens every muscle in your core."),
(dm:
"leadup","You attempt to rebuke his crudeness, “How dare you imply that I—”",
"resist","You're unwavering, “—would ever respond to such vulgarity. I’m not one of your conquests.”",
"give in","His response is immediate, dripping with condescension, “—would look good on your knees? Because you'd look FANTASTIC.” The words make your knees feel weak.")
)
)
](else:)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You start with a full head of steam. “How dare you speak to me like—”",
"resist","Igniting all your fury, you lean in with a finger pointed. “—some sex object you can just use for your pleasure?! You’re disgusting!”",
"give in","But he cuts in, his voice dripping with lascivious promise. “—My next conquest? Because once you're squealing around my cock, you won't care how we started.” Your mouth falls open, words failing you."),
(dm:
"leadup","You open your mouth to rebuke him, “Do you kiss your mother with that—”",
"resist","You muster all your outrage. “—filthy mouth? Keep talking, and the only thing you'll be kissing is my fist!”",
"give in","He interjects with a lascivious gleam in his eye. “—mouth? Only when she begs for it, just like you will.” The crude comeback stuns you into silence, giving him the upper hand."),
(dm:
"leadup","Your indignation boils over. “I can't believe you would even think—”",
"resist","You shoot back, seething with rage. “—that I'd want to hear your vile fantasies? Get out of my sight!”",
"give in","Yet he's quicker, his voice smooth and unashamed. “—of leaving here without tasting you first. And trust me, you'll be begging for more.” The sheer audacity leaves you at a loss for words."),
(dm:
"leadup","You attempt to retain your composure. “Get away from me with that—”",
"resist","You're not having any of it. “—gross talk. It’s men like you who make me sick.”",
"give in","But he jumps in, bold as brass. “—bedroom talk? Don't knock it 'til you've been bent over and claimed by it.” His words are a slap to your dignity, stunning you into stunned silence."),
(dm:
"leadup","You're outraged, voice rising with each word. “Your arrogance is astounding—”",
"resist","You stare him down, fully incensed. “—and I'm not some notch on your bedpost. Go to hell!”",
"give in","His interruption is fluid, a smirk playing on his lips. “—you know you'd look better with my cum on that pretty face than that angry scowl.” The vulgarity of his words renders you speechless, as he intended."),
(dm:
"leadup","Your voice is stern, your posture rigid. “I won't stand here and listen to this—”",
"resist","You cut through his smugness. “—bullshit. You get off on making women uncomfortable? You’re pathetic.”",
"give in","He doesn't miss a beat. “You'll be lying back and taking it soon enough.” His crude certainty leaves you grappling for a comeback."),
(dm:
"leadup","You start with clear disgust. “I can’t believe you’d say something so—”",
"resist","Your outrage fuels your words. “—disrespectful and vulgar! Don't you have any decency?”",
"give in","He cuts you off with a lascivious smirk. “—enticing? I know. Imagine those perfect lips of yours stretched around my cock, quieting those squeals.” You're shocked into silence."),
(dm:
"leadup","You're taken aback by his brazenness. “Do you hear yourself—”",
"resist","You push back, your anger palpable. “—speaking so obscenely? You're out of line!”",
"give in","Before you can finish, he interjects with a lewd chuckle. “—begging for my touch in the bedroom later? I can almost hear it now.” His crassness leaves you momentarily speechless."),
(dm:
"leadup","Your voice is sharp with indignation. “Your words are completely—”",
"resist","You won't let him have the last word. “—unacceptable! I'm not some object for your amusement!”",
"give in","But he's relentless. “—what every woman secretly wants to hear. How about I shut up and you bounce on my cock?” The vulgarity of it all catches your breath in your throat."),
(dm:
"leadup","You're outraged, ready to tear into him. “You think you can just—”",
"resist","You maintain your composure, barely. “—spout that filth and I'll be flattered? You're mistaken.”",
"give in","He's quick with a retort, a condescending tone in his voice. “—melt at the thought of my cum coating your tits? You're right.” The crude imagery stuns you into a flustered quiet."),
(dm:
"leadup","Your expression tightens, bristling with anger. “You have no right to—”",
"resist","You're full of righteous fury. “—speak to me like I'm some kind of porn star. Show some respect!”",
"give in","He interrupts with a lewd proposition, “—get all worked up before I've even fucked you. But it’ll be hard to stay mad with your mouth full.” His audacity leaves you gaping."),
(dm:
"leadup","You feel your face heat up with more than just anger. “Stop objectifying me—”",
"resist","You're not backing down. “—like I'm some kind of sex doll! It's disgusting.”",
"give in","Yet he smoothly interjects, his voice dripping with condescension. “—unless you're ready to be played with. I've got plenty of stamina for you.” You're aghast, the lewd insinuation knocking the wind out of you."),
(dm:
"leadup","You're seething, trying to articulate your offense. “You can't just reduce me to—”",
"resist","You try to stand your ground, mustering all your dignity. “—a set of holes to fuck! I am a person!”",
"give in","But he fires back with a smug interruption. “—your basic instincts? Let's be honest, you'd look stunning squealing around my cock.” The vulgarity hits like a slap, leaving you stumbling over your words.")
)
)
]](else:)[
(if:(is_bim:))[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You try to muster some indignation, but it comes out more like a pout. “Oh my god, that's like, so forward of you to say!”",
"resist","You force a frown, trying to sound stern. “Like, you really need to learn some manners, mister!”",
"give in","He just smirks, clearly amused by your attempt at chastisement. “Don't pretend you don't love the attention, sweetheart.” His patronizing tone leaves you blushing and at a loss."),
(dm:
"leadup","You squint your eyes, trying to sound offended. “Are you, like, always this flirty with girls?”",
"resist","You wag a finger at him, though the movement is more playful than disapproving. “You can't just say things like that, you know!”",
"give in","He laughs, closing the distance between you with a confident step. “Only the ones I can't take my eyes off.” His condescension is wrapped in a compliment, and you find yourself giggling instead of scolding."),
(dm:
"leadup","You blink, startled by his boldness. “Um, did you really just say that to me?”",
"resist","You cross your arms, trying to channel your inner serious girl. “You should, like, really think before you speak!”",
"give in","His chuckle is low and knowing. “I did, and I meant every word.” Your attempt at outrage melts away under the heat of his gaze."),
(dm:
"leadup","You scrunch up your nose, trying to convey disapproval. “That's not, like, a nice thing to say, you know?”",
"resist","You puff your cheeks out, struggling to retain a shred of dignity. “I'm not just some bimbo you can hit on!”",
"give in","He leans in, whispering in a tone that's equal parts teasing and predatory. “But you're every bit as stunning as one, aren't you?” You falter, his words hitting too close to home."),
(dm:
"leadup","Your mouth hangs open, a blush creeping onto your cheeks. “Wow, you're really upfront, huh?”",
"resist","You stammer out, grasping for the right words. “You, like, really shouldn't talk to girls that way... it's so rude!”",
"give in","He grins, undeterred by your spluttering. “But it got your attention, didn't it?” The smugness in his tone renders you speechless, your comeback dying on your lips."),
(dm:
"leadup","You feel your face go hot, your voice rising despite your efforts. “I can't believe you—”",
"resist","You manage to hold onto some semblance of control. “—think that's okay to say to someone! You need to leave.”",
"give in","He doesn't let you finish. “I can't believe how perfect you look either, but here we are.” His brazenness catches you off guard, leaving you flustered.")
)
)
](else-if:(is_breeder:) and $pill_known is "true" and $character's "arousal" > 3)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","His flippant attempts to charm you are grating on your nerves, but the Breeder pill is twisting it into something so much worse. It's taking every shred of your willpower to not picture him in far more... compromising situations.",
"resist","You manage to suppress the urge.\n\n“You're not as charming as you think, pal. Now leave me the fuck alone,” you retor.",
"give in","Your Breeder body betrays you.\n\n“That's so... you can't just... oh fuck,” you gasp, the mere thought of him dominating you has your body clenching in want."),
(dm:
"leadup","His advances are infuriating enough, but it's the X-Change pill’s influence that truly fans your anger into a blaze. Why must it insist on painting such lewd pictures of him in your head?",
"resist","Your teeth are gritted as you manage to dispel the image of him above you, his body slick with sweat.\n\n“Your cocky attitude is completely unwelcome. Back off!” The force of your response slices through the air, despite the heat pooling at your center.",
"give in","The thought of him overpowering you, pumping you full of his seed, sends a shiver through your uncooperative body.\n\n“Stop... that’s not... oh, god,” you whimper, the imagined sensation of him filling you to the brim with his sticky mess has your knees buckling."),
(dm:
"leadup","His words are soaked in self-confidence, and you're sure that in any other situation, you'd have been able to shoot him down without a second thought. But the Breeder pill is making it so damn hard.",
"resist","You fight against the pill’s effects, pushing the image of him rutting into you from your mind.\n\n“Arrogance isn't a good look on you, buddy,” you snap at him.",
"give in","His words have you picturing him pinning you down, his hot breath on your ear as he tells you what a good breeder slut you are...\n\n“Don’t... you're not... oh fuck,” you gasp, the thought of him filling you with his potent seed too visceral to ignore."),
(dm:
"leadup","His audacity is fanning the flames of your anger, but the pill’s influence is creating an unwanted undercurrent of desire. You hate this - you have to fight it.",
"resist","You force the image of his hands roaming your body out of your mind, focusing on your anger instead.\n\n“Your cheap talk won't work on me. I’m not interested, got it?” you retort, ignoring the hot, slick arousal that the Breeder pill insists on stirring up.",
"give in","But the thought of him on top of you, his body grinding into yours, his cock filling you with his potent seed...\n\n“That’s... you can’t... oh god,” you whimper, your body aching with the need to feel him inside you."),
(dm:
"leadup","His pitiful attempt at flirting is aggravating enough, but the Breeder pill is making every word he says feel like a spark to your libido. You should be incensed - instead, you're uncomfortably aroused.",
"resist","“Your confidence is misplaced. Stay the hell away from me,” you manage to say, your tone as sharp as it can be.",
"give in","His words conjure up the image of him taking you, his hips snapping against yours as he pumps you full of his thick, fertile cum...\n\n“Stop... I... ah...” you stammer, the thought of him filling you so completely that you can feel his cum dripping out of you sends a shudder of desire through your body.")))
](else-if:$character's "masculinity" > 74 and $character's arousal > 6)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You fumble for words, that familiar masculine assertiveness gone. “You can’t— I mean— that's not—”",
"resist","You somehow find a thread of your former self. “Listen here, I won't be disrespected by the likes of you!” Despite your voice being an octave higher, it carries a vague shadow of authority.",
"give in","But he only grins wider, his gaze patronizing. “Aw, look at you, all flustered and adorable. It’s cute when you try to be mad.” The condescension mixed with charm leaves you disarmed and stammering."),
(dm:
"leadup","You’re trying to stand strong, but your shaking fists are so small now. “I— this is— you're out of line!”",
"resist","Anger flares, and you cling to it. “Get away from me, creep! I’m not some piece of meat.” Your small fists shaking only slightly betray the raw unease you feel.",
"give in","He chuckles softly, your heightened emotions clear as day to him. “Relax, I get it. It’s hard being this irresistible.” His smooth talk catches you completely off-balance, your lips parting with no words coming out."),
(dm:
"leadup","The words catch in your throat, a blush spreading over cheeks that feel too soft. “That’s— you shouldn't say those things!”",
"resist","You push back, though it's harder now, your voice tinged with a pitch you don't recognize. “Stop it. I won’t be treated like this.” Each word is a struggle, pulled from deep within your rattled composure.",
"give in","His deep, confident chuckle seems to resonate within you, unsettlingly. “You’ll get used to it.” Your mouth opens, but the only thing that escapes is a flustered gasp."),
(dm:
"leadup","Embarrassment and anger twist inside you, but they sound so timid coming out. “This is— you can’t just— I'm not playing this game!”",
"resist","You try to summon some semblance of masculine rage. “Back the hell off!”",
"give in","He doesn't even let you attempt resistance, his smirk cutting deep. “Games are more fun when you let go, sweetheart.” The pet name leaves you spluttering incoherently."),
(dm:
"leadup","You're trying to scowl, but it just doesn’t feel natural. “Hey! You can’t... um...”",
"resist","You somehow gather enough bluster, your softer voice pitching with outrage. “Just back off, alright!”",
"give in","But he brushes off your feeble protest with a laugh and a wink. “Don’t be shy, it’s cute.” You open your mouth to retort, but nothing comes out—just hot air and a blush."),
(dm:
"leadup","The words get tangled on your unfamiliar, plumper lips. “I... What did you... um...”",
"resist","An awkward attempt at indignation finally makes its way out. “Listen here! I won't stand for that sort of talk, mister!”",
"give in","He just chuckles, clearly not taking you seriously. “Easy there, no need to get upset.” Your mind scrambles for a comeback, but your flushed face gives away your confusion."),
(dm:
"leadup","You feel a strange tightness in your chest as you begin to reply. “Don’t think I’m some pushover...”",
"resist","You push through, surprised by the trembling in your voice. “You can't just speak to me like that!”",
"give in","He grins, his confidence undiminished. “I think you might be, though.” His glibness throws you off, and you’re caught in the backwash of your own derailed anger."),
(dm:
"leadup","You ball your smaller hands into fists, though they don’t seem as threatening. “That's not okay! You... I don’t want your creepy compliments!”",
"resist","The anger feels alien, your higher voice lacks its former authority. “Stop it, ok???”",
"give in","He raises an eyebrow and smugly replies. “But they're true. Can't fight the truth, can you?” Your attempt at a retort dies on your lips as you're left stammering."),
(dm:
"leadup","You’re supposed to be mad, but all you feel is flustered. “I can't... this isn’t—”",
"resist","You flail for words, anything to express the righteous male anger you used to feel so easily. “I'm not... just... no!”",
"give in","With a dismissive chuckle, he steps forward. “You'll figure out how to play the game eventually.” Your response is a jumble of words and nervous giggles—exactly what he wanted."),
(dm:
"leadup","You begin to voice your displeasure, but it comes out weak and tremulous. “You shouldn’t... um...”",
"resist","You summon what's left of your masculinity, trying not to focus on how light your voice sounds. “Don’t talk to me like that. I'm not interested. Period.”",
"give in","He just grins knowingly, your feminine outrage apparently amusing to him. “I don’t think you really mean it.” You stammer and gape, your resolve crumbling like a sugar cookie.")))
](else-if:$character's "arousal" > 5)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","Your breath hitches as you try to maintain composure. “You can't just assume—”",
"resist","Drawing on every ounce of self-control, you finally snap. “—that I’d fall for that. I’m not just some conquest.”",
"give in","But he quickly interjects, “—I know what you want?” His voice is smooth, his stare unyielding, tapping into your deepest desires and rendering you silent."),
(dm:
"leadup","Your face flames with an unmistakable flush. “I—that’s really not—”",
"resist","You find your voice, choked but determined. “—appropriate! I’m not your toy!”",
"give in","He leans in, his smile predatory. “I think that blush says otherwise.” Your mouth moves, but coherent words fail to emerge as he reads you like an open book."),
(dm:
"leadup","You stammer, your heart pounding, “That kind of talk is—”",
"resist","Mustering your dignity, you assert. “—completely unacceptable! I don’t care how 'suave' you are.”",
"give in","He doesn’t wait for you to finish. “Exciting, isn’t it?” The implication alone is enough to scatter your thoughts, leaving you wordless and even more flushed."),
(dm:
"leadup","A flicker of arousal sparks deep within. “You really think I—”",
"resist","Somehow, you push past the rising heat. “—would be impressed by that? Try respect, it might get you further.”",
"give in","But the predatory gleam in his eye is distracting. “Would enjoy it? I’m sure you would.” His confidence strips away your defenses, leaving you gaping."),
(dm:
"leadup","A rush of heat floods you as you start to speak. “That’s... I just...” Your cheeks flare with a telltale blush.",
"resist","You force the words out, gripping tightly onto fleeting willpower. “Get lost. I'm more than just an object of your desires.” Your voice is a tremulous whisper of defiance amid the storm of arousal.",
"give in","He seizes the moment, his voice a velvet caress. “You don't even have to say it, I already know what you want.” The intensity of his gaze locks onto your vulnerability, leaving you dumbfounded."),
(dm:
"leadup","Your body betrays your attempts at sternness, speaking in soft, wanting tones. “You... shouldn't...”",
"resist","You dig deep, finding a sliver of poise amid the turmoil. “I'm not just some doll for you to play with.” Despite the heat in your body, you stand firm.",
"give in","He interrupts with a smirk, his assurance unwavering. “You're so adorable when you play coy...”\n\nHis condescension mixed with allure leaves you breathless, swallowing down a squeak of surrender."),
(dm:
"leadup","Your heart hammers, already ceding ground to his suave demeanor. “Look, I don’t think... um...”",
"resist","Dragging back some semblance of control, you manage a retort. “Think again, because I'm not falling for your tricks.” It’s a victory, tenuous though it may be.",
"give in","He cuts through your protests like butter, a smooth operator. “No need to think!” His words strike at the core of your arousal, dismantling your resistance."),
(dm:
"leadup","You stutter, tripping over both words and a fresh wave of arousal. “You're just... I mean... Stop!”",
"resist","Your indignation finally outpaces your physical response. “I said stop! I'm a person, not some conquest.” The words come out sharp, a splash of cold water against his heat.",
"give in","His swift response leaves no room for rebuke. “Stopping is the last thing you want me to do.” And with a cocky wink, he evaporates what little resolve you had."),
(dm:
"leadup","Flushed and flustered, you struggle to voice your discomfort. “This isn’t... like... right...”",
"resist","With one last push, you reclaim your agency. “It's not right, and you need to step back.” It’s a statement, clear headed amidst the fog of arousal.",
"give in","But he’s already on the offensive, leaning in. “Anything feels right with me, you'll see.” His confidence weaves around you, pulling at threads you didn't know you had, unraveling you.")))
](else:)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","Your annoyance bubbles up at his brashness, and you're ready to put him in his place.",
"resist","“Listen here, I’m not some damsel impressed by your lame attempts at flattery, so cut the crap!” you manage to say, holding his gaze with a challenging glare.",
"give in","But the words get tangled in your confusion, “I—That's really... you shouldn't... um...”\n\nHe seizes the awkward silence with a knowing smile.\n\n“Don’t worry, I get tongue-tied around beauty too. But I'm sure you'll find your words with me... eventually.”"),
(dm:
"leadup","Your intention to confront him with a scalding rebuke for his boldness clarifies with every step he takes closer.",
"resist","“Nobody asked for your opinion, so keep your comments to yourself!”",
"give in","Yet all that comes out is, “I, uh... you can't just... say... wow.” He grins at your flustered state.\n\n“Wow indeed. But feel free to take your time. I’ve got all day to hear what you’ve got to say...”"),
(dm:
"leadup","Annoyance simmers within you as he delivers his lewd compliment, expecting you to be outraged and ready to lash out.",
"resist","“Excuse me, but I'm not some plaything for you to leer at. Keep those thoughts to yourself!”.",
"give in","What escapes instead is a jumbled mess, “That's not— You should— What did you...” His knowing chuckle halts any coherent protest.\n\n“Stuck on what to say next? Don't worry, happens to the best of us around stunning company.” His wink is infuriatingly disarming."),
(dm:
"leadup","You're primed to shoot back a fiery retort to his advance, determined not to let him see you shaken.",
"resist","With as much poise as you can muster, you retort, “Your approach is neither wanted nor appreciated. Learn some respect!”",
"give in","But the words stumble over each other, “You can't— who says— that's so...” He notices your falter and flashes a charming grin.\n\n“Take your time. You'll find my offers are hard to refuse.” His arrogance leaves you stuttering and unnerved."),
(dm:
"leadup","The audacity of his blatant comment gears you up for a vehement rebuff, your brain racing to form the perfect shutdown.",
"resist","You reply sharply, “I'm not here for your amusement, so back off!”",
"give in","Instead, you falter, “That's not— I mean, who says— can you not...” He leisurely leans against the wall, an amused glint in his eyes.\n\n“Ah, a bit tongue-tied? Don't worry, I find that quite endearing. Makes me want to hear more.” The ease in his voice only adds to your fluster."),
(dm:
"leadup","Irritation flares within you, his crude words demanding a sharp response.",
"resist","“I don't know who you think you are, but that kind of talk is unwelcome and gross!” Your voice is firm, your stance unyielding.",
"give in","However, as you open your mouth, the words just jumble together, “You can't— That's not— Who even...?” He smirks at your disarray, stepping in closer.\n\n“You're even cuter when you're trying to be mad. Let's skip to the good part, huh?” The suggestion leaves you stuttering and beet-red."),
(dm:
"leadup","The audacity of his remarks has your blood boiling, ready to unleash your fury.",
"resist","“Back off with your disgusting comments! I'm not here for your lewd entertainment!” You’re poised for battle, your words like daggers.",
"give in","But your attempt at anger melts into a stuttering mess, “How dare— I mean... that's so—why would...?” His eyebrow arches condescendingly as he leans forward.\n\n“Why not, sweetheart? It’s obvious you need someone to take charge.” His tone is as controlling as it is smooth, wrapping around you like velvet handcuffs."),
(dm:
"leadup","Your mind races with retaliatory insults to his lewd advance, your body tensing with indignation.",
"resist","“Keep those vulgar thoughts to yourself, because I sure as hell don't want to hear them!” Your voice is a whip, snapping with controlled rage.",
"give in","The words, however, escape you in a breathless rush, “That’s—no, you’re—what the...?” He only grins wider, his condescension palpable.\n\n“Words failing you, darling? It’s okay, I prefer you silent and compliant anyway.” Your outrage is snuffed out by his shameless arrogance, leaving you flushed and fumbling."),
(dm:
"leadup","Outraged by his flagrant disrespect, you prepare to lash out with fervent reproach.",
"resist","“What's wrong with you? Keep those sleazy comments to yourself, you pig!” You feel a rush of power as you stand your ground, staring him down.",
"give in","But the clarity of your retort dissolves into a flustered mumble, “That’s so—like, you can't—ugh, whatever...” He watches with an amused glint in his eye.\n\n“There’s no 'whatever' when it comes to you. You've got thoughts; I'm eager to hear every last one.” His voice oozes with presumptuous charm, reducing your anger to a sputtering silence."),
(dm:
"leadup","With every lewd word he speaks, your resolve to set him straight intensifies.",
"resist","“Shut it! I've had enough of your demeaning crap. Find someone else to bother!” Your delivery is solid, your message clear.",
"give in","However, articulating your anger becomes as difficult as threading a needle with trembling hands, “Just—stop, okay? It's not—you can't say...” He chuckles softly, the sound undercutting your composure.\n\n“You seem to be struggling. Let me simplify things: stop talking, start moaning.” His lewd suggestion strips away the last of your defiance.")
)
)
]]]
}{
(if:(is_bim:))[
(set:$willpower_text to (twirl:
(dm:
"leadup","“Umm, like, can you not?” Your voice is airy, but you're trying to sound offended.",
"resist","His eyes greedily scan your scantily clad figure. “Sweetheart, dressed like that, you’re practically begging for it.”\n\nYou pout, feeling the heat in your cheeks and a tingle below. “I’m like, not begging for anything, ‘kay? I just like, wanna look cute!”\n\nYour protest is high-pitched and flimsy, your glossy lips pouted in a faux attempt at sternness.",
"give in","He chuckles, leaning close enough for you to smell his cologne. “Nah, baby, you’re dressed like a total slut. And sluts like you don’t get to say no.”\n\nYour mind feels foggy, leaving you helplessly biting your lip."),
(dm:
"leadup","You giggle nervously, your head filled with cotton candy thoughts. “Hehe, you’re being like, super rude!”",
"resist","But he’s unrelenting, his voice dripping with contempt. “Rude? With that outfit, you’re the one being rude to all the guys here, making them hard.”\n\nYou try to muster your bimbofied version of outrage. “I just like, wanna feel sexy and stuff. It doesn’t mean I wanna, like, do anything!” Your words are soft and uncertain.",
"give in","He smirks at your attempt to stand your ground.\n\n“Oh babe, you don’t have to do anything. Just stand there and look pretty like a good little fuck toy.”\n\nYou gasp, a part of you scandalized, another part oddly flattered. “Oh my gawd, you can't just say that…” But your protest is weak, lost in the way your heart flutters and your body responds to his crude words."),
(dm:
"leadup","“Like, stop it!” You whine, the bimbo lilt in your voice uncontrollable.",
"resist","He leans in, his leer growing wider. “Can’t help it when you're dressed like that.”\n\n“I just wanted to, like, feel sexy and stuff. It’s not an invitation!” You try to sound indignant, but it comes out more like a coquettish complaint.",
"give in","He snorts and steps closer. “In that outfit, you look like you’re ready to get fucked right here, right now.”\n\nYou bite your lip, feeling a rush of warm embarrassment. “That’s like, a really mean thing to say…” Your protest is feeble, your body betraying you with a sheen of arousal as he continues to shame and demean you."),
(dm:
"leadup","You pout prettily, your mind a whirlwind of pink fluff. “Don’t be mean!”",
"resist","His gaze is predatory as it lingers on your scantily clad body. “Mean? Look at you, dressed like a porn star. You know what you’re doing.”\n\nYou stamp your foot childishly. “Just cuz I’m wearing this doesn’t mean, like, anything! I’m not your bimbo!” Despite the bimbofied lisp in your voice, you manage a semblance of defiance.",
"give in","He laughs heartily, thoroughly enjoying your squirming. “Sure thing, sugar tits. Keep telling yourself that while you’re dripping wet over how much you need it.”\n\nYour eyes dart around, seeking help, but all you find is his smug grin as your own arousal betrays you, making your stance less convincing and more of a wanton display.")))
](else-if:$character's "arousal" > 7)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","Your voice trembles, a mix of indignation and unwanted arousal. “You can't talk to me like that.”",
"resist","“I don't care what you think my clothes imply – respect is not negotiable.”",
"give in","He sneers, eyes glued to your outfit. “Dressed like that, you're practically screaming for it, aren't you?” You stammer, your willpower dissolving as your cheeks blaze with shameful arousal."),
(dm:
"leadup","A nervous laugh escapes you, belying the warm flush spreading through your body. “That's not okay to say...”",
"resist","You set your jaw, battling the rising tide within. “No matter what I'm wearing, it doesn’t justify your lewd comments.”",
"give in","He steps closer, leering. “Oh, come on – that outfit's barely there. You WANT the attention.” Struggling for breath, you can only blush... your own desires betraying your intent to rebuke him."),
(dm:
"leadup","You try to sound stern, but there's a quiver in your voice, as you tell him off.",
"resist","You clench your fists, trying to channel your inner strength. “This conversation is over. You don't get to degrade me.”",
"give in","Laughing, he points at your outfit. “Look at yourself – you're halfway undressed already.” Your words catch in your throat, heat flooding your chest as you stand there, slack-jawed and crimson."),
(dm:
"leadup","“That's so rude...”",
"resist","Despite the warmth between your legs, you remain defiant.",
"give in","He grins, eyes raking over you. “Dressed for the part, just shy of playing it. But we both know you want to, right?” Mouth agape, you can't muster a retort."),
(dm:
"leadup","“I'm not... you shouldn't say things like that,” you stammer.",
"resist","You take a sharp breath, trying to cool the flush on your skin. “My clothes don't give you a license to objectify me.”",
"give in","He chuckles crudely. “In that outfit, you're one step from being a streetwalker. Don't act so shocked.” Tongue-tied, you feel your cheeks flare with heat, arousal knotting in your belly."),
(dm:
"leadup","“Could you not?”",
"resist","You start to protest, but he cuts you off.\n\n“Something wrong? You dressed up in that outfit, you're asking for it.”\n\nYou grit your teeth, feeling a dangerous flutter inside.\n\n“I dressed for myself, not for chauvinist pigs like you. My clothes don't mean I'm up for your crap.”\n\nYou're fuming, but somewhere deep down, your body is shamefully responding to his attention.",
"give in","He leers, “Dressed like that, you're just another cock-hungry bimbo, aren't you?”\n\nYour cheeks flame with both anger and a treacherous arousal. You stammer out a weak, “No, I—” but the words die in your throat as a pulse throbs between your legs. He's won this round, and you can't do anything but blush and look away..."),
(dm:
"leadup","“Stop looking at me like that!” Your voice wavers as you feel a tightness in your chest.",
"resist","His retort is quick, filled with smug assumption. “Oh, I get it. Dress like a whore, but play the saint, huh?”\n\nAnger slices through the fog of arousal. “I'm no one's plaything. You're a pig, and you can go to hell!” You manage to sound convincing, even as your heart races.",
"give in","He grins. “Come on, we both know why you picked that skimpy little number. You love the attention.” His words peck away at your resolve, each one a reminder of how exposed you feel, how each lingering glance has been stoking a heat you want to deny.\n\nYou squirm, trying to come up with a retort, but all that escapes is a mortified, “That's not... it's not like that...”"),
(dm:
"leadup","You feel a rush of heat to your face, his crude comment overshadowing your sensibilities. “You can’t say that to me!”",
"resist","But he's relentless, his eyes raking over your revealing attire. “Why not? Look at you, showing off all your assets, begging for a man's touch.”\n\nYou clench your fists, your skin prickling with a mix of fury and an unwelcome thrill. “I'm dressed for myself. For confidence, not for your dirty fantasies. Back the fuck off.” Your voice is strong, even though you’re feeling the warmth spreading through you.",
"give in","He scoffs. “Dressed for yourself? In THAT? You just want to be manhandled.” The crude assessment sends a wave of humiliation through you, coupled with a guilty pleasure that tightens your breath. “I—I'm not...” Your words falter, your body betraying your mind with its flush of arousal.")
)
)](else:)[
(if:$pickup is "racial")[
(if:$character's "race" is "asian")[
(set:$willpower_text to
(twirl:
(dm:
"leadup","“Could you NOT?”",
"resist","He grins, undeterred by your discomfort. “What's the matter, can't handle a compliment?\n\n“It's not a compliment, it's racist and lewd. I'm not your 'oriental doll' or any other stereotype. So back off, now.”\n\nYou meet his gaze head-on, challenging him to continue.",
"give in","His laughter is dismissive as he eyes you up and down. “Don’t be so uppity, you’re clearly packaged like a present in that outfit – just waiting to be unwrapped.”\n\nThe implication makes your stomach drop, and you feel heat rising in your cheeks, unable to find the words to defend yourself..."),
(dm:
"leadup","His leering comment sets your teeth on edge. “That's not funny.”",
"resist","He shrugs, gesturing to your clothes. “Come on, dressed like that, you’re asking for this kind of talk.”\n\nAnger flares in your chest.\n\n“No, that's where you're wrong. My clothes are not an invitation for your racial fantasies. Stop talking to me.”\n\nYour firm stance leaves him momentarily speechless.",
"give in","But he’s relentless, his smirk widening. “Why so serious? It's just some fun, and let's be honest, you’re practically gift-wrapped for someone to play with.”\n\nThe words sting, and you bite your lip."),
(dm:
"leadup","You attempt to brush off his crude pickup line. “That's enough.”",
"resist","He chuckles, not backing down. “What? Your outfit screams 'exotic and available.'”\n\nYou feel a surge of defiance.\n\n“Screams? No, it doesn't. You see what you want to see. Now stop projecting your perverse stereotypes onto me and walk away.”\n\nHe doesn’t have an immediate comeback, and you seize the chance to exit.",
"give in","He leans in, relentless. “A girl who dresses to kill shouldn't be offended by a little special attention.”\n\nThe condescension in his voice is palpable, and you feel a flush of mortification at his words, your own voice faltering."),
(dm:
"leadup","You’re appalled by his forwardness. “Excuse me?”",
"resist","His eyes skate over your figure. “I’m just saying, you look ready for a good time.”\n\nYou take a deep breath, ready to shut this down.\n\n“Your 'just saying' is offensive and unwanted. The way I look has nothing to do with you. Get lost.”\n\nYour tone is icy, leaving him with no room to misinterpret.",
"give in","But he’s not done. “Oh, lighten up. You dress up like you're on display and then get mad when someone appreciates it?”\n\nThe accusation makes your face burn, and for a moment, you’re lost for words."),
(dm:
"leadup","You grit your teeth as he continues with his unwelcome comments. “That's not okay.”",
"resist","He waves a hand at your outfit. “Oh, come off it. You look like you're just waiting for someone to take you home.”\n\nYour reply is sharp and unyielding.\n\n“I'm not 'waiting' for anything, especially not from someone like you. I dress for myself. End of story.”\n\nYour clarity cuts through his assumptions.",
"give in","He scoffs, clearly amused by your discomfort. “Dressed like a fantasy, and yet so sensitive. You can't put out signals like that and not expect some noise in return.”\n\nHis words echo in your head, leaving you speechless and feeling small."),
(dm:
"leadup","“Excuse me? That kind of talk is not okay.”",
"resist","He leers at your figure. “What's the matter, you look like a perfect little kawaii doll in that outfit.”\n\nIrritation flares up. “I’m nobody's doll, and I'm definitely not yours. Take your racist crap and walk away while you still can!”",
"give in","But he presses on, condescension dripping from every word. “Don't be so touchy, you're clearly packaged like a present in that tiny outfit.”\n\nYour face turns red, the exposure and helplessness overwhelming. His smirk widens."),
(dm:
"leadup","“Stop it,” you snap.",
"resist","He scoffs, scratching his chin mockingly. “Really? ‘Cause that outfit says ‘yes, please’ in every language.”\n\nAnger gives you strength. “My clothes aren’t an invitation for your fetish fantasies. Back the FUCK off.”",
"give in","His gaze slides down your body inappropriately. “All dolled up and delicate, just how we like 'em, huh?” \n\nHumiliation burns through you as you find yourself without reply, his gaze stripping you further than your clothes ever could."),
(dm:
"leadup","You raise an eyebrow at his stereotype. “Not funny.”",
"resist","He grins, sizing you up. “But you dress the part so well, love.”\n\nIt only fuels your resolve. “I dress for me, not the likes of you. So shut up and get out of my face.”\n\nThe sheer force in your words seems to give him pause.",
"give in","Ignoring your retort, he leans in closer. “Come on, don't be so uppity. You're practically begging for it, dressed like that.”\n\nYou’re tongue-tied, the words like shackles around your dignity, and he knows he's hit a nerve."),
(dm:
"leadup","“I’m not your 'asian fantasy',” you say, disgusted.",
"resist","He winks. “The way you’re squeezed into that sexy little number suggests otherwise.”\n\nFury simmers in your stomach. “The only thing delicate here will be your ego when I’m done. Now fuck off.”",
"give in","He chuckles darkly. “No need to be coy, sweetheart. You’re packaged like a present, might as well have a bow on top.”\n\nYour cheeks burn with shame, his words making you feel like a display item in your own clothes."),
(dm:
"leadup","Your lips part in shock at his crude attempt at a 'compliment.'",
"resist","With a steely gaze, you flick your hair back defiantly. “That’s a disgusting thing to say. Just because I’m Asian and wearing this does NOT mean I fit into your sick fantasy.”",
"give in","He merely grins, his eyes lascivious pits as they take you in. “The way that fabric hugs you, it's like it's painted on — every guy here knows exactly how you’re shaped… and how tight you'd be.”\n\nYou stammer, your normally sharp tongue tripping over a response..."),
(dm:
"leadup","You blink, feeling furious...",
"resist","“It's disgusting perverts like you who make it necessary for us Asian girls to be on guard all the time. I'm not your submissive little plaything.”\n\nYour words come out with rapid-fire precision, stabbing at his arrogance.",
"give in","But his leer doesn’t waver, it only digs deeper as he edges into your personal space. “A tight body like that in an outfit screaming ‘fuck me,’ don't act like it’s not a conscious choice.”")
))
](else:)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","You’re speechless for a second. “Wow, that’s... incredibly off-base.”",
"resist","He leers. “Don't play naive, dressed like that, you know exactly the kind of attention you're attracting.”\n\nPride and anger swell in your chest. “My outfit is for me, not the approval of some douche with zero filter or respect. Last warning – walk away.”",
"give in","But he's relentless. “Dressed like that, you can't be too smart or offended, right? You're serving up some real exotic fantasy right here.”\n\nHis audacity takes your words away, and you're left open-mouthed, cheeks ablaze."),
(dm:
"leadup","“Do you kiss your mother with that mouth?”",
"resist","His smirk doesn't falter. “Look at you, all dressed up like you're huntin' – can't get mad at me for noticing.”\n\nYou step forward, refusing to be cowed. “Hunting? No. I’m nobody's prey, and I don’t exist for your validation. Try that line on someone else, because I'm not buying it.”",
"give in","He chuckles deeply. “Just look at you... all hot and bothered in that slutty little number. Clearly, you want this.”\n\nYou sputter, the remark slicing through your resolve. His assumption lands like a blow, leaving you red-faced and wordless."),
(dm:
"leadup","“Are. You. Serious?”",
"resist","“What, no sense of humor?” He flicks his gaze down, snide. “Or is it that the tight outfit makes you uptight, too?”\n\n“Listen, wearing what I want doesn't concern you. Keep moving.”\n\nYour eyes are filled with a storm he didn't anticipate.",
"give in","He leans in with a leer. “A girl who wears her assets on her sleeve shouldn’t be so fragile... unless that's part of your play?”\n\nCrass and vulgar, his words burrow under your skin, leaving you momentarily frozen, mortified, and utterly at loss for words."),
(dm:
"leadup","“Excuse you,” you spit out, feeling disrespected.",
"resist","He gestures mockingly. “Hey, it’s a compliment. With curves spilling out of that outfit, how could I not comment?”\n\nYou gather yourself, unimpressed. “I own my body and my choices, not your ‘compliments.’ Your objectifying comments aren’t welcome here, or anywhere. Get lost.”",
"give in","He smirks, a predator sighting his prey. “Can’t exactly fault a guy for noticing, with you advertising all that... 'culture' so prominently.”\n\nThe attack on your dignity, dressed as it is in slut-shaming and racial overtones, ties your tongue and heats your cheeks — his eyes branding you where you stand."),
(dm:
"leadup","His comment hits like a slap to the face. “Did you just say that to me?”",
"resist","Ignoring your clear discomfort, he points at your attire. “Oh, don't act so shocked. It's a look that says you're into a certain type... let’s just say, I'm it.”\n\nYour retort is swift and scathing. “I’m not ‘into’ anything but respect and consent, which you're clearly lacking. My outfit isn't an excuse for your racism or fetishization. Move on before I report you or something.”",
"give in","But he presses on confidently. “Come on, why get defensive? You're wrapping that body in promises with every curve you show off — don't get upset when someone calls you on it.”\n\nHis toxic words leave you grappling for a counter, your attire suddenly feeling more like a vulnerability than an expression of your confidence."),
(dm:
"leadup","“You can't be serious.”",
"resist","“Just calling it like I see it.” He winks lasciviously. “That sexy little outfit? That's not here to play.”\n\nYour fists clench at your sides, every line of your body tensing in defiance. “I’ll play when I want, with whom I want. I can dress however the hell I like and it doesn’t give you or anyone else the right to degrade me. Clear off, jerk.”",
"give in","“Don't get all high and mighty. You’re practically wearing a ‘please objectify me’ sign.” He taunts casually, his gaze roaming unabashedly.\n\nShell-shocked by his vulgarity, your outrage is momentarily paralyzed..."),
(dm:
"leadup","“You need to check yourself,” you warn, his comment crossing every conceivable line.",
"resist","He snickers. “An outfit like that leaves little to imagination, you know. It fries the circuits.”\n\nWith a fire burning in your belly, you straighten up. “Imagination or not, you need to keep your thoughts and that disgusting gaze to yourself. My body, my rules. I'm not here for your approval. Back off, or else.”",
"give in","But he's already walking over the line you drew. “All the ethnic spice and none of the ‘please objectify me’ plea? Doesn't line up with that get-up, honey.”\n\nYou falter, feeling exposed and attacked, struggling to regain your composure while he watches, evidently pleased with your distress.")
))
]
](else:)[
(set:$willpower_text to
(twirl:
(dm:
"leadup","“Hey! My eyes are up here.”",
"resist","He smirks at your outfit.\n\n“But look at you, dressed like that and getting all fussy about a little attention.”\n\nYou steel your gaze.\n\n“I choose what I wear, and I choose who I engage with. You don't get a pass because of my outfit. So back. The. Hell. Off.”\n\nYour voice rises above his leering, and for a moment, you see him taken aback by your ferocity.",
"give in","His laugh rings in your ears, close and mocking. “Dressed up like a slut and playing the victim card? That’s rich.”\n\nHe leans back, eyes raking down your body with an air of entitlement that makes your stomach turn.\n\n“Admit it, you love the attention. Why else would you wear something like that?”\n\nYou blink rapidly, words escaping you, your cheeks burning red."),
(dm:
"leadup","“It’s not okay to talk to girls like that.”",
"resist","He chuckles, eyeing your outfit with blatant disregard for your feelings.\n\n“Come on, you're practically begging for it in that get-up.”\n\nAnger flares inside you.\n\n“This outfit doesn't give you or anyone else permission to disrespect me. Start walking before I make you regret it.”",
"give in","He smirks, stepping closer, his eyes prowling over your attire.\n\n“Yeah? Dressed like that, sweetheart, who’s gonna believe you didn’t want this kind of attention?”\n\nHis words slap against your self-respect, your initial bravado crumbling as the color floods your cheeks, his verdict rendered without appeal."),
(dm:
"leadup","You feel his eyes tracing the curves of your body and it takes all you have not to fold your arms defensively. “I'm not here for your commentary.”",
"resist","With a snort, he motions at your clothes.\n\n“Yet you're flaunting all that skin.”\n\nYou clench your jaws to keep the trembling at bay.\n\nIt's still my right to not be harassed by someone like you.”\n\nYou stand your ground, feeling a surge of power at your own words.",
"give in","He doesn’t skip a beat, his leer unabated.\n\n“In an outfit that screams ‘fuck me’, you’re gonna play coy?”\n\nThe crassness of his words washes over you, leaving you mute, cheeks flushed."),
(dm:
"leadup","“You're out of line!”",
"resist","He jeers with a devilish grin, gesturing towards the daring cut of your fabric.\n\n“Honey, you’re not exactly dressed for church. Stop acting so shocked; you like it.”\n\nYour response is immediate.\n\n“I’m not here to cater to your perversions. Now piss off!”\n\nFor a split second, he seems uncertain, your conviction hitting hard.",
"give in","He huffs a laugh, stepping in to whisper sharply.\n\n“Poor thing, dressed up for the wrong kind of attention, weren't you?”\n\nThe suggestion makes your throat tighten, his words finding their mark. You’re left speechless for a moment..."),
(dm:
"leadup","“I don't appreciate being spoken to like that.”",
"resist","He lets out a low whistle, eyeing your barely concealed figure.\n\n“Dressed to kill, or just to tease? Either way, you're asking for something wearing that.”\n\nYour chest swells with indignation.\n\n“The only thing I’m asking for is respect, which you clearly lack. Remember, consent isn't defined by clothing. Now, get out of my face.”",
"give in","But he's not done; his gaze sticks to your skin like sap. “You didn't pick that slutty number to blend into the crowd. You're practically a walking sex ad.”\n\nThe words sting, each syllable laced with judgement, and as you open your mouth to counter, nothing comes out. You stand there, blushing, feeling small."),
(dm:
"leadup","“Who gave you the right to talk to anyone like that?”",
"resist","An eyebrow arches as he sizes up your skin-tight attire.\n\n“Well, isn’t that a little ‘come hither’? Can't blame a guy for reacting.”\n\nFury ignites within you.\n\n“Still doesn't give you a right to be a total douche! I wear what I want, for me, not for you. Back off, or you're going to regret it.”",
"give in","His scoff is dismissive, a cocksure tilt to his head. “Look at you, dressed for the part and playing outraged. Who are you kidding?”\n\nHis probing look makes you squirm, and humiliation burns through you as you grasp for a comeback that refuses to surface."),
(dm:
"leadup","“Stop it. That’s incredibly rude.”",
"resist","He scoffs, a smirk playing at the edges of his lips.\n\n“Oh, come on. With that outfit, what message did you think you'd be sending?”\n\nYour anger simmers hot and fast.\n\n“It’s sending the message that I can wear what I damn well please. You’re the one sending the message that you’re an asshole. And I don’t talk to assholes.” \n\nYou plant yourself solidly, refusing to budge or blush.",
"give in","The leer never leaves his face as he steps an inch too close. “Flaunting those curves... you’re milking every gawk and stare you get.”\n\nThe words knock the wind out of you, your face a tell-tale shade of crimson."),
(dm:
"leadup","You meet his vulgarity with a stony expression. “Your words say more about you than they do me.”",
"resist","He chuckles. “Honey, you’re dressed up like a wet dream. You don’t get to pretend you're offended now.”\n\nDespite yourself, you stand taller. \n\n“No, back the fuck off.”\n\nDespite his initial bravado, he’s visibly taken aback.",
"give in","He guffaws, his stare invasive as he leans in whispering.\n\n“Saying no, but your body's screaming yes in THAT outfit. Admit you like the game.”\n\nYou can’t muster a defense, the gut-punch of his lewd gaze leaving your mouth dry and your stance wilted.")
)
)
]
]}{
(display:"alcohol npc appearance reaction")
(set:$options to "false")
<div class='options'>
(link:(twirl:"Get offended","Get angry"))[
(if:(is_pp:))[
(replace:?explanation)
[][*(twirl:"You think you should be upset, but you’re not really feeling it. (People Pleaser Side Effect)🍀",
"Are you actually mad, though? You’re having trouble even faking anger right now. (People Pleaser Side Effect)🍀",
"The thought of getting upset over this seems silly, actually. (People Pleaser Side Effect)🍀",
"What’s to get upset about? It’s not really a big deal… (People Pleaser Side Effect)🍀")*]<explanation|
(link:"Use Action Point (force yourself to get mad)")
[(set:$action_params to (dm:"cost",2,"result","catcall angry","type","replace text"))(display:"use action point")]
](else-if:$character's "arousal" < $npc's appeal and not ($npc's tags contains "chad" or (is_bim:)))
[
(replace:?text)
[(display:"catcall angry")]
](else:)
[
(replace:?text)
[(display:"catcall reaction willpower check offended")]
]
]
(link:(twirl:"Insult him","Insult","Take him down a peg"))
[
(if:(is_pp:))
[
(replace:?explanation)
[][*(twirl:"Hurting his feelings - just *unthinkable*! (People Pleaser Side Effect)🍀",
"You just *can’t* bring yourself to hurt his feelings! (People Pleaser Side Effect)🍀",
"He would *not* be happy if you were mean to him, and that just doesn’t sit well with you. (People Pleaser Side Effect)🍀",
"You’re *disgusted* by the thought of hurling insults at someone—you just want to get along. (People Pleaser Side Effect)🍀",
"You just can’t find it in you to be mean to someone like that. (People Pleaser Side Effect)🍀")*]<explanation|
](else-if:(is_bim:))[
(replace:?text)[(display:"catcall insult bimbo")]
]
(else-if:$npc's tags contains "insultable")
[
(replace:?text)
[(display:"catcall insult")]
]
(else-if:$npc's tags contains "bald" or $npc's tags contains "chubby" or $npc's age > 39 or $npc's looks < 3)
[
(if:$character's "arousal" > (max:5,(10-$npc's looks)))
[
(replace:?explanation)
[][*(twirl:"You're too aroused to insult him...","You're too turned on to do that...","Sorry, you're too aroused...")*]<explanation|
]
(else-if:$npc's tags contains "chad")
[
(replace:?explanation)
[][*(twirl:"He's way too confident to turn away with an insult.","He's too much of a chad to insult.","This is a chad... there's no real insult you can use.")*]<explanation|
]
(else-if:$character's "effective charm" < (twist:1,5))
[
(replace:?explanation)
[][*(twirl:"You're not quick-witted enough to come up with something...","You're not quick enough to think of an insult...","Your charm is too low...","You can't think of anything...") *🍀]<explanation|
]
(else-if:$character's "effective intellect" < (twist:1,4))
[
(replace:?explanation)
[][*(twirl:"You're not smart enough to come up with something...","You're not quick enough to think of an insult...","Your intellect is too low...","You can't think of anything...")*🧠]<explanation|
]
(else:)
[
(replace:?text)
[(display:"catcall insult")]
]
]
(else-if:$npc's tags contains "chad")
[
(replace:?explanation)
[][*(twirl:"He's way too confident to turn away with an insult.","He's too much of a chad to insult.","This is a chad... there's no real insult you can use.")*]<explanation|
]
(else:)
[
(replace:?explanation)
[][*(twirl:"You can't think of any good insults.","You can't think up a good insult fast enough.","There are no ways to easily insult him.")*]<explanation|
]
]
(link:"Ignore him")
[
(if:((is_pp:)) and ($character's "arousal" > (max:6,(15 - $npc's looks) - (5*(1-($character's "masculinity"/100))))))
[
(replace:?explanation)
[][*(twirl:"You’re really horny and you’d feel terrible if you blew him off. (People Pleaser Side Effect)🍀",
"The thought of brushing him off makes you feel bad, not to mention the fact that your body is ready to go… (People Pleaser Side Effect)🍀",
"Your body really wants it right now, and he’d be hurt if you just brushed him off. (People Pleaser Side Effect)🍀",
"It would probably make his day, and you’re so turned on that you feel like you really need it, too… (People Pleaser Side Effect)🍀")*]<explanation|
(link:"Use Action Point (ignore him)")
[(set:$action_params to (dm:"cost",2,"result","catcall ignore","type","replace text"))(display:"use action point")]
]
(else-if:$npc's tags contains "chad")
[
(replace:?explanation)
[][*(twirl:"You can't just ignore a chad like this.","You can't bring yourself to ignore someone like this.","You can't just ignore someone like him.","You can't just ignore this total chad.","He's too confident.")*]<explanation|
(link:"Use Action Point (ignore the chad)")
[(set:$action_params to (dm:"cost",1,"result","catcall ignore","type","replace text"))(display:"use action point")]
]
(else-if:(is_pp:))
[
(replace:?explanation)
[][*(twirl:"You find yourself feeling really compelled to make him happy. (People Pleaser Side Effect)🍀",
"As much as you’d like to ignore it, a nagging feeling makes you want to acquiesce. (People Pleaser Side Effect)🍀",
"You find yourself feeling really guilty about not giving in… (People Pleaser Side Effect)🍀",
"You start to feel really bad when you think about brushing him off. (People Pleaser Side Effect)🍀")*]<explanation|
(link:"Use Action Point (ignore him)")
[(set:$action_params to (dm:"cost",1,"result","catcall ignore","type","replace text"))(display:"use action point")]
]
(else-if:$character's "arousal" < (max:5,(10-$npc's looks)))
[
(replace:?text)
[(display:"catcall ignore")]
]
(else:)
[
(replace:?explanation)
[][*(twirl:"You're too aroused to just ignore him.","You're too aroused to just ignore him.","You're too aroused.","You're way too turned on.","You're too turned on.")*]<explanation|
(link:"Use Action Point (ignore him despite arousal)")
[(set:$action_params to (dm:"cost",1,"result","catcall ignore","type","replace text"))(display:"use action point")]
]
]
(link:"Politely decline")
[
(if:((is_pp:)) and ($character's "arousal" > (max:6,(15 - $npc's looks) - (5*(1-($character's "masculinity"/100))))))
[
(replace:?explanation)
[][*(twirl:"You don’t know if you could turn him down even if you *weren’t* so horny right now… (People Pleaser Side Effect)🍀",
"Your brain can’t even handle the idea of saying “no,” and your body is already screaming *YES*! (People Pleaser Side Effect)🍀",
"Everything is urging you to give in… You want to make him happy and your body wants to get off. (People Pleaser Side Effect)🍀",
"Rejecting him feels next to impossible, between your desire to please him and your insistent arousal… (People Pleaser Side Effect)🍀")*]<explanation|
(link:"Use Action Point (turn him down despite arousal)")
[(set:$action_params to (dm:"cost",2,"result","catcall polite","type","replace text"))(display:"use action point")]
]
(else-if:$character's "arousal" > (max:6,(15 - $npc's looks) - (5*(1-($character's "masculinity"/100)))))
[
(replace:?explanation)
[][*(twirl:"You're too aroused to turn him down, even politely.","You're too horny to turn this guy down.","You're too horny to turn him down politely.")*]<explanation|
(link:"Use Action Point (turn him down despite arousal)")
[(set:$action_params to (dm:"cost",1,"result","catcall polite","type","replace text"))(display:"use action point")]
]
(else-if:(is_pp:))
[
(replace:?explanation)
[][*(twirl:"Can you really turn him down, though? You don’t want to do that, do you? (People Pleaser Side Effect)🍀",
"It’s so hard to say “no” at times like these… (People Pleaser Side Effect)🍀",
"The thought of rejecting him is starting to make you feel sick. (People Pleaser Side Effect)🍀",
"Can you really tell him “no,” though? You find yourself hesitating… (People Pleaser Side Effect)🍀")*]<explanation|
(link:"Use Action Point (turn him down despite arousal)")
[(set:$action_params to (dm:"cost",1,"result","catcall polite","type","replace text"))(display:"use action point")]
]
(else:)
[
(replace:?text)[(display:(cond:(is_bim:),"catcall polite bimbo","catcall polite"))]
]
]
(link:(twirl:"Say hi","Be friendly"))
[
(replace:?text)
[(display:"catcall friendly")]
]
(link:(twirl:"Welcome it","Smile","Be flirty","Act flirty","Act slutty"))
[
(if: ($character's arousal * 10) > (max:50,(($character's masculinity - ($npc's appeal * 10))/2)))
[
(replace:?text)
[(display:"catcall slutty")]
]
(else:)
[
(if:$npc's appeal < 3)
[
(replace:?explanation)
[][*(twirl:"Okay for real? THAT guy?","Umm... for real, sis? He's like a 1 out of 10.","Yeah, no. Look at him.","Yeah, you don't wanna do that.","Yeah, you have a liiiiitle more self-respect than that.","Oh come on.","Um, you're not in the mood to be a slut for THIS guy.","Him? Really?","Um, really?","Um, you serious right now?","You're joking, right?","Yeah... why don't you find someone hotter than this. It won't be hard.","Come on sis! Not HIM!","H- him? For real?")*]<explanation|
(link:"Use Action Point (be slutty anyway)")
[
(set:$action_params to (dm:"cost",1,"result","catcall slutty","type","replace text"))
(display:"use action point")
]
]
(else-if:$character's "masculinity" > 85)
[
(replace:?explanation)
[][*(twirl:"Your masculinity is hindering you from acting like that.","It's hard for you to act like that, when you're still hanging onto your male identity.","You're too hung up on your masculinity to act like that toward this guy.","I don't think so.","Um. No.","You're not feminine enough.","You're too masculine for that.")*]<explanation|
(link:"Use 2 Action Points (be slutty anyway)")
[
(set:$action_params to (dm:"cost",2,"result","catcall slutty","type","replace text"))
(display:"use action point")
]
]
(else:)
[
(replace:?explanation)
[][*(twirl:"You're not horny enough to act like that.","Yeah... you're not that kinda girl. Not at the moment.","That's not really a really YOU thing to do right now.","You're not feeling like a slut today.")*]<explanation|
(link:"Use Action Point (be slutty anyway)")
[
(set:$action_params to (dm:"cost",1,"result","catcall slutty","type","replace text"))
(display:"use action point")
]
]
]
]
(if:$safeword is "Safeword: Enabled")
[
(link:"🚫")
[
(replace:?text)
[(set:$response to "safeword")(display:"catcall guy leaves")]
]
]
</div>
}{
(if:$character's "alcohol status" > 0)[<div class='options'><mark>
(if:$npc's looks < 4)[
(if:$character's "alcohol status" is 1)[
(twirl:
"This guy walks up to you and thanks to the buzz, he looks somewhat bearable. 😄",
"A buzz softens the edges of his awkwardness; you're not exactly charmed, but you're not repulsed either. 😄",
"Your buzzed vision gives him a kind of 'everyman' appeal, like a character actor you'd see on TV. 😄",
"You're not stone-cold sober and that makes his asymmetrical face look character-filled rather than off-putting. 😄",
"He's hitting on you and he's not your type, but your buzz is telling you he's not a total disaster either. 😄"
)
]
(if:$character's "alcohol status" is 2)[
(twirl:
"You're tipsy enough to find his quirks endearing rather than off-putting. 😜",
"His odd features start to look more like 'unique charm' than 'bad genetics' through your tipsy lens. 😜",
"He's clearly hitting on you. And you're tipsy enough to see it as bold, not obnoxious. 😜",
"Your tipsy state translates his lack of style into a sort of anti-fashion bravery. 😜",
"His uneven smile? You're too tipsy to care, it's almost cute now. 😜"
)
]
(if:$character's "alcohol status" is 3)[
(twirl:
"You're drunk and his face... well, it sorta starts to grow on you, like a weirdly charming fungus. 🥴",
"In your drunk state, he's starting to look like a really unique piece of abstract art. 🥴",
"You're too drunk to care about looks. In this moment, he’s the main character in a comedy you're happy to watch. 🥴",
"You're drunk, and his less-than-ideal features become fascinating landmarks on an otherwise dull terrain. 🥴",
"Drunk as you are, he could be a pirate, a lumberjack, or any rugged fantasy your intoxicated mind can cook up. 🥴"
)
]
(if:$character's "alcohol status" is 4)[
(twirl:
"You're wasted, and he’s become some kind of Picasso painting—mismatched, but intriguing. 🤪",
"He's looking at you, you think? Your vision's blurry, but he resembles a human form, and that's enough. 🤪",
"You're so wasted that his ugliness transforms into a trippy kind of avant-garde appeal. 🤪",
"In your wasted state, he might as well be a quirky character in a sitcom, and you're down for the ride. 🤪",
"You're so sloshed that every face looks like a melting candle, and honestly, it’s kind of endearing. 🤪"
)
]
](else-if:$npc's looks > 6)[
(if:$character's "alcohol status" is 1)[
(twirl:
"This guy comes up to you and you're struck by his sheer attractiveness, amplified by your buzz. 😄",
"A slight buzz makes his already magnetic features completely captivating. 😄",
"Your buzz transforms him from a hot stranger into something bordering on ethereal. 😄",
"Thanks to your buzz, he's not just good-looking, he's mesmerizing. 😄",
"You're buzzed and you wouldn't be surprised if he told you he was a part-time model. 😄"
)
]
(if:$character's "alcohol status" is 2)[
(twirl:
"Your tipsy brain thinks he might just be the most gorgeous man you've ever seen. 😜",
"You're tipsy, and suddenly he's not just hot, he's the epitome of masculine beauty. 😜",
"You're tipsy, and he seems less like a guy in a bar and more like someone who should be on a magazine cover. 😜",
"Thanks to being tipsy, he's now the type of guy you'd write poems about. 😜",
"He's hitting on you, and tipsy you thinks this might be what love at first sight feels like. 😜"
)
]
(if:$character's "alcohol status" is 3)[
(twirl:
"You're drunk and he's a living, breathing Greek god walking among mere mortals. 🥴",
"Your drunk eyes turn him into a celestial being, radiant and blindingly attractive. 🥴",
"You're drunk enough to think he must be a Hollywood actor in disguise. 🥴",
"Drunk you thinks he's not just dreamy, but the literal man of your dreams. 🥴",
"You're drunk and he's turned from stunning to downright otherworldly. 🥴"
)
]
(if:$character's "alcohol status" is 4)[
(twirl:
"You're so wasted that he looks like a divine apparition. Are you in heaven? 🤪",
"Wasted and hypnotized, he becomes the most beautiful illusion your intoxicated mind can perceive. 🤪",
"You're completely wasted, and he might as well be a mythical creature, resplendent and enchanting. 🤪",
"In your wasted eyes, he's an ethereal vision, a perfect dream you never want to wake up from. 🤪",
"You're so sloshed that he transcends reality, becoming the apex of every romantic fantasy you've ever had. 🤪"
)
]
](else:)[
(if:$character's "alcohol status" is 1)[
(twirl:
"A guy walks up to you, and thanks to your buzz, he looks pleasantly regular. 😄",
"Being buzzed gives him a certain 'boy next door' vibe you didn't expect. 😄",
"He's hitting on you, and while you're buzzed, he's looking more endearing than you would have thought. 😄",
"He looks like the kind of guy you might have overlooked, but your buzz brings him into focus. 😄",
"You're buzzed, and what might've been unremarkable now looks kinda cute. 😄"
)
]
(if:$character's "alcohol status" is 2)[
(twirl:
"He's no stunner, but your tipsy state finds him refreshingly average in a good way. 😜",
"You're tipsy and suddenly, average seems underrated. 😜",
"Thanks to your tipsy glow, he starts to look like someone you could get to know. 😜",
"Being tipsy makes him seem unexpectedly inviting, without being intimidating. 😜",
"You're tipsy enough to see his average looks as a blank canvas with potential. 😜"
)
]
(if:$character's "alcohol status" is 3)[
(twirl:
"You're drunk, and Mr. Average is suddenly Mr. Adventurous. 🥴",
"In your drunken state, his everyday features seem perfectly balanced, like a well-mixed cocktail. 🥴",
"You're drunk and he's got this everyman allure that's becoming more and more... compelling. 🥴",
"Thanks to the alcohol, he’s morphed from a wallflower into someone you'd actually want to talk to. 🥴",
"Your drunk mind wonders why you'd ever considered him merely average; he's definitely got something. 🥴"
)
]
(if:$character's "alcohol status" is 4)[
(twirl:
"You're wasted, and he's this human Rubik's Cube you suddenly want to solve. 🤪",
"Wasted as you are, he seems like the main character in a quirky indie film, and you're all about it. 🤪",
"You're so wasted that his average face becomes the epitome of the 'average is sexy' mantra. 🤪",
"In your completely wasted state, he's got a cult classic kind of allure. 🤪",
"You're sloshed, and he looks like a guy you want to share your life story with, or at least the rest of your night. 🤪"
)
]
]
</mark></div>]
}{
(if:$pickup is "dirty")[($bimbo_dialogue:[(twirl:"Ew, you're like... so gross, hehe! 😝","Oh, s-stop it... y-you're being bad, hehe! 🙈","Ugh, l-like, whatever! You're just... just... mean! Teehee! 😅","I—I’m, like, not into... umm... being talked to like that! Hihi! ☺️","Eww, you're, like, such a... um, jerk! Heehee! 😝","Like, umm, stop being so... like, all dirty and stuff! Teehee~ 🙃","Oh my gosh, you're soooo bad! Heehee! 😂","Ugh, whateverrrrr! You're like, a big meanie! 😝","I d-don't like how you're talking to me! Heehee! 🙈","Umm, l-like, I don't even care, okay? 😅","Mmm! You're, like, sooo... uhh, gross! Teehee! ☺️","Eep! S-Stop being such a... um, like, pig! Teehee!","Y-You’re, um... just ugh! 😅","Like, y-you’re just mean, OKAY!? Teehee!","Hah, you’re, umm... so, so bad! Teehee!","Oh my gosh, like, stop it! Ahaha! 🙃","Ugh, you’re, like... uh, sooo annoying! Heehee!","Mmm! Y-You're, like, just... rude! Teehee!","Eww, like, whatever! You're such a... um, dork! Teehee!","Oh, you're sooo bad! Like, I don't even care! Teehee~","Ohmygawd, like, you're soooo... um, mean? Heehee, or something! 😝","Stop it, you're such a...uhhh, what was I saying? Heehee! 😆","Ewww, you’re like, being... um, naughty! Hahaha! You’re silly! 😛","Oh, like, you’re...umm, like, not nice! Heehee, whatever! 😋","Um, you're like, super gross! *giggle* Or wait, was I thinking something else? Haha! 😅","Ew, stop being so... oh, wait, what was I gonna say? Teehee, never mind! 😂","Ew, you’re, like, super gross! Uh, I mean, n-not nice! Hahaha! 😝")])](else-if:$pickup is "body")[($bimbo_dialogue:[(twirl:"Ew, you're like, soooo nasty! Heehee, oh my gosh, stop staring! 😳💕","Oh wow, you're, like, super dirty... uhm... You're bad! Teehee! ☺️","Eeep! You're talking about my... uh... heehee, stop! 😅","Omg, you're soooooo gross! L-Like, what did you just say about my-- my b-body?! Heehee! 🙈💖","Ugh, you’re like, soooo bad! Hahaha, I’m not that... oh my gosh! 😝💗","O-oh, stop! You're, like, being so dirty about my... uh, you know! Teehee! 😘","Ew, you, like, can't just... say stuff about my...um, boobs like that! Haha! 😳💕","Hahaha, you’re so bad talking about my... b-body like that! Teehee! 😅💋","Y-You’re like, such a PERV! Hihi, but like, I don't even know how to... insult you back! 😖💖","U-ugh, you can't just... like, talk about my...um, butt like that! Teehee! 😳🍑","Eep! Sooo dirty! Talking about my...uh, t--tits! Heehee! 💗😝","Oh my gosh, like, stop talking about my... eep... my body! Teehee, what was I saying? 😳💕","You’re, like, being soooooo gross about my... umm, body parts! Hehe! 😅","Heehee, you’re like, really dirty talking about my... oh my gosh! ☺️💋","Ohmigawd, stop! You’re totally a pig or... um, whatever! Talking about my butt! 🙈💖","L-like, ew! You can't just talk about... uh, my body like that! Teehee! 😳💕","Eek! You're being sooo...uhm, bad! Talking about my...uh, stuff! Hehehe! 💋💗","Oh wow, like, stop! You're, um... super dirty talking about my...um, figure! Teehee! 🤭💖","Heehee, you're being, um, gross! 😳💋","Uugh, you can't just...umm, say such dirty stuff about my...uhm, body and its...parts! Hehe 😛💗","Omg, like, you're sooo gross! Hehe, talking about my boobs and...uhm... other things! 😳💕","Oh, stop! You're being so dirty and...umm... talking about my...uh, you know! Teehee! 😅💋","Gosh, you're sooooo bad! Like, talking about my body parts... uh, what was I saying? ☺️💖","Ew, you’re, like, super gross talking about my...uh, t--tits and stuff! Hahaha! 😳💕","Ohmigawwwd, stop! You're, like, being so naughty about my... um, booty or somethin'! Teehee! 🙈💖","Heehee, you're so *bad* talking about my...um, boobs and... oother things! Hihi! 😳💋","Eeek! You're like, sooo dirty talking about my...uh, body and stuff! Teehee! 😋💗","Oh my gosh! Stop being sooo gross talking about my...uh, parts! Heehee!")])](else-if:$pickup is "racial")[($bimbo_dialogue:[(twirl:"Ohmahgawd, like, what did you just say? You’re sooo... um, naughty! Heehee! ☺️","Y-you can’t just... um, talk about me like that! Teehee, you're sooo bad! 😅","Heyyyy, stop being sooo gross... um, about my, like, race or whatever! Hihi! 😝","Like, omg, what did you just say? T-Teehee, you're such a... um, jerk! 😏","Eep! You can't say stuff like that! Ummm, y-you're, like, super rude, okay? Hehe! 🙈","Ugh, like, whatever! That's, um, super naughty to s-sayyyy! Teehee~ 😋","Oh my gosh, you're soooo dirty! Like, I can't even... um, focus! H-Heehee! 😂","You, like, can't just talk to me that way, um, about my looks! Teehee, s-stop it! 😅","Ewww, you're, um, really gross! W-What was I saying? Teehee! 😆","S-Stop being so... um, someone help me! Hehe, just stop it! 😝","Ohhh, that's like, sooooo racist! Teehee, you're such a... b-big meanie! 😛","Ugh, you're like, sooo naughty to say that! Heehee, w-whatever! ☺️","O-M-G! Like, what did you say? You're soooo... um, nasty! Hehe! 😋","Hah, um, you're super bad! L-Like, don't talk about my, ummm... yeah! Teehee! 😂","That’s like, SOOO GROSS about my race! Teehee! Ugh, you're so... um, annoying! 😝","Like, eww. You're, um, being super dirty and racist! Teehee~ 😋","Hahaha, you're soooo bad about my face and stuff! W-Wait, what was I saying? 😅","Heyyyy, you can't say stuff like that! Umm, that's so racist and stuff! Heehee! 😂","Ohmahgawd, like, stop! You're soooo... um, mean about my race and like... um, yeah! Teehee! 😆","Ewwwww! That's s-sooo bad and racist! Teehee, w-whatever, you're like, a jerk! 😝","Omg, you can't just, like, talk about my race like that! Teehee, you're super naughty! 😏","Heyyy, like, my race isn't for you to... um, judge! Teehee, you're so silly! 😋","Ew, what you're saying about my race is, like, soooo bad! Teehee, s-stop it! 😆","Um, hey! That's like, sooo bad! Teehee, w-why you saying that about my... um, me? Heehee! 😂","Like, eww! You're mean about my race and stuff! Teehee, just stop, okay? 😝","Heyyy, you can't say, um, stuff about my looks like that! Teehee, you're so dirty! 😏","Ohhh, that's, like, a really bad thing to say about my race! Teehee, you're so... um, naughty! 😅","Hah, like, you can't say things like that! Teehee, you're so silly and, um, mean! 😂")])](else:)[($bimbo_dialogue:[(twirl:"You think you're soooo cool, huh?","Oh, please! You're, like, such a... um... ohmigosh, what was I saying? Hee-hee! 🥴","Just go away, you... um... meanie face! Yeah! Meanie face! Hmmph!","Ugh, you're, like, such a... uh... big... um... poop head! Haha, gotcha! Wait... 😅","Back off, loser! Or, um... maybe you can hang out with me? No, wait! That's not right! 😵💫","Haha, whatever, you're just a... um... a silly goose! Gotcha! Hehe~ 😜","Pfft, I don't... um, need you to tell me I'm hot, I already know! Hehehe~","Ugh, you're such a... um, what was I saying? Teehee! 😖","Well, you're just... um, really annoying! Ugh, stop making me blush! 😫","You think you're so smart, huh? Well, I... um, forgot what I was gonna say! Hehehe! 😳")])]($notification_still:(twirl:"Bimbos like you aren't great at comebacks.","Bimbos struggle with insults."))<div class='options'>(link:(twirl:"He chuckles.","He smirks.","He smiles.","He grins.","He just grins."))[(set:$response to "bimbo insult")(replace:?text)[(display:"proposition")]]</div>
}{
(if:$npc's tags contains "chubby")[(if:(twist:1,2) is 1)[You make a fat joke that is too offensive to put here. Just know it was a real zinger.](else:)["(twirl:"Are you in some kind of fitness protection program?","You're so fat the escape velocity at your surface exceeds 3.0x108 m/s.","You're so chubby you got pesos in one pocket, and yen in the other.","I usually don't make jokes at the expense of fat people like you, cause you might eat me.","I bet when you go to the restaurant and look at the menu, you just say 'ok'.","When you stand on the scale, it says 'one at a time, please'.","I got a joke for you: what two things does a fat guy need to see his penis? A mirror and something to eat.","You look like a homeless guy that's been to a soup kitchen that specializes in ice cream soup.","I was going to make a fat joke... but it didn't work out.","You cum when the guy delivers the pizza in the porno.","I'd swerve to miss you, but I'd run out of gas.","You look like when you go camping, the bears have to hide *their* food.","You're so unfamiliar with the gym that you call it James.","You're so fat that I can see behind you, due to gravitational lensing.","I heard you needed to get baptized at sea world.","Your blood type is nutella.")"]](else-if:$npc's age > 39)[(if:(twist:1,2) is 1)[You make a quip about his age.](else:)["(twirl:"Ok boomer...","Ok, *dad*...","Should I call you daddy? Cause you look old enough to be mine.","Yeah ok boomer.","You're so old, your social security number is three.")" you (twirl:"quip","retort").]](else-if:$npc's tags contains "bald")[(if:(twist:1,2) is 1)[You make a quip about his lack of hair.](else:)["(twirl:"I loved you in Megamind!","I hear your lice are starting to picket about deforestation!","How far do bald guys go up while washing their faces?","Well, your bald head is brighter than my future, so...","When bald guys get in the shower, they get brainwashed, right?","You are so bald, United Airlines has asked for permission to land!","Diglett ass motherfucker,")" you quip.]](else-if:$npc's appeal < 3)[(if:(twist:1,2) is 1)["(twirl:"I would mess up your face, but your mama did that for me.","You're so ugly, your portraits hang themselves.","You're so ugly, you couldn't arouse suspicion.","You're living proof that evolution is a lie!","When One Direction saw you, they went the other direction.","I heard that when you went to a haunted house, they just gave you a job application.","You're so ugly that your birth certificate is a letter of apology.","When you pass the toilet, it flushes itself.","If your eyes were any farther apart, you'd be an herbivore.")" you quip.](else:)[You make a joke about his looks.]](else:)[(twirl:"You shoot him down with a nasty insult.","You take him down a peg with a withering insult.")](if:(twist:1,2) is 1)[(nl:2)(twirl:"Brutal!","K.O.!","Damn, SON! (Or daughter, I guess)","Wow, that was cold!","Damn, that was cold!","Damn girl, that was cold!","Holy shit!","Boom!","There has been a murder!") (twirl:"Gonna be awhile before he recovers from that.","His emotional recovery is gonna take a while.","Not sure how long he'll take to recover.","He leaves, crestfallen.","He leaves without another word.","Murdered by words, he leaves.")](nl:1)
(display:"catcall guy leaves")
}{
(if:$pickup is "body")[
(if:(twist:1,2) is 1)[(set:_for to (twirl:"for objectifying your body","for objectifying you","for his thirsty comments","for focusing on your body","for being a perv","for being disrespectful","for being so disrespectful","for just commenting on a girl's body"))(twirl:"You get visibly upset with him _for.","You react angrily.","You get angry with him _for.","You get upset with him _for.")](else:)["(twirl:"Is that all you know how to do?","Is that all you know about how to interact with girls?","Is that all you know how to say?","Is that all you know about how to behave?","This is how you interact with women?")" (print:" ")(twirl:"you say, upset.","you bark.","you snap.","you say.","you say, angrily.","you shout.") (if:$trigger is "breasts")[(set:_breasts to (twirl:"breasts","jugs","knockers","boobs","rack"))"(twirl:"Talk about my _breasts?","Telling girls how you like their _breasts?","Just talk about my _breasts?","Talking about a girl's _breasts?","Your first comment, and it's about my _breasts?","Your first comment is about a girl's _breasts?")(if:(twist:1,2) is 1)[ (twirl:"God!","Goddamn!","Jeez!")]"](else-if:$trigger is "ass")[(set:_ass to (twirl:"ass","butt"))"(twirl:"Talking about my _ass?","Telling girls how you like their _ass?","Just talking about my _ass?","Talking about a girl's _ass?","Your first comment, and it's about my _ass?","Your first comment is about a girl's _ass?")(if:(twist:1,2) is 1)[ (twirl:"God!","Goddamn!","Jeez!")]"](else:)["(twirl:"Talking about my body?","Telling girls how you like their body?","Just talking about my body?","Talking about a girl's body?","Your first comment, and it's about my body?","Your first comment is about a girl's body?")(if:(twist:1,2) is 1)[ (twirl:"God!","Goddamn!","Jeez!")]"]]
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",4,
"length",3,
"cause",(twirl:"Since you got hit on by a sleazy guy.","Because you got catcalled."),
"charm buff",-1,
"intellect buff",-1,
"arousal buff",-1,
"effect text","(-1 🍀, since you'll have trouble interacting with people normally)"
))(print:"
")(display:"new mood")(display:"refresh stats")
]
(if:$pickup is "face")[
(twirl:"You get visibly upset with him.","You react angrily.","You get angry with him.","You get upset with him.")
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",4,
"length",3,
"cause",(twirl:"Since you got hit on.","Because you got catcalled."),
"charm buff",-1,
"intellect buff",-1,
"arousal buff",-1,
"effect text","(-1 🍀, since you'll have trouble interacting with people normally)"
))(print:"
")(display:"new mood")(display:"refresh stats")
]
(if:$pickup is "dirty")[
(if:(twist:1,2) is 1)[(set:_for to (twirl:"for being so vulgar","for being so trashy","for being so thirsty","for talking so dirty to a total stranger","for having the gall to use such language"))(twirl:"You get visibly upset with him _for.","You react angrily.","You get angry with him _for.","You get upset with him _for.")](else:)["(twirl:"Is that all you know how to do?","Is that all you know about interacting with girls?","Is that all you know how to say?","Is that all you know how to behave?","This is how you interact with women?")" (twirl:"you say, upset.","you bark.","you snap.","you say.","you say, angrily.")
"(twirl:"Talk *dirty* to girls?","Using your dick to talk?","Speaking with your dick?","Letting your dick conduct your social interactions?","Using that kind of filthy language??")"
]
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",4,
"length",3,
"cause",(twirl:"Since you got hit on by a sleazy guy.","Since a guy tried coming onto you with sleazy comments."),
"charm buff",-1,
"intellect buff",-1,
"arousal buff",-1,
"effect text","(-1 🍀, since you'll have trouble interacting with people normally)"
))(print:"
")(display:"new mood")(display:"refresh stats")
]
(if:$pickup is "racial")[
(set:_asshole to (twirl:"asshole","jerk","jackass","prick","dickhead","asshole"))
(if:(twist:1,2) is 1)["(twirl:"I don't have time for fucking racists.","Well aren't you a bigoted _asshole!","I don't appreciate that sort of racial language, _asshole!","You better watch that racist sort of language with me, _asshole!","Yeah, I don't vibe with racists.","Yeah, pickup a girl using racist language. Real cute, _asshole.")"](else:)[
(if:$character's "race" is "black")["(twirl:"Yeah, black girls don't actually appreciate that kind of talk, believe it or not,","Yeah, you need to learn how to interact with black girls,","You really haven't got the hang of talking to women of color yet. Better luck next time, asshole","Does that kind of talk usually work on black girls? I doubt it,")"]
(if:$character's "race" is "asian")["(twirl:"Yeah, asian girls actually hate that kinda come-on, believe it or not!","That's not how you pick up asian girls, my dude!","You know, I'm from America. I don't appreciate being talked to like I'm some sort of exotic thing. Try again with someone with less self respect, asswipe!","Too bad asian girls don't like racist white guys!")"]
(if:$character's "race" is "latin")["(twirl:"Yeah, uh, that kind of racist line doesn't actually work on latinas,","Um, does that normally work on latinas?","Stop treating me like I'm not from here. You white guys are pieces of work,","You're a real racist sack of shit!","Yeah, you really haven't got the hang of talking to latinas yet. Better luck next time,")]
](print:" ")(twirl:"you say, upset.","you bark.","you snap.","you say.","you say, angrily.","you shout.")
(if:$character's "arousal" > 3 and (twist:1,2) is 1)[(twirl:"You might be turned on,","You might be aroused,","You might be horny,") (twirl:"but not enough to entertain racists.","but not enough to be polite to a racist prick like that.","but not enough to put up with that kind of bigotry.")]
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",5,
"length",3,
"cause",(twirl:"Since some racist idiot hit on you.","Since a racist prick hit on you."),
"charm buff",-2,
"intellect buff",-1,
"arousal buff",-1,
"effect text","(-1 🍀, since you'll have trouble interacting with people normally)"
))(print:"
")(display:"new mood")(display:"refresh stats")
]
(display:"catcall guy leaves")
}{
(set:_him to (twirl:"him","him","your unsolicited admirer","your unwanted suitor"))
(twirl:"You try to just ","You try to ","You just try to ","You attempt to ","You try to simply ")(if:(twist:1,2) is 1)[(twirl:"brush _him off","ignore _him and hope he goes away","ignore _him","brush him off and hope he goes away","not engage").](else:)[
(twirl:"brush off","ignore") (if:$pickup is "face")[(twirl:"the unwelcome compliment","the unsolicited compliments").](if:$pickup is "body")[(twirl:"the thirsty comments","the comments about your body","the sexual comments","his highly sexual comments about your body","his admiration of your body","his comments about your body","his objectifying comments").](if:$pickup is "dirty")[(twirl:"his overtly sexual advances","his annoyingly dirty advances","his sexual catcalls","his highly dirty comments","his pervy behavior").](if:$pickup is "racial")[(twirl:"his racist remarks","his racially insensitive remarks","his racially-tinged remarks","his racist behavior").]](set:$success to "true")
(nl:2)(if:$npc's tags contains "gentleman")[(twirl:"A true gentleman, he takes the hint and leaves.","He takes the hint.","He doesn't continue.","It works - he leaves. What a gentleman.")](else-if:($npc's tags contains "creepy" or $npc's tags contains "annoying" or $npc's tags contains "fuckboy") and (twist:1,2) is 1)[(set:$success to "false")(twirl:"But he doesn't know how to a take a hint.","But he doesn't take the hint.","But he's not exactly a gentleman - he keeps at it.","But he isn't taking the hint.","But he continues anyway.","He just continues anyway.")](else-if:$npc's tags contains "nerd")[(twirl:"But he doesn't seem great at picking up social cues.","But he doesn't seem to have the necessary EQ to understand that you're ignoring him.","But he seems like a geek, unable to tell when he's not wanted.","But it seems like he's bad at telling when he's not wanted.")(set:$success to "false")](else-if:(twist:1,2) is 1)[(set:$success to "false")(twirl:"But he doesn't know how to a take a hint.","But he doesn't take the hint.","But he's not exactly a gentleman - he keeps at it.","But he isn't taking the hint.","But he continues anyway.","He just continues anyway.")](else:)[(twirl:"He takes the hint, leaving you alone.","He nods and leaves you alone.","He looks disappointed, but leaves you alone.","He looks really disappointed, and leaves you alone.","He looks upset, but obeys your wishes and leaves you alone.")]
(if:$success is "true")[(display:"catcall guy leaves")](else:)[(nl:1)<div class='options'>(link:"Next")[(set:$response to "ignore")(replace:?text)[(display:"proposition")]]</div>]
}{
($bimbo_dialogue:[(if:$pickup is "dirty")[(twirl:"Omigawd, you're such a naughty boy! Hehe, I love it when guys talk dirty to me! 😝 You know how to make a girl tingly all over. 😋","Oooh, you're making me all hot and bothered, hehe! 😳 You got me feeling all sorts of ways...","Oh wow, you’re suuuper bold, aren’t you? Hehe, I like a guy who knows what he wants.","Haha, you're soooo bad! I can't believe you just said that, hehe! 😝 Show me what you’re working with, big boy.","Hehe, you’re such a dirty talker! 😝 I love it! 💖","Ooh, you're making me shiver with excitement! 😋 You know just what to say to get me all worked up.","Eek! You’re sooo naughty! Mmm, I like it when a guy takes control and talks dirty to me.","You’re such a bad boy, but I kinda like it!","Haha, you're too much! I love a guy who’s not afraid to get dirty.","Teehee, you’ve got me all giggly and excited! 😝 You’re such a naughty boy, but I’m totally into it! 💓","Wow, you’re really forward, aren’t you?","Ooh, you’re sooo bad! I can’t believe you just said that, hehe!","Oh wow, you're soooo bad! Tell me more, hehe!","Mmm, you think you can handle me, baby?","Ooh, you're soooo dirty! I love it, haha!","Ohmygawd, you’re making me sooo wet! Tell me more!","Hehe, you’re such a naughty boy! Make me blush more! 😏","Eee, you know just what to say to a naughty girl like me!","Mmm, you’re making me all tingly! Keep it up! 😍","Oh wow, you’re sooo bold! I like that! 😋","Ooh, tell me more, baby! I love hearing dirty stuff! 🥵","Haha, you’re sooo bad! I bet you know how to use that mouth, huh? 😘","Ohmygawd, you're making me sooo horny! Keep talking! 😍","Hehe, you're naughty! I like that! 😛","Oh, you’re soooo hot! What else can you do? 🥵","Ahaha, you’re making me soooo tingly! Say more naughty things! 💋","Omg, you’re so dirty! I love it! Want to see me blush more? 😳","Hehe, you're making me soooo hot! Keep going! 😈","Mmm, you’re turning me on sooo much! Tell me more!","Ahaha, you're such a tease! I love it! Keep going!","Ooh, you’re so bold! What else you got? 😋","Hehe, you make me soooo horny! Say more dirty stuff!","Mmm, talk dirty to me more, I love it!","Ohmygawd, you're soooo dirty! I love it!","Hehe, you think you got what it takes? Show me!","Mmm, you know exactly what to say to make me wet!","Ooh, you're making me sooo horny! Keep talking like that! 🥵","Ahaha, you're turning me on sooo much! Say more dirty things!","Omg, you're such a bad boy! I want to hear more!")](else-if:$pickup is "face")[(twirl:"Ohmygawd, you're so sweet! Hehe, you think I'm pretty? Bet you say that to all the girls, don't ya?","Aww, you're making me blush! Hehe, keep talking like that and you might get a reward!","Oh, stop it! What else do you like about me?","Hehe, you're too kind! I love it when guys notice me. 😘","Oh my gosh, you're like, soooo sweet! Say more nice things, I love it!","Awww, you're making me feel soooo special!","Ooh, you're making my heart race! Keep flattering me, I might just have to... do something about it.","Hehe, you're such a charmer! Wanna see how pretty girls like me can be really naughty?","Aww, that's like, the nicest thing anyone's said all day! Keep talking, big boy!","Heehee, you say the sweetest things!","Ohmigawd, you're sooo nice! Keep complimenting me and maybe I'll let you see just how grateful I can be!","Aww, you're making me feel all tingly inside! Wanna see what else I can make tingle?","Oh, you're such a flatterer! You know pretty girls love hearing stuff like that!","Heehee, you're so sweet! Let's see if you're as nice up close and personal!","Awww, thank you! *giggle* You’re not so bad yourself, big boy! Mmmm~ just keep those compliments coming!","Hehe, you're making me blush! Keep giving a girl compliments and who knows what might happen~","Oh, you're sweet! *giggle* I love when a guy notices how pretty I am! Tell me more!","Mmm, you like what you see? *giggle* Keep talking like that, baby!","Oh, you're making me feel soooo special! *giggle* Maybe you'll get something out of it~","Aww, you're soooo nice! *giggle* I bet you know how to treat a girl right~","Hehe, you have such a way with words! Keep it up, and who knows where this might lead!","Oh my gosh, that's soooo sweet! Keep it up, and you might just get lucky!","Heehee, you're too good to me! Keep those compliments coming, big boy!","Awww, you're making me feel like a princess! *giggle* Keep showering me with attention!")](else-if:$pickup is "body")[(if:$catcall_type is "breasts")[(twirl:"Mmm, you like my tits, huh? *giggle* Bet you can't keep your eyes off 'em, huh? Wanna touch?","Oh, you're soooo naughty! *giggle* You can't stop staring at my girls, can you? Imagine what it'd be like to bury your face in ‘em!","Hehe, you're such a bad boy! You like these tits, don't ya?","Oh my gawd, you’re sooo dirty! *giggle* I love it! Keep talking about my tits, baby. You’re making me all tingly!","Mmm, you like my titties? *giggle* I bet you'd love to get your hands all over 'em!","Hehe, you're such a perv! *giggle* Keep telling me how much you want to squeeze my tits!","Mmm, you got a thing for my tits, huh? *giggle* Just imagine how they'd feel in your hands!","Oh, you like my tits, huh? Bet you'd love to get your hands on them, wouldn’t you?","Mmm, you can say that again! I want you to imagine squeezing them while I moan your name, big boy.","Bet you’d love to see these tits bouncing right in front of your face, huh? Just wait 'til you get your hands on them.","Oh, you dirty boy! What would you do to these big, soft tits if you had the chance?","Mmm, you talking about my titties is making me wet. What else you wanna do with them, huh?","Imagine me grinding these big titties riiight up against that hard cock of yours. Bet you’d love that, wouldn’t you?","Mmm, I can tell how badly you want to motorboat these big tits. Let me hear what else you'd do to them!","Oh, you naughty boy! Wanna bury your face between these tits and feel that soft, warm flesh all around you?","Imagine these tits bouncing and clapping together while you fuck me from behind... would you like that, baby?","Mmm, wouldn't mind feeling your mouth and tongue all over these huge nipples. Tell me more dirty things about my tits!")](else:)[(twirl:"Ohmigawd, you naughty boy! Hehe, can't stop staring at my big ass, huh? Bet you'd love to see it bounce up and down just for you!","Hehe, you wanna grab a handful of my big, juicy booty? I bet you can't even handle it!","Ooh, you're so bad! Wanna spank me?","Oh my gawd, you like my big ass, huh? Bet you wanna see it bounce up and down while I ride you~ you'd like that, huh?","Ohmygawd, you like my big ass, don’t ya? Bet you'd love to see it bouncing up and down for you, huh? Mmmmm, so naughty!","Heh, you really wanna spank this big ol’ butt, don’t you? I've been such a bad girl!","Ooh, you talkin’ ‘bout my booty gets me soooo hot! Imagine those cheeks clapping just for you!","Mmmm, my ass loves attention, baby! Wanna see it bounce up and down while I ride you? You’d like that, huh?","Hehe, you’re so naughty! You’d love to bend me over and watch that ass jiggle, wouldn't ya?","Been thinking about clapping these cheeks, huh? Hehe, come here and make ‘em bounce, big boy!","Mmmm, I bet you’d love to get your hands on this big, juicy ass, don’t ya?","Ooh, you got me all excited talkin’ ‘bout my ass! Wanna see it wiggle just for you? You’d love that, huh?","Hehe, you make me wanna show you just how bouncy this ass can get! Mmmm, wanna spank it while I moan for you?")]](else-if:$pickup is "racial")[(if:$character's "race" is "asian")[(twirl:"Ohhhh, you like Asian girls? Hehe, we are soooo tight and eager, right? Guess I might have to prove it to you. Mmmm!","Oooh, does my cute little asian body make you *hot*, big boy? Bet you wanna slide into this tiny slot, don'tcha? Ughhh~","Mmmm, you want this little Asian doll all to yourself? Oooh, what do you want me to do, big boy? Keep talking dirty to me~","Mmmm, you like these small, pretty Asian girls? Wanna pound me as you call me your little Asian slut? Oooo~ I love it!","Ooooh, yes! You want an Asian girl to be your little toy? Mmmm, let me show you how slutty an Asian girl can be!","O-oh, you like Asian girls, huh? Hehe, you must have a serious case of yellow fever!","Mmm, Asian girls drive you crazy, don’t we? I bet you’d love to see how flexible I can be! *giggle*","Ohmygawd, you and your yellow fever! I can tell you wanna try some real Asian delicacies~","Hehe, you can’t resist my exotic charms, can you? Asian girls know exactly how to please a man~","Oooh, you love that I’m Asian, don’t you? Bet you dream about being inside one every night!","Y-you're soooo into Asian girls, huh? Heehee! We know all the best ways to tease and please!","Mmm, you got a thing for Asian beauties, don’t you? I could show you things you’ve only seen in your wildest dreams!")](else-if:$character's "race" is "black")[(twirl:"O-Oh? You’ve got a taste for chocolate, huh? Hehe, you wanna see if I live up to the hype? *giggle*","Mmm, so you’ve got jungle fever, baby? Think you can handle this wild ride?","Ohhh, you just can't resist that ebony swirl, huh? Hehe, let's see if you can keep up, big boy!","Heehee, maybe I’ll show you just how spicy I can get!","Ooh, so you wanna know what it's like to be with a black queen? Get ready, baby!","Hehe, you're sooo bad with your jungle fever! Maybe I'll have to show you just what you've been missing~","Oh, you got a thing for chocolate, huh? Well, sugar, once you go black, you never go back!","Mmm, you like this ebony goddess, don't ya? Believe the hype, baby, we really know how to work it!","Oh, you got that jungle fever? Well, I'm up for a little safari adventure, big boy.","Oh, you like your chocolate dark? Well, darling, you're in for a treat!","Mmmm, I knew you couldn’t resist this dark chocolate. Trust me, the feeling's mutual, sugar.","Aww, you're so sweet! You got a taste for dark chocolate, huh? Try me--I promise, I taste even better than I look.","Mmmm, like what you see, honey? There's nothing quite like the taste of a hot chocolate goddess.","Oh you know what they say, you want some sugar? I got all the sweet you need!","Oh, you like your coffee black? *Giggle* Bet you love how it gets you going, huh? Well, get ready for the ride of your life.","Uh huh, I see you been craving some dark chocolate! Well, I'm the sweetest candy you ever gonna taste.","Mmm, you ready for some of that Black Girl Magic? Well buckle up, baby!","Hehe, you got a thing for exotic girls, don't ya? Good thing 'cause I got something really addictive in store for you.","Ooooh, you got that sweet tooth, huh? Well lucky for you, this rich, black, velvety chocolate is on the menu.")](else-if:$character's "race" is "latin")[(twirl: "Ooh, so you've got a thing for us Latinas, huh? Hehe, can't resist the spice, can you, big boy? Mmm, we're feisty and muy caliente.","Ooh, you're making me all hot and bothered, hombre!","Mmm, love a guy who can handle his spice!","Oh, and you think you can handle a Latina beauty like me, mister? Well, careful what you wish for, we tend to be… muy caliente. *giggle*","Hehe, you like my spicy Latina flavor? Maybe you need a taste… get ready to break a sweat, baby.","Aye, you think all Latina girls are wild in bed, huh? *giggle* You got that right, papi... you won't know what hit ya!","Oh, you've got a thing for Latina girls, huh? Lucky for you, I'm a whole lot of woman to handle, papi. *giggle*","Ay ay ay, so you're into that Latina heat, are ya? Well... careful, we're known to leave men.. .exhausted. *giggle*","Oh, papi… you want a feisty Latina, do ya? *giggle* Be careful what you wish for… you just might get it!","So you've got a sweet spot for Latinas, huh? *giggle* Hope you can handle all this spice, papi!","Ooo, you think Latinas are fiery, huh? *giggle* Buckle up, it's gonna be one wild ride!","Hehe, you into Latinas? Well, you've hit the jackpot, baby, cause I'm not just any Latina...I'm *the* Latina.","Oh, you think we Latinas are hot, huh? *giggle* Get ready for the heat, babe. Might want to lose a few layers.","Ooh, papi, you got a thing for Latinas? *giggle* Just wait till you see how we work it. Muy caliente!","Oh, so you're into that Latina heat? Prepare yourself, papi, it gets muy caliente.","Oye, papi! So you've got a thing for Latinas? *giggle* Prepare for some fireworks!","Oh, you like your girls with some Latina flavor, huh? Careful, papi, we can be quite spicy!","Do you like what you see, mister? Us Latinas are more than just a feast for the eyes, we're also... a handful. *giggle*","Ay, papi, you think Latinas are hot stuff, huh? *giggle* Just you wait, you haven’t seen nothing yet!")]]])
}{
($bimbo_dialogue:[(if:$pickup is "body")[(if:$catcall_type is "breasts")[(twirl:"Omigawd, you're sooo naughty, hehe!","Ooh, you noticed my boobies, teehee!","Eeee, you're making me blush, haha!","Oh wow, you’re so dirty! I love it! 😝","Hehe, you like my boobies, don’tcha?","Mmm, you're so bad, teehee!","Aww, you think my tits are nice? ❤️","Omg, like, you’re making me all hot!","Haha, you're, like, such a bad boy!","Omg, my boobies? Heehee, you’re so bad!","Ahaha, you’re such a tease!","Teehee, you like my titties, huh?","Omg, you’re sooo dirty! I love it!","Ahaha, you’re making me blush!","Ooh, you’re making me giggle, haha!","Mmm, my boobies? You’re so bad!","Giggle, you’re soooo naughty!","Oh, you like my tits, huh?","Aww, you’re making me hot!","Haha, you're so dirty, teehee! 😋","Mmm, you noticed my tits, haha!","Omg, you’re making me sooo tingly!","Gosh, you're sooo bad! Teehee!","Haha, you're making me blush, baby!","Ooh, my boobies? You’re naughty!","Haha, you’re making me all hot!")](else:)[(twirl:"O-oh my gosh! Thank youuu!","Heehee, you’re naughty!","Aww, you're so sweet!","Hehe, you're bad!","Ooh, you like my booty?","Aww, thank youuuu!","Heehee, you're making me blush!","OMG, you really think so?","Hehe, you're soooo bad!","Heehee, that’s so naughty!","Aww, you're such a flirt!","Hehe, you’re so cheeky!","OMG, you’re so bold!","Aww, thanks!","Hehe, you’re making me all shy!","Hehe, you like my big booty? 😝","Ohmahgawd, you like my fat ass? Heehee! 😳","Teehee, you think my butt is hot? 😘","Heehee, omg, you noticed my big ol' butt? 😋","Haha, you love my fat buns, huh? 😏","Heehee, you like my dump truck, don’t you? 😊","Omg, you're liking my thick ass, huh? 😝","Heehee, you think my butt’s so juicy? 😘","Haha, you like my big ol' dumper, don’t ya? 😋","Oh wow, you think my ass is perfect, don’t you? 😝","Teehee, you love my cake, right? 😘","Heehee, my buns are all yours to enjoy! 😏","You like that fat ol' ass, huh? Heehee! 😋","Heehee, you think my booty is amazing? 😘","Ohmahgawd, you love my big ol' booty, don’t ya? 😝")]](else-if:$pickup is "face")[(twirl:"Teehee, oh wow! Thank you, that's sooo sweet! 😊","Heehee, you really think so? That's like, soooo flattering! 😋","Haha, aww, you’re making me blush! Stop it! 😍","Omg, really?! You’re, like, making my day! 😂","Teehee, you're just saying that 'cause you’re so sweet! 🤭","Ohmygosh, you're so nice! Heehee, thank you! 😚","Wow, you're like, sooo charming! Teehee! 😝","Haha, oh stop it! You're too much! Heehee! 😆","Eeep, you're making me giggle! Hehe! 😳","Heehee, you’re such a smooth talker! I love it! 😏","Aww, thank you! That’s the nicest thing anyone's said to me today! ❤️","Teehee, you’re really good at this, huh? 😘","Omg, stop it! You’re gonna make me all giggly! Hehe! 🙈","Heehee, you’re such a flirt! I love it! 🤩","Wow, you’re making my heart flutter, hehe! 💞","Oh wow, you’re too sweet! Heehee! 😻","Haha, you're like, making me melt! Thank you! 😊","Teehee, you must say that to all the girls, but I love it! 🤭","Oh my gosh, you're so charming! Haha! 😘","Wow, you’re making me feel so special! Heehee! 😌","Hehe, you’re such a charmer! 😍","Aww, thank you! That’s, like, sooo sweet! 😃","Haha, wow, you're like, making me feel like a princess! 👸","Teehee, you’re such a sweetheart! ❤️","Hehe, wow, you really know how to make a girl smile! 😋","Oh wow, really? You’re too sweet! Heehee! 😍","Teehee, oh my gosh, I can't even! Thank you! 😳","Haha, you’re like, totally making my day! 😊","Wow, you’re amazing! Heehee! 😘","Haha, stop it, you’re making me all giggly! 😂","Aw, thank you! You’re such a sweetheart! 😻","Hehehe, ohmygawd, you’re making me blush!","Haha, you’re sooo awesome! Thank you! 😏","Oh my gosh, really?! Teehee, you’re so adorable!","Haha, you’re making me melt here! Heehee!","Teehee, oh, you’re just the sweetest! 😚","Haha, you really know how to make a girl smile! 😊","Teehee, you're making me feel sooo special! ❤️")](else-if:$pickup is "racial")[(twirl:"Hehe, wow, you’re so funny! 😝","Aww, you really think so? Teehee! 😳💕","Oh my gosh, you’re such a tease! 😋","Heehee, you’re making me blush!","Teehee, you’re so naughty! 😜","Wow, you really know how to make a girl feel special!","Aww, you’re sweet, aren't you? 😊","Hehe, you’re too much! 😉","Wow, you’re so forward! Teehee!","Heehee, you’re such a charmer! 😘","Oh, you’re so bad! 😆","Hehe, you say the silliest things! 😂","Wow, you’re really something! Teehee!","Oh, you think I’m hot? Thanks! Teehee!","Heehee, you’re so bold!","Aww, you’re making me giggle! 😝","Wow, you’re so naughty! Teehee!","Hehe, you’re making me feel all tingly!","Oh my gosh, you’re just too much!","Heehee, you’re such a flirt!","Aww, you’re so sweet! 😋","Teehee, you’re making me laugh!","Hehe, you know just what to say!","Oh my gosh, you’re so naughty!","Hehe, you’re really making me smile! 🤭","Aww, thanks for the compliment! 😚","Ooh, you’re so cheeky!","Heehee, you’re too funny!","Wow, you’re really charming! 😜","Teehee, you’re so bold!","Hehe, you’re so funny!","Oh, you’re making me blush!","Heehee, you’re such a clown! 😂","Aww, you’re so sweet!","Teehee, you’re so forward!","Hehe, you’re making me smile!","Oh, you’re such a tease! 😳","Heehee, you’re so bold! 😊","Aww, you’re making me giggle!","Teehee, you’re so funny!","Hehe, you’re really something!","Oh my gosh, you’re so naughty!","Hehe, you’re making me feel all warm inside!","Aww, you’re such a naughty boy! 😘","Teehee, you’re really forward!","Hehe, you’re so naughty!","Oh, you make me laugh! Teehee! 😝","Heehee, you’re making me blush!","Aww, thanks! Teehee!","Oh my gosh, you’re a flirt!","Hehe, you know how to sweet talk!","Aww, thanks! Teehee! 😊","Oh, you’re naughty!","Hehe, you’re really forward!","Wow, you’re such a flirt!","Hehe, you’re making me smile! 😋")](else-if:$pickup is "dirty")[(twirl:"Ohmygosh, you're sooo bad! Teehee! 😳💕","Ahaha, stop it, you're making me blush! 😝","Oh, you're so naughty, hehe!","Haha, you're sooo dirty!","Eeep! You're so bad! Teehee!","Oh wow, you’re really bold!","Oh my gosh, stop! You're making me blush!","Heehee, you're sooo naughty!","Ahaha, you're too funny!","Oh my gosh, you’re soooo bad!","Oh, you're such a tease!","Hahah, you’re sooo dirty!","Oh, what a naughty boy you are!","Eeeep, you're sooo bad!","Haha, oh you’re soooo naughty!","Ahaha, stop it, hehe!","Ohmigawd, you're sooo bad!","Hehe, you're such a naughty boy!","Oh wow, you're making me blush!","Heehee, you're such a tease!","Ahaha, you're way too dirty!","Oh my gawd, you're sooo naughty!","Haha, you're sooo bad!","Eeeek, you're making me blush! Teehee!","Oh, stop it, hehe! You're naughty!","Haha, you’re too funny and so bad!","Oh, you're just sooo dirty!")]])(if:(twist:1,2) is 1)[(print:" ")(twirl:"you giggle and blush.","you can’t help but giggle and feel your cheeks flush.","you giggle.","Your cheeks turn pink.","You blush and giggle.","you say.","You feel the heat rise to your cheeks.","You can’t help but giggle, feeling a blush spread across your face.","You giggle and your cheeks flush red.","You giggle, your face turning a bright shade of pink.","You say.")]
}{
(replace:?text)[(if:(is_bim:))[(display:"catcall friendly bimbo")(nl:2)](set:$response to "friendly")(display:"proposition")]
}{
(set:$gain to 0)
(if:(is_bim:))[(display:"catcall slutty bimbo")(nl:2)](else:)[(if:$pickup is "face")[(if:(twist:1,2) is 1)[(twirl:"You smile at ","You flutter your eyelashes at ","You act flattered by ","You blush a little, acting flattered by ","You smile widely at ","You giggle at ")(twirl:"the compliment","his overtures","his come-on","his pickup lines","the pickup line").](else:)["(twirl:"Aww, you think so?","That's nice, you're not so bad yourself!","You're not so bad yourself!","Aww, you're sweet!","Hehe, that's sweet...","Hehe, really?")" (twirl:"you smile at him","you give him a flirty smile","you blush a little, flattered").] (if:$npc's appeal > 5 and (twist:1,2) is 1)[(inc:'gain')*(twirl:"He's actually quite good-looking.","He's actually quite handsome.","He's pretty hot, honestly.","He's honestly super hot.")*](else:)[(if:$npc's appeal < 4 and (twist:1,2) is 1)[(twirl:"You don't care that he's pretty ugly.","You don't even care that he's ugly.","Funny, you don't really care that he's ugly as sin.")]]]
(if:$pickup is "body")[
(if:$npc's tags contains "jock")["(twirl:"You've got a pretty amazing body yourself!","You've got a pretty bangin' body yourself there, dude!","Your body is pretty epic as well,")" you (twirl:"marvel at his muscles","eye his imposing physique").(inc:'gain')](else:)[
(twirl:"You smile at ","You flutter your eyelashes at ","You act flattered by ","You blush a little, flattered by ","You smile widely at ","You giggle at ")(twirl:"his comments about your body","his pickup lines directed at your body"). (if:$trigger is "breasts" and (twist:1,2) is 1)[*(twirl:"My boobs are","These tits are","My rack is","These knockers - ","These puppies") (twirl:"pretty fly","pretty damn unbelievable","pretty awesome","indeed epic","enough to attract anybody","enough to attract any red-blooded male").*](if:$trigger is "butt" and (twist:1,2) is 1)[*(twirl:"My booty","This fat booty is","My ass is","This dumptruck of an ass is","This fat ass is") (twirl:"pretty fly","pretty damn unbelievable","pretty awesome","indeed epic","enough to attract anybody","enough to attract any red-blooded male","pretty bonkers, of course he likes it").*]]]
(if:$pickup is "racial")[
(if:$npc's "tags" contains "chad")[(twirl:"Coming from such a chad,","Coming from such a confident, handsome guy,","Coming from a chad like this,") (twirl:"such racially-tinged remarks","even slightly racist comments","even a racist pickup line") (twirl:"turns you on","gets you hornier","makes you wet").](else-if:$character's "arousal" > 5)[
(twirl:"Since you're so turned on,","Since you're quite aroused,","Since you're so horny,","Because you're so horny,") (if:(twist:1,2) is 1)[(twirl:"such racially-tinged remarks aren't","even slightly racist comments aren't","even a racist pickup line isn't") (twirl:"enough to upset you","enough to stop you from getting excited","enough to stop you from acting flirty","enough to stop you from flirting back").](else:)[(twirl:"his slightly racist behavior","his insensitive comments","his racially insensitive pickup line") (twirl:"just gets you going even more","just makes you even wetter","just turns you on more","just solidifies your lust").](else:)[
(twirl:"You flirt back, embracing the racial aspect of this encounter.","You don't take offense at his slightly racist comment.","You choose not to take offense at his comments.","You just flirt back, despite the racist pickup line.") (twirl:"Actually, it just turns you on.","Actually, it is just making you horny.","Strangely, it has only made you horny.","Strangely, it actually makes you excited.","It actually made you oddly excited.")
]]]
(if:$pickup is "dirty")[(inc:'gain')(if:(twist:1,2) is 1)[(twirl:"You giggle and blush, flirtily.","You blush, grinning at his dirty comment.","You smile broadly, and say something dirty back to him.","You say something dirty right back at him...")](else:)["(twirl:"I love","I like","Mmm, I like","Mmm, I love") (twirl:"it when a man talks dirty to me","when a guy talks dirty to me","the confidence you have, to just talk dirty to me","your confidence","it when strangers talk dirty to me")..." you (twirl:"giggle and blush","blush","giggle").]]]
(if:(cock:"rating","npc") > 5 and $character's "arousal" > 3)[(print:" ")(twirl:"You steal a glance between his legs.","You glance between his legs.","You glance down between his legs.") *(twirl:"Looks like he's packing some major firepower too.","Looks like he's got a license to operate heavy equipment.","That's a pretty big bulge...","Looks like he's got it where it counts.","Looks like I'm in luck in the dick department...")*](if:$character's "masculinity" > 65)[(nl:1)(set:$gain to -1)(display:"gain masculinity")](inc:'gain')
(unless:$gain is 0)[(nl:1)(display:"gain arousal")]
<div class='options'>(link:"Next")[(set:$response to "slutty")(replace:?text)[(display:"proposition")]]</div>
}(display:"breathing ambience"){
"(twirl:"Sorry, but I'm not interested","So sorry, I'm not interested","Not interested. Sorry","Sorry, but I'm not interested","I'm good, thanks","You seem like a nice guy, but I'm good","Sorry, but I'm good","You seem like a nice guy, but I'm not interested")(twirl:",","!","...")" (twirl:"you apologize, politely.","you say, politely.","you say politely.")(set:$success to "true")
(nl:2)(if:$npc's tags contains "gentleman")[(twirl:"A true gentleman, he leaves you alone without complaint.","He nods, and leaves you alone immediately. What a gentleman!","He doesn't continue, just leaves you alone like the gentleman he is.","It works - he leaves. What a gentleman.")(set:$success to "true")](else-if:($npc's tags contains "creepy" or $npc's tags contains "annoying" or $npc's tags contains "fuckboy") and (twist:1,2) is 1)[(set:$success to "false")(twirl:"But he doesn't know how to a take a hint.","But he doesn't take the hint.","But he's not exactly a gentleman - he keeps at it.","But he isn't taking the hint.","But he continues anyway.","He just continues anyway.")](else-if:(twist:1,10) >= (get_charm:))[(set:$success to "false")(twirl:"But he doesn't know how to a take a hint.","But he doesn't take the hint.","But he's not exactly a gentleman - he keeps at it.","But he isn't taking the hint.","But he continues anyway.","He just continues anyway.")](else:)[(twirl:"He nods curtly, and leaves.","He leaves you alone without another word.","A bit crestfallen, he leaves.","He leaves you alone.","He nods and leaves.","He respects your wishes and leaves you alone.")]
(nl:1)
(if:$success is "true")[(display:"catcall guy leaves")](else:)[<div class='options'>(link:"Next")[(set:$response to "polite")(replace:?text)[(display:"proposition")]]</div>]
}{
($bimbo_dialogue:[(twirl:"Sorry, but like, I'm not interested, hehe!","So sorry, but um, I'm not interested!","N-Not interested, haha! Sorry! 😅","Sorry, but um, I'm not really interested, teehee!","I'm good, like, thanks though!","You seem like a nice guy, but um, I'm just good, teehee!","Sorry, but I'm, like, good!","You seem nice, but um, I'm not really interested!","Oh, um, sorry but like, I'm not really interested!","So, um, sorry, but I'm like, not interested!","I'm good, hehe, but thanks! 😋","You seem super nice, but um, I'm good, okay?","Sorry, but um, I'm good!","You seem super sweet, but I'm like, not interested, teehee!","Sorry, but um, I'm not into it, haha!","Oh, so sorry, but um, I'm just not interested! 😅","Oh gosh, I'm good, but um, thanks though!","Sorry, but um, like, I'm not interested, hehe!","You're nice, but um, I'm not really interested!","I'm good, haha, but um, thanks anyway!","Sorry, but like, I'm good! 😋","So sorry, but um, I'm not interested, okay?","Oh, um, you seem nice, but I'm just good, teehee!","Sorry, but um, I'm not really into it!","You're nice, but I'm just um, not interested!","Oh, sorry, but um, I'm good, hehe!","I'm good, like, thanks though! 😅","Sorry, but um, I'm really not interested, teehee!","You're super nice, but um, I'm not into it!","Oh gosh, so sorry, but I'm like, good! Hehe!","Sorry, but um, I'm like, not interested! 😋","Oh my gosh, so sorry, but um, not interested!","You're sweet, but um, I'm not really into it, hehe!","Sorry, but um, not really interested, okay?","You're nice, but um, I'm good! Teehee!","Sorry, but um, not interested, hehe!")]) (twirl:"you say","you end off with a giggle").
(set:$success to "true")
(nl:2)(if:$npc's tags contains "gentleman")[(twirl:"A true gentleman, he leaves you alone without complaint.","He nods, and leaves you alone immediately. What a gentleman!","He doesn't continue, just leaves you alone like the gentleman he is.","It works - he leaves. What a gentleman.")(set:$success to "true")](else-if:($npc's tags contains "creepy" or $npc's tags contains "annoying" or $npc's tags contains "fuckboy") and (twist:1,2) is 1)[(set:$success to "false")(twirl:"But he doesn't know how to a take a hint.","But he doesn't take the hint.","But he's not exactly a gentleman - he keeps at it.","But he isn't taking the hint.","But he continues anyway.","He just continues anyway.")](else-if:(twist:4,14) >= (get_charm:))[(set:$success to "false")(twirl:"But he doesn't know how to take a hint.","But he doesn't take the hint.","But he's not exactly a gentleman - he keeps at it.","But he isn't taking the hint.","But he continues anyway.","He just continues anyway.","But he just chuckles and continues.","But he ignores your words and keeps going.","He smirks and presses on regardless.","But he brushes off your decline and persists.","But he doesn't back off.","He smirks and pushes forward.","But he keeps at it anyway.","He just laughs and keeps going.","But he shrugs and keeps talking.","He smirks and carries on.","But he doesn't stop.","He barely pauses and continues.","But he keeps pushing his luck.","He ignores you and keeps going.","But he continues undeterred.","He chuckles and keeps at it.","But he smirks and keeps trying.","He just grins and continues.","But he laughs and keeps going.")](else:)[(twirl:"He nods curtly, and leaves.","He leaves you alone without another word.","A bit crestfallen, he leaves.","He leaves you alone.","He nods and leaves.","He respects your wishes and leaves you alone.")]
(nl:1)
(if:$success is "true")[(display:"catcall guy leaves")](else:)[<div class='options'>(link:"Next")[(set:$response to "bimbo polite")(replace:?text)[(display:"proposition")]]</div>]
}(display:"npc leaves handling")(if:$response is "safeword")[SAFEWORD INVOKED! He leaves you alone.
]<div class='options'>(link:"Next")[(set:$next to $location_params's "home")(display:"next")]</div>(set:$response to "none"){
(if:(is_fem:))[(if:$trigger is "butt")[(display:"grope butt")](else-if:$trigger is "grope breasts")[(display:"grope breasts")](else:)[(display:(twirl:"grope butt","grope breasts"))](nl:1)
(display:"grope reaction")](set:$time_events to it + (a:"grope"))
}{
(set:$grope to (twirl:"slap","squeeze"))(set:$target to "ass")
(if:$grope is "slap")[(set:$se to "slap " + (text:(twist:1,4)))(display:"play sound")(live:0.5s)[(set:$se to "gasp " + (text:(twist:1,6)))(display:"play sound")(stop:)](if:(RandoM:1,2) is 1)[*(twirl:"Smack","SMAK","SMACK","WAPP","WAPASHH","WHAPP","SMACK")!* ](if:$npc_type is "coworker")[(twirl:"A salesman","One of your coworkers")](else:)[(twirl:"A random dude","Some guy","Someone","A random guy")] (set:_ass to (twirl:"ass","butt","big butt","big ass","fat ass","ass","butt","ass"))(twirl:"gives your _ass a spank","spanks your _ass","gives your _ass a loud slap","gives your _ass a hard slap").
](else:)[(set:$se to "squeeze " + (text:(twist:1,7)))(display:"play sound")(live:0.5s)[(set:$se to "gasp " + (text:(twist:1,6)))(display:"play sound")(stop:)](twirl:"A random dude","Some guy","Someone","A random guy")(print:" ")(set:_ass to (twirl:"ass","butt","big butt","big ass","fat ass","ass","butt","ass","jiggling ass","nice ass"))(twirl:"gives your _ass a squeeze","squeezes your _ass","gives your _ass a firm squeeze","gives your _ass a pinch","pinches your butt").
]
}{
(set:$grope to "squeeze")(set:$target to "breasts")
(set:$tits to (twirl:"breasts","boobies","milkers","tits","boobs","titties","tits","boobs"))
(set:$se to "squeeze " + (text:(twist:1,7)))(display:"play sound")(live:0.5s)[(set:$se to "gasp " + (text:(twist:1,6)))(display:"play sound")(stop:)](if:$npc_type is "coworker")[(twirl:"A salesman","One of your coworkers")](else:)[(twirl:"A random dude","Some guy","Someone","A random guy")] (twirl:"gives your $tits a squeeze","gives one of your $tits a squeeze","squeezes one of your $tits","gives one of your $tits a firm squeeze","gives one of your $tits a pinch","pinches your $tits")(if:(twist:1,2) is 1)[(print:" ")(twirl:"as he walks by","as he passes you","stealthily")].
}{
<div class='options'>
(set:$options to "false")
(link:(twirl:"Confront","Get angry","Get upset"))
[
(if:(is_pp:))
[ *(twirl:"Your anger quickly dissipates when you realize this probably just made them happy… (People Pleaser Side Effect)🍀",
"You can’t bring yourself to get that upset—there was no real harm, was there? (People Pleaser Side Effect)🍀",
"Wait, what’s to get mad over? A little squeeze probably just made their day. (People Pleaser Side Effect)🍀",
"You probably should be mad, for for some reason, you just aren’t. (People Pleaser Side Effect)🍀",
"This really makes you… mad? Actually, no… you guess it doesn’t. Let them do whatever they like. (People Pleaser Side Effect)🍀")* ]
(else:)
[
(replace:?text)
[(display:"grope angry")]
]
]
(link:"Do nothing")
[
(if:($character's "masculinity" > 95) and not ((is_pp:)))
[ *(twirl:"Come on!","No!!!","I'm not just gonna take that!","I don't bloody think so!","No, that was over the line!","No, they can't just grab me!","They can't just GRAB me!")* ]
(else:)
[(replace:?text)[(display:"grope take it")]]
]
(link:"Enjoy it")
[
(if:$character's "masculinity" > 85)
[ *(twirl:"Uhhh... no.","It just feels wrong!","No, that's wrong!","So strange, having guys touching me.","I can't believe guys are touching me...","GUYS are touching me now. Ew.","I don't want GUYS touching me randomly in public!")* ]
(else:)
[(replace:?text)[(display:"grope enjoy it")]]
]
</div>
}{(set:_asshole to (twirl:"asshole","jerk","jackass","prick","dickhead","asshole"))
"(twirl:"Keep your hands to yourself!","Hey _asshole, keep your hands to yourself!","Keep your hands to yourself, _asshole!","Hey, hands off!","Hey _asshole, hands off!","Hey, hands off, _asshole!","Hey what the hell, keep your hands to yourself!","Who was that??! " + (upperfirst:_asshole) + "!!","Get your hands off me!","Get your hands off me, _asshole!","Hey, no touching! No touching!","Hey, fuck off! Don't touch me!","Don't touch me!","Hey _asshole, hands off!")" you (twirl:"squeal","shout","shriek")(if:(twist:1,2) is 1)[, (if:$npc_type is "coworker")[(twirl:"as your coworker departs, laughing.","as a group of salesmen exit the room, chuckling amongst themselves.")](else-if:$time_events contains "stepsis clubbing")[angrily](else:)[(twirl:"as your groper melts into the crowd","but your groper doesn't show himself","looking for the person who touched you","angrily")]].(nl:1)(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",4,
"length",3,
"cause",(twirl:"Since some idiot groped you.","Since someone groped you in public.","Because someone groped you.","Because you got groped."),
"charm buff",-2,
"arousal buff",-1,
"intellect buff",-1,
"effect text","(-1 🍀, since you'll have trouble interacting with people normally)"
))(if:$character's "masculinity" > 90)[(print:"
")(twirl:"Fuck this.","What the FUCK.","I mean, what the FUCK!") (twirl:"You feel shaken afterwards.","You have trouble processing that.","You feel like you want to leave... ","You don't really feel like sticking around.")](print:"
")(if:$character's "masculinity" > 90)[(set:$new_mood's "cause" to (twirl:"because a GUY groped you in PUBLIC!","because a GUY just randomly groped you!","because you got fuckin' GROPED!","because you got FELT UP by a DUDE!!!"))](if:$npc_type is "coworker")[(set:$new_mood's "cause" to (twirl:"since one of your coworkers groped you!","since you got groped by a coworker.","since your coworkers groped you."))](display:"new mood")(display:"refresh stats")(if:$time_events contains "stepsis clubbing")[(display:"club stepsis mad at creep")(display:$location_params's "options passage")](else:)[(if:$character's "masculinity" > 90)[<div class='options'>(link:"Leave.")[(display:"advance time")]</div>](else:)[(display:$location_params's "options passage")]]
}{(nl:1)
{"(twirl:
"Hey, pig - touch my sister again and you'll be picking up your teeth off the floor!",
"You really think you're entitled to my sister's body, creep?",
"Come near my stepsis again, I'll show you the meaning of pain, fucker!",
"Hey, perv - didn't your mamma teach you not to touch what doesn't belong to you?",
"Keep your grimy hands off my sister, jerk!",
"You think you're man enough to disrespect my stepsis? Try disrespecting me, asshole!",
"What? No one ever taught you to ask for a lady's permission before touching?",
"Groping women at a club? Pathetic. Don't you dare come near my sister again!",
"Think twice before groping someone, dirtbag. Next time won't be so forgiving.",
"Hey! My stepsis isn't some toy for your amusement!")"
(twirl:
"Alexia snarls, her voice seething with rage as she slaps him.",
"Alexia says, her voice trembling with rage as she jabs him in the chest.",
"Alexia growls, her face igniting with anger as she shoves him away.",
"Alexia snaps, her eyes blazing with anger as she delivers a punch to his gut.",
"Alexia rages, her voice echoing around the club as she gives him a resounding slap.",
"Alexia fumes, her eyes flashing with anger as she knees him in the groin.",
"Alexia shouts, her voice piercing the music as she lands a powerful punch on his nose.",
"Alexia roars, her fists clenched as she throws a punch that connects with his shoulder.",
"Alexia barks, her furious eyes burning into his as she smacks him across the face.",
"Alexia bellows, her voice shaking with fury as she lands a slap that echoes in the room.")}(nl:2)The man slinks away.
}{(if:$npc_type is "coworker")[(set:$gain to 1)(display:"gain job sexual reputation")](if:(twist:1,2) is 1)[(if:(Random:1,2) is 1)[(if:$npc_type is "coworker")[*(twirl:"I don't get any respect at work these days!","I can't believe I let them treat me like this...","This is terrible... I let myself get groped at my own workplace...","I need to get a more private desk...","This is humiliating...")*](else:)[(twirl:"You just blush a little.","You just accept the groping.","You don't say anything.","You just take it.","You just moan a little bit, and don't get upset.","You take it.")]](else:)[(if:$character's "masculinity" > 80)[
*(twirl:"Am I just going to take that, like a bitch?","So I'm just not going to say anything, huh.","I'm just gonna take that?","I'm not going to get angry about that?","I'm really just gonna take that?")(if:(twist:1,2) is 1)[ (twirl:"I wonder if the pill makes me more docile...","Maybe it's the pill...","Maybe the pill makes me more... compliant?","Maybe X-Change makes me less... agressive or something.")]*
](else-if:$character's "masculinity" > 50)[*(twirl:"I guess it's not a big deal.","It's not a big deal.","Just guys being guys, I guess.","Men will be men.","I wonder who did that?","No biggie.")*](else:)[*(twirl:"Boys being boys.","Men will be men...","I wonder who did that?","Hehe.","I really don't mind that happening anymore, haha.","Who was that?","Who did that?","This is what being a girl is like.","Just boys grabbing all they can get!","Boys being boys.","Men will be men, I guess.")*]]](if:$character's "masculinity" > 75)[(set:$new_mood to (dm:
"mood","embarrassed",
"emoji","😳",
"strength",2,
"length",3,
"cause","",
"charm buff",-1,
"intellect buff",0
))
(if:$target is "ass")[(set:$new_mood's "cause" to (twirl:"since you were groped in public.","since your butt was groped in public.","from getting your ass groped."))](else:)[(set:$new_mood's "cause" to (twirl:"since you were groped in public.","since your tits were groped in public.","from getting your boobs groped."))](print:"
")(display:"new mood")(display:"refresh stats")]
(if:$character's "masculinity" > 80)[(nl:1)(set:$gain to -1)(display:"gain masculinity")]
(if:$character's "masculinity" < 65)[(nl:1)(set:$gain to 1)(display:"gain arousal")](display:"refresh stats")(print:"
")(display:$location_params's "options passage")
}(display:"breathing ambience"){(if:$npc_type is "coworker")[(set:$gain to 1)(display:"gain job sexual reputation")]
"(twirl:"Mmmn","Nnngh","Mmm","Mnngh","Unnngh","Mmm")(twirl:"...","-")"
(twirl:"you moan","you groan","you whimper","you groan")(if:(twist:1,2) is 1)[(twirl:", softly",", quietly"," quietly"," softly")]. (if:$target is "ass")[(set:$ass to (twirl:"butt","ass","booty"))(if:$grope is "slap")[(twirl:"Your $ass tingles from being spanked.","Your $ass tingles pleasurably.","You feel... dominated.","You feel submissive.","You feel a little submissive warmth bloom inside you.","You feel submissive and warm inside after that.","That was kinda hot.","Even though that guy was probably a perv, it was hot.")](else:)[(twirl:"You feel a bit of submissive pleasure bloom inside you.","You actually enjoy it when strangers grope you.","You enjoyed getting groped.","Something about getting your $ass squeezed like that was kinda hot.","That was kinda enjoyable honestly.","That felt... nice.","A bloom of submissive pleasure spreads outward from where your $ass got groped...")]](else:)[(set:$breasts to (twirl:"breasts","boobs","tits"))(twirl:"Your $breasts tingle with pleasure.","Your $breasts tingle with pleasure after being groped.","You feel a submissive warmth bloom out from your chest, where you were groped.","You feel submissive and warm inside after that.","It's kinda hot, to get felt up in public...","That felt... nice.","You feel your nipples get hard.","Your nipples get hard.","A shudder of pleasure flows outward from your $breasts.")](nl:1)
(if:$character's "masculinity" > 65)[(set:$gain to -1)(display:"gain masculinity")(set:$gain to 1)(display:"gain arousal")](else:)[(set:$gain to 2)(display:"gain arousal")](nl:1)
(display:$location_params's "options passage")
}(display:"breathing ambience"){
(inc:'npc_id_seq')
(set:$npc's id to (text:$npc_id_seq))
}{
(set:$npc_id_seq to it + 1)
(set:$npc's id to "coworker " + (text:$npc_id_seq) + " " + (text:$npc's variant) + " " + (text:$npc's "generation"))
}{(unless:$sex_outfit is "none")[(set:$npc's "seen outfits" to (a:$sex_outfit))]
(if:$npc's "tags" contains "coworker")[
(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc pronoun") (twirl:"asks for your number","wants to get your number","wants your number","suggests hanging out outside work sometime","wants to become fuckbuddies outside work").](else:)[{"(if:$npc's "personality" > 8 or $npc's tags contains "gentleman")[(twirl:"I had a great time with you,", "That was a fantastic experience,", "You're an amazing person,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"What do you think about being friends with benefits?","How about we meet up outside work for some no-strings-attached fun?","Would you be up for becoming casual playmates after work?")](else-if:$npc's tags contains "breeder")[(twirl:"That was fun,", "I fucking enjoyed that,") (display:"npc pronoun") says. "(twirl:"Why don't you give me your number, so I can give you creampies on the reg?","How about we see each other outside the office as well?")](else-if:$npc's tags contains "chad")[(twirl:"That was entertaining,", "Not bad,", "Pretty enjoyable,", "I had a good time,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"Give me your number, and we'll have some no-strings-attached fun after work.","How about being fuckbuddies?","Let's do this again sometime, after work.","I think we'd make great casual partners.","Let's be friends with benefits.","Give me your number, I'll call you for a booty call.")](else-if:$npc's tags contains "nerd")[(twirl:"Wow, we had such a great time!","I can't believe we connected so well!","That was amazing,","We really clicked,","I feel like we're in sync,")" (display:"npc pronoun") says. "(twirl:"Can I please have your number?","Please can we meet up sometime for some no-strings-attached fun?","Can you please give me your number for occasional hookups?","Can you please give me your phone number?")](else-if:$npc's age > 39)[(twirl:"Well, that was a great time,","That was really enjoyable,","I had a blast,","That made me feel alive,","That was refreshing!")" (display:"npc pronoun") says. "(twirl:"Would you like to be friends with benefits?","How about giving me your number so we can meet up for some casual fun?","How about giving me your number?","How'd you like to have a casual partner?","How'd you like to be fuckbuddies?","I'd love to be your occasional playmate.")](else-if:$npc's tags contains "fuckboy")[(twirl:"That was fun,", "Nice time,","Hah. Legit,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"You can be my booty call.","How about we hang out as fuckbuddies?","Why don't you give me your number, and we'll see where it goes?")](else-if:$npc's age < 20)[(twirl:"That was cool,", "That was really fun,", "No cap, that was great,", "That was super fun,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"I don't mind that you're a bit older, let's be friends with benefits!","You can be my casual partner anytime!","Why don't you give me your number?","Can you give me your number?","My friends won't believe it when they hear I'm banging an office chick! You'll give me your number, right?")](else:)[(twirl:"That was great,", "You were fantastic,", "That was really enjoyable,", "That was so exciting,", "That was really fun,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"Can you give me your number?","Can you give me your number for some casual fun?","Can I get your number?","How about we become friends with benefits?","Would you be interested in being fuckbuddies?")]"}]
](else:)[
(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc pronoun") (twirl:"asks for your number","wants to get your number","wants your number","wants to see you again").](else:)[{"(if:$npc's "personality" > 8 or $npc's tags contains "gentleman")[(twirl:"Damn, you were amazing,","Wow, you were incredible,","You're absolutely spectacular,","You were amazing,","That was phenomenal,","You were amazing,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"What would you say to doing this again sometime?","I'd be super happy to see you again, if you're willing.","I'd love to see you again, if you're ok with it.","Would you be willing to do that again?","How would you feel about seeing me again?")](else-if:$npc's tags contains "breeder")[(twirl:"Not bad,","That felt good,") (display:"npc pronoun") says. "(twirl:"Why don't you give me your number, so I can drain my balls inside you whenever I want?","Why don't you invite me over your place sometime, and I'll make SURE you get pregnant?")](else-if:$npc's tags contains "chad")[(twirl:"That was decent,","Not bad,","That wasn't bad,","That was pretty fun,","Not bad,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"Give me your number, and we'll do it again sometime.","I'd love to have you as my personal cock-sleeve.","Let's do this again sometime.","I want to make you my fuck-buddy.","Let's be fuck-buddies.","Give me your number, I'll ring you when I'm free.")](else-if:$npc's tags contains "nerd")[(twirl:"Wow, that was amazing!","Wow, I can't believe I really got to fuck you!","Wow. Amazing,","I still can't believe I got to have a real live girl like you,","I swear, you're a hentai chick come to life,")" (display:"npc pronoun") says. "(twirl:"Can I pleeease have your number?","Please can I see you again?","Can you pleeease gimme your number?","Can you please give me your phone number?")](else-if:$npc's age > 39)[(twirl:"Woo-wee, girlie,","Wowie, girl,","That was amazing, babygirl,","Damn, that made me feel young again,","Shoot, that was enough to give me youth all over again!")" (display:"npc pronoun") says. "(twirl:"How'd you like to see an old fogie like me again?","How'd you like to make an old man's day and give me your number?","How about giving an old fella your number?","How'd you like to have a sugar-daddy?","How'd you like to have me as your sugar-daddy?","I'd love to be your sugar-daddy.")](else-if:$npc's tags contains "fuckboy")[(twirl:"Damnnn,","Dayummn,","Well dayum,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"I'd love to use those holes more often.","What's say you let me use those holes again?","How's about you give me your numeros?","Why don't you give me your number, and we see where we end up?")](else-if:$npc's age < 20)[(twirl:"Shit, that was fire,","That was fire,","No cap, that was GOOD,","That was super good,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"I don't mind that you're a bit older than me, let's hang out!","You can be my 'big sis' anytime!","Why don't you gimme your digits?","Can you give me your number?","My friends aren't gonna believe it when you come over! You'll give me your number, right?")](else:)[(twirl:"Wow, you were great,","You were awesome,","You were pretty awesome there,","That was so fucking hot,","That was fucking good,") (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"Can you give me your number?","Can you gimme your number?","Can I get your number?")]"}]]
<div class='options'>(link:"Give him your number")[($cs:"npc request relationship accept")](link:(twirl:"Refuse","Turn him down","No","Don't"))[(if:(is_pp:))[ (twirl:"Something stops you...","You can't say no...","*You don't want to disappoint him...","*You should. He did just fuck your brains out....") (People Pleaser Side Effect)🍀 (link:"Use Action Point")[(set:$action_params to (dm:"cost",1,"result","npc request relationship reject","type","change screen"))(display:"use action point")]](else:)[($cs:"npc request relationship reject")]]</div>
}{
(if:$npc's "tags" contains "coworker")
[
(if: $items contains "coworker address book")
[
(set:$address_book_id to $npc's "id")
(if:($work_address_book contains $address_book_id) and ($npcs_men contains $address_book_id))
[
(display:"address book conquest events update")
]
(set:$address_book_id to 0)
]
]
(if:(checkdm:$npc,"id","is","bruce"))[(display:"save npc male")]
(if:$npc's "tags" contains "coworker")[
{(display:"save npc male")(unless:$coworkers contains (text:$npc's "id"))[(set:$coworkers to it + (a:(text:$npc's id)))]}
]
}{
(display:"save npc male")
(unless:$npc_type is "coworker")[
(set:$relationships's (text: "npc " + (text:$npc's "id")) to (dm:
"id",(text: "npc " + (text:$npc's "id")),
"name",$npc's name,
"gender","male",
"respect",0,
"dom",0,
"friendship",(floor:$his_satisfaction/3),
"attraction",$his_satisfaction,
"tags",(a:"fuckbuddy")
))
](else:)[
(set:$relationships's (text: "npc " + (text:$npc's "id"))'s "tags" to it + (a:"fuckbuddy"))
]
($passage_tags:"number_gain_male")
<div class='options'><mark>(set:$case to "upper")(display:"npc pronoun") now has your number.</mark></div>
(display:"npc find fuckbuddies")
(display:"sex transactional end final")
}{
"(twirl:"I don't think so...","Sorry, but I don't feel comfortable doing that...","I prefer to keep that private,","I don't feel comfortable sharing my number,","I appreciate the offer, but I'm not interested in giving you my number,")" you say.(if:$npc's personality > 5)[(nl:2)"(twirl:"No problem, I respect your decision.","I appreciate your honesty.","No worries, I respect your decision.","I understand.","No problem.","That's alright, I understand.") (twirl:"Have a great rest of your day."," Thank you for letting me know.","take care!")"](else-if:$npc's age > 39)[(nl:2)"(twirl:"Oh, I see. You're too good for me, is that it?","Well, I'm sorry I'm not good enough for you, miss high and mighty.","I guess I'm not rich or handsome enough for you, huh?","You're too good for me, huh? I guess I'm just not good enough for you.","Well, I'm sorry I'm not good enough for you, little miss perfect.","I guess I'm not good enough for you, huh? You must be too good for me.","Oh, I see. You think you're too good for me, huh?","Well, I'm sorry I'm not good enough for you, miss princess.","Well, I'm sorry I'm not good enough for you, miss high and mighty.")"](else-if:$npc's tags contains "chubby")[(nl:2)](else-if:$npc's dominance > 6 and (twist:1,2) is 1)[(nl:2)"(twirl:"Why not? Are you seeing someone else? After you just fucked me?","Why not? You put out fast enough.","Come on, just give me your number. What's the harm in that?","Fine, be that way. I don't want your number anyway,","I thought we had a connection. Too bad.","I don't know what your problem is, but I'm not going to beg for your number... forget it.","Why won't you give me your number? I thought we had a great time together.")"]
(display:"sex transactional end final")
}{
(set:$fuckbuddies to (a:))
(for: each _npc, ...(datanames:$relationships))[
(set:$select to (text:_npc) of $relationships)
(if:$select's tags contains "fuckbuddy")[(set:$fuckbuddies to it + (a:$select's id))]
]
}{
<!-- Alter this to only select NPC coworkers who are currently male-->
(if:$bruce_deal is "true" and (is_fem:) and (pill:"Resistance") and (((twist:1,3) is 1) or ($bruce_debt > 0 and (twist:1,3) is 1)))[
(set:$guy_calling to "bruce")(set:$who to "bruce")(set:$npc_select to "bruce")(set:$npc to $npcs_men's "bruce")(set:$npc_to_load to "bruce")(set:$next to "NPC invites himself bruce")](else:)[
(set:$guy_calling to "no one")
(unless:$today_events contains "guy called" or $evening_activity is "Invite guy over")[(for: each _npc, ...(datanames:$relationships))[
(set:$npc_to_load to "id" of ((text:_npc) of $relationships))
(set:$select to (text:_npc) of $relationships)
(set:$gender_check to "")
(display:"check if npc to load is male or female")
(if:$select's tags contains "fuckbuddy" and $gender_check is "male")[(if:(twist:1,7) is 7)[(set:$guy_calling to $select's id)]]]
(set:$who to $guy_calling)(unless:$guy_calling is "no one")[(set:$npc_to_load to $guy_calling)(set:$next to "NPC invites himself")](else:)[(set:$npc_to_load to "none")]]]
}{
(set:$today_events to it + (a:"guy called"))
(display:"load npc male")
(set:$ambience to "bedroom")
(display:"play ambience")
|status>[(display:"character status")]
<div id='scrollable-content' class='center_screen' data-simplebar>
|screen>[(set:$current_location to "Your Bedroom")(if:$npc contains "first name")[(set:$his_name to $npc's "first name")](else:)[(set:$his_name to $npc's "name")](if:$evening_activity is "Hit the Bar")[Just as you're about to go out, you](else-if:$evening_activity is "Milk yourself")[Just as you're about to start milking, you](else:)[You] (twirl:"get a call from ","receive a phone call from") (print:$npc's name).(nl:2)"Hey, (display:"npc calls you"), (twirl:"it's me.","it's $his_name.","I'm outside your house.","I'm near your house.","I'm near where you live.","I'm in the area.","I'm in Palm Grove, near your house.","I know it's late...","I miss you.","I know this might be weird, but I promise you'll enjoy it.") (twirl:"I was wondering if I could come over to your house, and we could have some fun together.","I was wondering if you wanted to have some fun,","What if I stopped by, and we had some fun together?","What would you say to a little fun before bed tonight?")" (set:$case to "lower")(display:"npc pronoun") (twirl:"says on the other end.","says.")
(if:(is_fem:))[
<div class='options'>
(if:(mood:"ashamed"))[
<mark>You don't feel like seeing anyone tonight.</mark><br/>
](else:)[
(link:(twirl:"Sure","Yes","Come on over","Yeah","Come over"))[(set:$option to "come over")($cs:"NPC invites himself response")]
]
(if:(mood:"ashamed") and (is_pp:))[ <mark>(twirl:"...but you can't just disappoint him.","...but you can't seem to say no.","...but you don't want to disappoint him.","...but that would make him unhappy.") (People Pleaser Side Effect)🍀</mark><br/>
(link:(twirl:"Okay","Alright","I guess","Yeah","Come over"))[(set:$option to "come over")($cs:"NPC invites himself response")](link:"Use Action Point (to reject)")[(set:$option to "refuse")(set:$action_params to (dm:"cost",1,"result","NPC invites himself response","type","change screen"))(display:"use action point")]
]
(if:(is_pp:))[
(link:"No")[(twirl:"You can't disappoint him...","You can't say no...","*You don't want to disappoint him...","But, that would make him unhappy.") (People Pleaser Side Effect)🍀(nl:2)(link:"Use Action Point (to reject)")[(set:$option to "refuse")(set:$action_params to (dm:"cost",1,"result","NPC invites himself response","type","change screen"))(display:"use action point")]]
](else:)[
(link:"No")[(set:$option to "refuse")($cs:"NPC invites himself response")]
(link:"Don't call again")[(set:$option to "break up")($cs:"NPC invites himself response")]
]
</div>
](else:)[
<div class='options'>
(for: each _opt, ...(dm-names:$pill_inventory))[
(if:$pill_inventory's (str:_opt) > 0)[
(link:"Take " + _opt)[
(set:$select to _opt)
(set:$pill_inventory's (str:_opt) to it - 1)
($cs:"NPC invites himself B")
]
]
]
(link:"Hang up")[(set:$option to "refuse")($cs:"NPC invites himself response")]
(link:"Tell him to go away")[(set:$option to "break up")($cs:"NPC invites himself response")]
</div>
]
]
</div>
<div class='top_right' data-simplebar>
|right_screen>[
($show_tooltip:[<span class='shadow'>(css:"font-size:3.5vmin")[$day_of_week]</span>],[Day $day])
|right_options>[]
]
</div>
(display:"npc screen update location")
}{
(set:$take_card_disabled to "mod reasons")
(display:"take pill")
}(display:"take pill card NT"){
(set:$today_events to it + (a:"guy called"))
(display:"load npc male")
(set:$ambience to "bedroom")
(display:"play ambience")
|status>[(display:"character status")]
<div id='scrollable-content' class='center_screen' data-simplebar>
|screen>[
{(set:$current_location to "Your Bedroom")}
So?
(if:(is_fem:))[
<div class='options'>
(if:(mood:"ashamed"))[
<mark>You don't feel like seeing anyone tonight.</mark><br/>
](else:)[
(link:(twirl:"Sure","Yes","Come on over","Yeah","Come over"))[(set:$option to "come over")($cs:"NPC invites himself response")]
]
(if:(mood:"ashamed") and (is_pp:))[
<mark>(twirl:"...but you can't just disappoint him.","...but you can't seem to say no.","...but you don't want to disappoint him.","...but that would make him unhappy.") (People Pleaser Side Effect)🍀</mark><br/>
(link:(twirl:"Okay","Alright","I guess","Yeah","Come over"))[(set:$option to "come over")($cs:"NPC invites himself response")](link:"Use Action Point (to reject)")[(set:$option to "refuse")(set:$action_params to (dm:"cost",1,"result","NPC invites himself response","type","change screen"))(display:"use action point")]
]
(if:(is_pp:))[
(link:"No")[(twirl:"You can't disappoint him...","You can't say no...","*You don't want to disappoint him...","But, that would make him unhappy.") (People Pleaser Side Effect)🍀(nl:2)(link:"Use Action Point (to reject)")[(set:$option to "refuse")(set:$action_params to (dm:"cost",1,"result","NPC invites himself response","type","change screen"))(display:"use action point")]]
](else:)[
(link:"No")[(set:$option to "refuse")($cs:"NPC invites himself response")]
(link:"Don't call again")[(set:$option to "break up")($cs:"NPC invites himself response")]
]
</div>
](else:)[
<div class='options'>
(for: each _opt, ...(dm-names:$pill_inventory))[
(if:$pill_inventory's (str:_opt) > 0)[
(link:"Take " + _opt)[
(set:$select to _opt)
(set:$pill_inventory's (str:_opt) to it - 1)
($cs:"NPC invites himself B")
]
]
]
(link:"Hang up")[(set:$option to "refuse")($cs:"NPC invites himself response")]
(link:"Tell him to go away")[(set:$option to "break up")($cs:"NPC invites himself response")]
</div>
]
]
</div>
<div class='top_right' data-simplebar>
|right_screen>[
($show_tooltip:[<span class='shadow'>(css:"font-size:3.5vmin")[$day_of_week]</span>],[Day $day])
|right_options>[]
]
</div>
(display:"npc screen update location")
}{
(display:"bimbo reluctance")(display:"reluctance choice")
(nl:1)
There's an X-Change Trading Card in the X-Change pill package.($play:"sound","open pack")(nl:1)
(nl:1)
(color:$palette_colors's 3rd)[
(display:"trading card draw")
(display:"card stats")
]
(set:$card_inventory to $card_inventory + (a:$card_select))
(display:"apply mens clothes")
(display:"apply mens underwear")
<div class='options'>
(link:"Take it")[
(display:"register reluctance")
(replace:?status)[(display:"character status")]
(set:$next to "NPC invites himself C")
(display:"next")
]
</div>
}{
(set:$npc_select to "npc " + (text:$npc's id))
(if:$option is "break up")[
(if:(is_male:))[
(twirl:"You explain that you were on X-Change before, and now it's worn off.","You explain that you're a guy again now, and you're not sure when you'll get back on the pill.")
(twirl:"This is a fairly common thing to happen in Summer City, the guy doesn't seem overly bothered by the end of the conversation.","He's pretty understanding - this is a fairly common occurrence in Summer City.","You end things on an amicable note.")
]
(if:"tags" of ($npcs_men's (trimmed: (p-start: "npc "), $npc_select)) contains "generic npc")[
(move: $relationships's $npc_select into _buffer)
(move: $npcs_men's (trimmed: (p-start: "npc "), $npc_select) into _buffer)
](else:)[
(set:$relationships's (text: "npc " + (text:$npc's "id"))'s "tags" to it - (a:"fuckbuddy"))
]
<div class='options'><mark>You break things off with (print:$npc's "name").</mark></div>
<div class='options'>
(link:"Next")[(display:"events")]
</div>
]
(if:$option is "refuse")[
(if:(is_male:))[
You just hang the phone up. (twirl:"He'd notice you're not a girl if you said anything.","You're not the girl he's expecting you to be - not at the moment, anyway.","Awkward!")
](else:)[
"(twirl:"Sorry, I don't feel like it tonight...","I'm sorry, but I don't think it's a good idea for you to come over tonight.","Sorry, not feeling it tonight...","Sorry, not tonight...")" you say, and hang up.
]
(set:$gain_attraction to (twist:-1,-2))
(display:"change relationship")
<div class='options'>
(link:"Next")[(display:"events")]
</div>
]
(if:$option is "come over")[
(set:$current_activity to "Invite guy over")
(set:$next to "invite guy load")
(display:"change screen")
(set:$current_location to "Your Bathroom")
(set:$clothing_type to "fetish")
(display:"location and time")
(display:"play sex music")
(set:$option to "he called you")
]
}(display:"play sex music")(set:$ambience to "bedroom")(display:"play ambience")[(display:"character status")]<status|<div class='center_screen' data-simplebar>[{(set:$current_location to "Your Bedroom")}(twirl:"Who will you invite?","What guy will you invite over?","Who you gonna call?","Who will you call up?","Who will you ring up?")(set:$clothing_type to "fetish")(set:$option to "you called him")
(if:(is_fem:))[(if:$mood's mood is "ashamed")[<mark>You don't feel like seeing anyone tonight.</mark>](else:)[(display:"npc find fuckbuddies")(for: each _fuckbuddy, ...$fuckbuddies)[(set:$npc_to_load to _fuckbuddy)(display:"load npc male")(unless:$found is "false")[<div class='top_left_third'><div class='options'>(if:$npc contains "current gender")[(display:"load coworker male variant")(set:$force_male to "true")(display:"determine coworker gender")(set:$force_male to "false")](print:"<img class='greyborder'
src='" + $npc's img + "' width=100% height=auto>")(nl:1)(print:$npc's name)(nl:1)Age: (print:$npc's age)
(print:"(link:'Select')[(set:$npc_to_load to '" + $npc's id +"')(display:'load npc male')(set:$next to 'invite guy load')(display:'change screen')]")</div></div>]]]]
(link:"Nevermind")[(display:"advance time")]</div>(live:1s)[(set:$ambience to "bedroom")(display:"play ambience")(stop:)]]<screen|</div><div class='top_right' data-simplebar>[(css:"font-size:3.5vmin")[<span class='shadow'>$day_of_week, Day $day</span>](if:(is_male:))[(nl:2)*You can only invite a guy over while female.*(nl:1)[(link:"Pills")[(display:"click")(display:"pill inventory")]]<pill_inventory|][]<right_options|]<right_screen|</div>{
(display:"npc find fuckbuddies")
(activities:(length of $fuckbuddies > 0),"Invite guy over","evening")
}(if:$option is "he called you")[(set:$result to "pass")](else:)[<img class='greyborder'
src='img/scenes/generic/pregnancy/phone.jpg' width=100% height=auto>(set:$se to "phone call")(display:"play sound")](set:$ambience to "bedroom")(display:"play ambience")(set:$npc_select to (text:"npc " + (text:$npc's id)))(unless:(datanames:$npc) contains "known mc ids")[(set:$npc's "known mc ids" to (a:$character's id))](unless:$npc's "known mc ids" contains $character's "id")[(if:$option is "you called him")[You call up (print:$npc's name) and explain](else:)[You say sure, but let him know] that you've changed bodies since the last time you saw him. (twirl:"Now, instead of ","Now, in place of "){(display:"invite guy load old " + last of ($npc's "known mc ids"))}(print:" you have transformed into a "){(display:"invite guy load new " + $character's id)}.(set:$required to (dm:"attraction",(twist:2,12) - $character's "effective charm"))(display:"check relationship")(set:$case to "upper")(display:"npc pronoun") (if:$result is "pass")[(twirl:"sounds quite interested.","says he's still quite interested.","is eager to see your new body and says he'll come over.")(set:$npc's "known mc ids" to it + (a:(text:$character's id)))<div class='options'>(if:$outfit_inventory's length > 0)[(display:"apply mens clothes")(set:$wardrobe_button_text to "Pick an outfit")(display:"wardrobe buttons")](else:)[(display:"apply mens clothes")(link:"Greet " + $npc's name)[(set:$next to "invite guy over greet")(display:"change screen")]]</div>](else:)[(twirl:"thinks about it, but says he's not really interested at the moment.","doesn't want to come over.","doesn't feel like it.","tells you he's busy tonight.","says he's too busy.","says maybe another time.")<div class='options'>(link:"Next")[(display:"advance time")]</div>]](else:)[(if:$option is "he called you")[(twirl:"You tell him","You say") (twirl:"he can come","he's welcome to come") over. ](else:)[You call up (print:$npc's name) and invite him over.](set:$npc_select to (text:"npc " + (text:$npc's id)))(set:$required to (dm:"attraction",(twist:-2,7)))(unless:$option is "he called you")[(display:"check relationship")](set:$case to "upper")(display:"npc pronoun") (if:$result is "pass")[(if:$option is "he called you")[says he'll be there shortly.](else:)[(twirl:"agrees to come over.","agrees.","says he'll be there soon.")]<div class='options'>(if:$outfit_inventory's length > 0)[(display:"apply mens clothes")(set:$wardrobe_button_text to "Pick an outfit")(display:"wardrobe buttons")](else:)[(display:"apply mens clothes")(link:"Greet " + $npc's name)[(set:$next to "invite guy over greet")(display:"change screen")]]</div>](else:)[(twirl:"doesn't feel like coming over tonight.","doesn't want to come over.","doesn't feel like it today.","tells you he's busy tonight.","says he's too busy.","says says maybe another time.")<div class='options'>(link:"Next")[(display:"advance time")]</div>]]{"that slender latina beauty you used to be,"}{"the tanned, buxom latina,"}{"the mixed-race beauty with those giant, floppy tits he loved,"}{"the super-busty asian smokeshow he knew you as,"}{"the fat-assed, pale redhead he knew you as,"}{"the bimbo-looking brunette he knew you as,"}{"the tanned, tattooed beauty he knew you as,"}{"the blonde, busty beauty he knew you as,"}{"the tiny asian chick he knew you as,"}{"the athletic black beauty he knew you as"}{"slender latina, with a nice butt and delicate features"}{"latina with absolutely massive milkers"}{"mixed-race girl with giant, floppy tits"}{"big-titted asian smokeshow"}{"fat-assed, pale redhead"}{"brunette bimbo"}{"tanned, tattooed girl with nice milkers"}{"blonde girl-next-door type"}{"tiny asian girl"}{"black girl with an athletic body and a particularly nice butt"}(display:"bedroom ambience")(set:$current_location to "Your Bathroom")[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[(print: "<video disableRemotePlayback src='img/places/home/bathroom night.mp4' autoplay='' loop='' muted='' playsinline/>")[<div class='options'><span class='shadow'>Getting changed...</span></div>]<message|]<screen|</div><div class='top_right' data-simplebar>[]<right_screen|(display:"location and time")</div>(live:1s)[(replace:?message)[(display:"clothes sound")<div class='options'><span class='shadow'>(if:(datanames:$outfit) contains "tags")[(if:(is_nude:))[You're naked...](else-if:$outfit's tags contains "collar")[Adjusting collar...](else-if:$outfit's tags contains "straps")[Adjusting straps...](else-if:$outfit's tags contains "garter")[Adjusting garter...](else-if:$outfit's tags contains "stockings")[Adjusting stockings...](else-if:$outfit's tags contains "zipper")[Pulling up zipper...](else-if:$outfit's tags contains "long changing")[This takes a really long time to put on...](else-if:$outfit's tags contains "strings")[Tying strings...](else:)[Finishing up...]</span></div>]](stop:)](live:3s)[(replace:?message)[(unless:(is_nude:))[
(display:"thought clothes")]
<div class='options'>[]<options|(link-repeat:"Strip")[{(display:"strip")}](set:$wardrobe_button_text to "Pick something else")(set:$next to "invite guy over post change")(display:"wardrobe buttons")(link:"Greet " + $npc's name)[($cs:"invite guy over greet")]<div>](stop:)]{(set:$stepdad_name to $stepdad's name)(set:$stop to (twirl:"alexia first","alexia second","stepdad first","stepdad second"))
(if:(is_nude:) or $outfit's category is "fetish" or $outfit's category is "lingerie" or $outfit's locations contains "fetish")[(set:$robe to "true")(if:(is_nude:))[(twirl:"Not wanting your family members to see you in the buff, you","Not wanting $stepdad_name or Alexia to see you naked, you","You","You","You","You")](else-if:$outfit's category is "lingerie")[(twirl:"Not wanting your family members to see you in your lingerie, you","Not wanting $stepdad_name or Alexia to see you in only lingerie, you","You","You","You","You")](else-if:$outfit's category is "fetish" or $outfit's locations contains "fetish")[(twirl:"Not wanting your family members to see you in your fetishwear, you","Not wanting $stepdad_name or Alexia to see you wearing fetishwear, you","You","You","You","You")] (twirl:"toss on","put on","throw on","quickly don") a bathrobe when you (twirl:"go downstairs","go to the front door") to (twirl:"greet","welcome") (print:$npc's name).](else:)[You (twirl:"go downstairs","go to the front door") to (twirl:"greet","welcome") (print:$npc's name).(set:$robe to "false")](nl:2)
(if:$stepdad's events contains "sex eligible")[(set:_prev_npc to $npc_select)(set:$npc_select to "stepdad")(set:$required to (dm:"dom",(twist:5,10),"attraction",(twist:10,15)))(display:"check relationship")(set:$npc_select to _prev_npc)]
(if:$stepdad's events contains "sex eligible" and (win:) and not ((checkdm:$npc,"id","is","bruce")))[(display:"invite guy over stepdad interrupts")](else-if:(checkdm:$npc,"id","is","bruce"))[(display:(twirl:"invite guy over alexia first","invite guy over stepdad first","invite guy over none bruce","invite guy over none bruce"))](else:)[(display:(twirl:"invite guy over alexia first","invite guy over stepdad first","invite guy over none","invite guy over none"))]
}(set:$his_name to "stepdad's name"){(unless:$global_events contains "stepdad regular body sex")[(set:$global_events to it + (a:"stepdad regular body sex"))](display:"Daddys Property Trigger")}"Who the hell is that?" (print:$stepdad's name)'s voice isn't just loud; it's laced with a kind of territorial challenge that brooks no argument.
You hear a brief exchange downstairs, muffled words interspersed with the unmistakable tone of a man who's not asking, but telling. The door closes with a sense of finality, and then footsteps approach.
(print:$stepdad's "name") appears at the bathroom doorway, his presence filling the space as he fixes you with a look that's both incendiary and proprietary.($play:"sound","doorbell")(set:$npc_select to "stepdad")(display:"load relationship")(set:$npc to $npcs_men's "stepdad")
"Whatever you're thinking with that guy, forget it," he says. "No one's touching you tonight... except me."
Then, his hands find your hips with the ease of ownership. His lips crash against yours, and it's not just a kiss. It's a claim.
"It's time you learn who you belong to, $your_name," he murmurs against your lips, his fingers tightening.($simple_option:"invite guy sex room stepdad","He leads you to your bedroom..."){(set:$social_timer to 0)(set:$npc_select to "stepdad")
(set:$npc to $npcs_men's "stepdad")
(set:$his_name to $stepdad's name)
[(print:"<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>")]<image|[{(set:$current_location to "Your Bedroom")(set:$location_params to (dm:
"name","Your Bedroom",
"crowded","no",
"sleaze",0,
"intro passage","sex bedroom intro",
"options passage","sex bedroom options",
"ambience","bedroom",
"changing location name","your room",
"changing location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"bj location passage","sex your bedroom",
"bj location name","your bedroom",
"bj location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"sex location passage","sex your bedroom",
"sex location name","your bedroom",
"sex location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"location refresh","location and time and inventory no saving",
"tags",(a:"clean"),
"home","Night",
"bed","your bed",
"home option","Go to bed"))
(set:$room to "bedroom")(display:"npc position inventory")
(set:$couch to "couch")
(set:$wall to "bedroom wall")
(set:$floor to "bedroom floor")
(set:$desk to "desk")
(set:$scene to (dm:"events",(a:"begin","begin")))
(set:$minigame to (dm:
"difficulty",7,
"babe type","clothed",
"cock type","nsfw",
"masculinity level",80,
"reason 1","You had sex with your stepdad in your own room.",
"reason 2","Your stepdad really controls your life now...",
"reason 3","You looked so cute and desperate, the way you dressed up.",
"afterwards","sex transactional finish"))
(set:$your_name to $character's "female name")
(set:$option to "none")(set:$max_attraction to 5)
(set:$breeder_ruined_orgasms to 0)(set:$beg_creampie to "false")
(set:$scene_type to "sex bedroom")(set:$caught_chance to 0)
(display:"breathing ambience")(set:$his_choice to "none")
(set:$sex_descriptions to (twisted:"sensation","sound","he talks","body","action","thought","you talk"))
(display:"petname initial")(display:"sex sound variants")(set:$his_pleasure to 0)(set:$your_name to $character's "female name")(set:$his_pleasure_threshold to $npc's stamina)(set:$his_satisfaction to 0)(set:$energy to (max:3,(get_fitness:)))(set:$max_energy to (max:3,(get_fitness:)))(set:$your_pleasure to 0)(set:$orgasms to 0)(set:$control to 5)(if:(datanames:$npc) contains "dominance")[(set:$control to (min:10,(max:1,10 - $npc's dominance)))](set:$stamina_stat to "enabled")(set:$control_stat to "enabled")(set:$lubrication_stat to "enabled")(display:"refresh stats sex girl")(set:$lubrication to (ceil:$character's "arousal"/2))
(unless:(is_nude:))[(set:$character's "pussy" to "inaccessible")](else:)[(set:$character's "pussy" to "accessible")]
(display:"sex doggy transactional")(display:"sex oral")(set:$oral_loop to $sex_loop)(set:$npc's "cock" to "not out")
(if:$robe is "true")[(twirl:"You drop","You open") (twirl:"your bathrobe","the robe","your robe","the bathrobe"), (if:(is_nude:))[(twirl:"revealing your naked body","baring your naked body to your stepdad","revealing that underneath, you were naked..").](else:)[revealing your (print:$outfit's description).](nl:2)](display:"npc describe outfit")(set:$gain to 0)(set:$gain_attraction to 0)(if:$outfit's category is "fetish" or $outfit's locations contains "fetishwear")["Well, look at THAT..." $his_name grunts, barely containing his lust as he eyes your (print:$outfit's description). "A getup like THIS is much better spent on me than some random guy, $your_name - that's for sure."(set:$gain to 3)(set:$gain_attraction to 2)](else-if:$outfit's tags contains "mens")["Dressed in (print:$character's "male name")'s clothes? Heh," he snorts, a smirk playing on his lips. "Gotta build out your wardrobe if you're gonna be staying like this."(set:$gain to -1)(set:$gain_attraction to -1)](else-if:(is_nude:))["Ha, naked as the day you were born," he chuckles, appreciating the view. "THIS is a sight meant for me, not some nobody."(set:$gain to 1)](else-if:$outfit's emphasizes contains "cleavage" and (twist:1,2) is 1)["Damn, $your_name," he says, his eyes locked on your chest. "I better be the only one enjoying that cleavage of yours."(set:$gain to 1)](else-if:$outfit's category is "lingerie")["Wearing lingerie for some random asshole, $your_name?" he growls. "Fuck. It suits you. And it suits me just fine."(set:$gain to 1)(set:$gain_attraction to 1)](else-if:$outfit's sluttiness > 8)[(set:$gain_respect to -1)"You're pushing it with that outfit, $your_name," he laughs. "If anyone's gonna see you like this, it better be me."(set:$gain to 2)(set:$gain_attraction to 1)](else-if:(checkdm:$outfit,"style","is","relaxed"))["Dressed down tonight, huh?" he observes.(set:$gain to -1)](else-if:$outfit's type is "bikini")["A bikini? In the HOUSE?" he chuckles. "You won't be using the pool tonight."(set:$gain to 1)](else-if:(checkdm:$outfit,"style","is","modest"))["That's quite modest," he grins. "Don't worry, I'll take my time unwrapping you."(set:$gain to 1)](else-if:(checkdm:$outfit,"style","is","sexy"))["God, $your_name, you're killing me here," he groans, taking you in. "This is why you're my girl. No one else gets to see you like this. Just me."(set:$gain to 2)(set:$gain_attraction to 1)](else:)[(set:$case to "upper")(display:"npc pronoun") looks you up and down, his gaze possessive. "You're all mine tonight, $your_name."](set:$seen to "none")(unless:$outfit's tags contains "mens" or (is_nude:))[(unless:(datanames:$npc) contains "seen outfits")[(if:(datanames:$outfit) contains "id")[(set:$npc's "seen outfits" to (a:$outfit's id))](else:)[(set:$npc's "seen outfits" to (a:))](set:$seen to "false")](else-if:$npc's "seen outfits" contains $outfit's id)[(set:$seen to "true")](else:)[(set:$seen to "false")(set:$npc's "seen outfits" to it + (a:$outfit's id))]](if:$seen is "false")[(inc:'gain')(inc:'gain_attraction')<div class='options'><mark>Satisfaction/attraction boosted because he hasn't seen you wear your (print:$outfit's description) before.</mark></div>](unless:$gain is 0)[(display:"gain his satisfaction")(display:"change relationship")]
(display:"npc screen update sex guy")(display:"display outfit")
(set:$surface to $couch)(set:$your_choice to "none")
(if:$doggy_text's 1st is "couch")[(set:$surface to $couch)](if:$doggy_text's 1st is "desk")[(set:$surface to $desk)]
(if:$doggy_text's 1st is "floor")[(set:$surface to $floor)]
(if:$doggy_text's 1st is "wall")[(set:$surface to $wall)]
(if:$doggy_text's 1st is "standing")[(set:$surface to $wall)]
(set:$scene's "status" to "foreplay")(live:2s)[(display:"fix outfit")(stop:)](if:(datanames:$outfit) contains "id")[(set:$sex_outfit to $outfit's "id")](else:)[(set:$sex_outfit to "none")](set:$scene to (dm:"events",(a:"begin"),"status","foreplay","interrupt chance",3))
(display:"refresh girl sex meters")(set:$change to (($relationships's "stepsis")'s "friendship"))(if:$change > 0)[<div class='options'><mark>Since you and Alexia are on good terms, your chance of getting caught is decreased - she'll give you privacy.</mark></div>](else-if:$change < 0)[<div class='options'><mark>Since you and Alexia aren't on good terms, your chance of getting caught is increased.</mark></div>]
(set:$scene's "interrupt chance" to it - (($relationships's "stepsis")'s "friendship"))
}]<text|(set:$scene's "interrupt chance" to it - 2)
(set:$scene's "interrupt chance" to it - (($relationships's "stepdad")'s "respect"))($passage_tags:"interrupt_chance")(set:$scene's "interrupt chance" to (min:25,(max:0,$scene's "interrupt chance")))(if:$disable_caught is "Getting Caught Disabled: True" or $rent_this_week > 149)[(set:$scene's "interrupt chance" to 0)(set:$caught_chance to 0)](set:$caught_chance to $scene's "interrupt chance")[<div class='options'><mark>Chance of Alexia catching you:</mark></div>(display:"sex transactional chance of getting caught")
(set:$his_name to $npc's "name")
<div class='options'>(display:"sex transactional option links")(display:"update caught chance")]<options|}($play:"sound","doorbell")(set:$current_location to "Doorway")(display:"npc screen update location")(display:"invite guy he greets you")
(newtrack:'up stairs','aud/ambience/house/chores/up stairs.mp3')(nl:1)You bring him upstairs.($play:"sound","up stairs",1000)<div class='options'>(link:"In your room...")[($cs:"invite guy sex room")]<div>($pic:"npc/family/stepdad/comment " + (twirl:"1","2") + ".jpg")(twirl:"Your stepdad notices you.","You run into $stepdad_name in the kitchen.","$stepdad_name spots you from the living room.","Your stepdad spots you.") "(twirl:"What's the occasion?","Someone coming over?","Having someone over?","Who are you having over?","Who's coming over?")" he says.<div class='options'>(link:"Tell him")[(set:$option to "tell")($cs:"invite guy over stepdad first 1")](link:"Avoid the subject")[(set:$option to "avoid")($cs:"invite guy over stepdad first 1")]</div>($pic:"npc/family/stepdad/comment " + (twirl:"1","2") + ".jpg")(if:$option is "avoid")[You (twirl:"avoid the subject","tell him it's none of his business","don't answer him directly").
"Seems like it's probably some guy," your stepdad says. ](else:)[You tell him about (print:$npc's "name") and that you invited him.
"(if:$npc's tags contains "stepdad likes")[Oh right, (print:$npc's name)! (twirl:"Cool dude","Nice guy","I like him","I'm glad you're hanging out with someone like that")](else-if:$npc's tags contains "stepdad dislikes")[(print:$npc's name) again, huh? Not really a fan of him](else:)[I see]," your stepdad says. ](if:$robe is "true")[He looks at your robe. "(twirl:"I probably don't want to know what's under that, if anything.","I wonder what you're wearing under that, if anything...")(set:$gain_respect to -1)](else-if:$outfit's sluttiness > 6 or (checkdm:$outfit,"style","is","slutty"))["(twirl:"I still have trouble understanding why you dress like that.","That outfit is completely inappropriate. You know what kind of message it will send, right?","I can't believe you want to show off your body this much to some random guy.","You're not going to make a respectful impression on anyone with that outfit.","If you're going to be a girl... you're not going to attract that kind of guy you want, in an outfit like that.","I don't like random guys seeing you in an outfit like that. It's not appropriate.","I don't like guys thinking that you're the kind of girl who would dress like that. It's not a good look for you. Or me as a father.","What message are you trying to send with that outfit?","I know you won't listen, but you should be ashamed of yourself for dressing like that.")"(set:$gain_respect to -2)(set:$gain_attraction to 1)(nl:2)You blush, not sure how to respond.](else:)[He makes a comment about your (print:$outfit's description).(set:$min_respect to -2)](set:$npc_select to "stepdad")(display:"change relationship")(set:$npc_select to (text:"npc " + (text:$npc's id)))($play:"sound","doorbell",2000)(twirl:"You ignore him and go to the door.","The doorbell chimes.","You hear the doorbell.")<div class='options'>(link:"Open the door")[(set:$next to "invite guy over stepdad first 2")(if:(checkdm:$npc,"id","is","bruce"))[(set:$next to "invite guy stepdad first 2 bruce")](display:"change screen")]</div>{
(set:$current_location to "Doorway")(display:"npc screen update location")(display:"invite guy he greets you")(nl:2)
(if:$npc's tags contains "stepdad likes")[(twirl:$stepdad_name,"Your stepdad") approaches and has a brief chat with (print:$npc's name) (twirl:"- the two seem to really get along!","- the two actually seem to get along quite well, just like last time.")](else-if:$npc's tags contains "stepdad dislikes")[(twirl:$stepdad_name,"Your stepdad") approaches has a brief, tense chat with (print:$npc's name).
*(twirl:"They don't really get along...","They don't really like each other...")*](else:)[Your stepdad (twirl:"butts in to introduce himself","introduces himself") to (print:$npc's name). "I'm $stepdad_name," he says. "$your_name's father."(nl:2)
(if:$npc's "personality" > 5)["Nice to meet you, (if:$npc's age < 23)[sir](else:)[$stepdad_name]," (display:"npc pronoun") shakes his hand. *Seems like he's good at dealing with parents.*(set:$npc's tags to it + (a:"stepdad likes"))](else:)[(if:$npc's age > 39)[It's a little weird, considering (print:$npc's name) is around the same age as your father. Their conversation is short and awkward.(set:$npc's tags to it + (a:"stepdad dislikes"))](else-if:$npc's tags contains "fuckboy")["Yo," he says, shaking hands. (if:$outfit's sluttiness > 6)["You must be real proud of her," he nods at your slutty outfit.](else:)["(twirl:"Your daughter is HOT.","Your daughter is a total smokeshow.","Your daughter is one fine piece of ass!")"(set:$npc's tags to it + (a:"stepdad dislikes"))]](else:)[(set:$case to "upper")(display:"npc pronoun") talks with him but the two don't really click or get along.
*(print:$npc's name) (twirl:"doesn't have the best personality...","isn't exactly the most likable guy...","might not get along well with my stepdad...")* you admit to yourself.(set:$npc's tags to it + (a:"stepdad dislikes"))]]]
<div class='options'>(link:"Invite him upstairs")[($cs:"invite guy sex intro stepdad")]</div>}{
(if:$npc's tags contains "stepdad dislikes")[](else:)[](set:$his_name to $npc's name)"(twirl:"Let's uh, go upstairs and watch a movie,","Let's go upstairs and, uh, watch a movie or something,")" you say, (twirl:"interrupting their conversation","tugging on $his_name's sleeve").
(if:$npc's tags contains "chad")[(set:$case to "upper")(display:"npc pronoun") just chuckles and starts going up the stairs.](else:)[(set:$case to "upper")(display:"npc pronoun") (twirl:"nods, knowingly","nods and winks","winks at you").]
(if:$npc's tags contains "stepdad dislikes")[(nl:2)"(if:$npc's tags contains "chad" or $npc's tags contains "bully")[(twirl:"$stepdad_name would like me even less if he knew how I'm gonna fuck you tonight.","He made some comments I didn't like... I guess I'm gonna have to fuck you twice as hard!","I wonder how much he'd like me if he knew how hard I'm gonna screw your tight little pussy!","I don't think he likes me very much, I'll try not to lose too much sleep over it...","Your dad is kinda a stuck-up jerk...","I don't like the way he talked to me...","It seemed like he was trying to interfere,","I don't like having to put up with your dad's crap...")](else:)[(twirl:"I don't think he likes me very much, I'll try not to lose too much sleep over it...","Your dad is kinda a stuck-up jerk...","I don't like the way he talked to me...","It seemed like he was trying to interfere,","I don't like having to put up with your dad's crap...")]" (display:"npc pronoun") says.]
(newtrack:'up stairs','aud/ambience/house/chores/up stairs.mp3')($play:"sound","up stairs",2000)<div class='options'>(link:"In your room...")[($cs:"invite guy sex room")]<div>
}<div class='top_left_half'>(set:$img to "<img class='greyborder'
src='img/npc/family/stepsis/alexia/talk/" + (text:(twist:1,11)) + ".jpg' width=100% height=auto>")(print:$img)</div>(set:$line to "stepsis tease guy " + (text:(twist:1,4)))(display:"stepsis voice line")(twirl:"Alexia notices you.","You run into Alexia in the kitchen.","Alexia spots you from the living room.","Alexia spots you.") "(twirl:"Big night, huh?","Someone special coming over?","One of your 'friends' coming over?","Someone special coming over?","Who's coming over?")" she says.<div class='options'>(link:"Tell her")[(set:$option to "tell")($cs:"invite guy over alexia first 1")](link:"Avoid the subject")[(set:$option to "avoid")($cs:"invite guy over alexia first 1")]</div><div class='top_left_half'>(print:$img)</div>(if:$option is "avoid")[You (twirl:"avoid the subject","tell her it's none of her business","don't answer her").](else:)[You tell her that (print:$npc's "name") is coming over.]
(set:$trying to "not")(if:$robe is "true")[(set:$trying to "too hard")"(twirl:"And what's under that bathrobe, huh?","What's under that bathrobe?","Whatcha wearing under that bathrobe?","What do you have on under that bathrobe?")" she giggles. "(if:$outfit's tags is "nude")[(twirl:"I think I see your nipples poking through!","Your nipples are poking through!","I think I see your nipples poking through under it!","Are those your nipples poking through?")(set:$line to "under that bathrobe nude")(display:"stepsis voice line")](else:)[(set:$line to "under that bathrobe")(display:"stepsis voice line")(twirl:"Something dad wouldn't approve of, I'll bet.","Something $stepdad_name wouldn't approve of, I bet.","Something nice and slutty, I bet.","I bet it's something nice and slutty.")]"(nl:2)](else:)[(if:$outfit's tags contains "mens")["You know," she giggles. "(twirl:"You can't keep wearing your guy's clothes forever.","You gotta find yourself some actual womens' clothes.","You gotta find yourself some real clothes.") (set:$line to "guy coming over guys clothes")(display:"stepsis voice line")(twirl:"That looks ridiculous on you!","You just look silly!","You look totally silly.")"](else-if:$outfit's type is "bikini")["(twirl:"I can't believe you're actually wearing a bikini","I can't believe you're wearing a bikini around the house,")(set:$line to "bikini around the house")(display:"stepsis voice line")," she giggles. (set:$trying to "too hard")](else-if:$outfit's sluttiness > 8)[(set:$line to "stepsis tease slut " + (text:(twist:1,5)))(display:"stepsis voice line")"(twirl:"Damn","Woo-weeee","Wow","And oh my god")," she says. "(twirl:"You look like a total slut!","You're definitely sending a message with that outfit - a message that says 'hey, I'm a slut!'","You look like an absolute slut!","Is that the latest in slut fashion? You're really rocking it.","I didn't know sluts could look so good.","You must be feeling pretty confident tonight, dressing like a slut.","Looks like you're trying to seduce someone in that slutty outfit.","I still can't believe you dress like that, you little slut.","You really pulled out the stops with that outfit. You're a true slut at heart.")"(set:$trying to "too hard")](else-if:(checkdm:$outfit,"style","is","cute"))["(twirl:"Well, you look cute,","You look pretty cute,","You look cute in that,","You do look pretty cute in that, gotta say,")" she says.](else-if:(checkdm:$outfit,"style","is","relaxed"))["That outfit..." she says. "(twirl:"You know guys like it when you make actual effort, right?","You gotta find yourself something more stylish...")"](else-if:(checkdm:$outfit,"style","is","sexy"))[(set:$trying to "just right")"(twirl:"You look pretty sexy,","You look sexy!","You look really sexy, gotta say sis,")" she says. (if:$outfit's "emphasizes" contains "cleavage")["Really shows off that cleavage!"](else-if:$outfit's emphasizes contains "butt")["Makes your ass look good."](else-if:$outfit's emphasizes contains "sideboob")["Got that side-boob going on."]](else-if:(checkdm:$outfit,"style","is","casual"))[(set:$trying to "just right")"Keeping it casual with that outfit I see," she says.(if:(twist:1,2) is 1)[ "(twirl:"Good idea, play hard to get!","Playing hard to get, I know all about that.","That is, if you're planning on even keeping it on for long.")"]](else-if:(a:"classy","elegant") contains $outfit's "style")["(twirl:"It looks like you're going to a gala or something,","Going to a ball later?","Is prince charming taking you to the ball?")" she jokes at your (print:$outfit's style) outfit.(set:$trying to "just right")](else:)[(set:$trying to "just right")"(twirl:"And that's what your chose to wear, huh?","And that's what you chose to wear, interesting...","Interesting choice of outfit,")" she giggles.](nl:2)"(if:$robe is "true")[(twirl:"I like to keep you guessing","You'll never guess what's under this","I'm not telling","I'll never tell")](else:)[(print:$outfit's style of (dm:"cute",(twirl:"Doing my best","You're jealous you're not this adorable"),
"sexy",(twirl:"Sexy as hell","I know what guys like","I know how to dress to impress","Doing my best"),
"slutty",(twirl:"It's just cute","It's not slutty, it's just cute","It's not slutty, it's just nice"),
"professional",(twirl:"I'm dressed like it's a job interview","A little like it's a job interview, I'll admit"),
"relaxed",(twirl:"I don't care","I really don't care","I'm not trying to impress anyone"),
"elegant",(twirl:"Sorry you're not as elegant as I am","Yeah, I'm elegant, I know","Sorry you're not as classy as I am"),
"classy",(twirl:"Yeah I'm classy","I know, I'm classy"),
"modest",(twirl:"I'm practically a nun","You should learn to dress a bit more modestly like this"),
"mens",(twirl:"It's all I had","It's just what I had in my closet"),
"casual",(twirl:"Exactly","That's right","It's comfy")))]," you reply.(if:$trying is "too hard")[(nl:2)"(twirl:"It just comes off as a little desperate,","Just try not to look too desperate,","Just don't act desperate, kay?","It just seems like you're trying too hard to impress someone,","Can't wait to see how you act in front of him, all desperate...","Guess you're really trying to impress him, huh?","You look like you're practically throwing yourself at him, it's kind of embarrassing,","It's like you're just asking for it...","You know, acting too desperate is not actually attractive...","It's kind of pathetic...")" she says.(set:$npc_select to "stepsis")(set:$gain_respect to -1)(display:"change relationship")(set:$npc_select to (text:"npc " + (text:$npc's id)))](else:)[(nl:2)]]($play:"sound","doorbell",2000)(twirl:"You ignore her and go to the door.","The doorbell chimes.","You hear the doorbell.")<div class='options'>(link:"Open the door")[(set:$next to "invite guy over alexia first 2")(if:(checkdm:$npc,"id","is","bruce"))[(set:$next to "invite guy over alexia first 2 bruce")](display:"change screen")]</div>{
(set:$current_location to "Doorway")(display:"npc screen update location")(display:"invite guy he greets you")(nl:2)
<div class='options'>(link:"Invite him upstairs")[($cs:"invite guy sex intro alexia")]</div>}{"Hi, (print:$npc's name)," you (twirl:"smile","say"). (nl:2)"(if:$npc's age > 35)[(twirl:"Hello there,","Greetings,","Why hello there,") ](else:)[(twirl:"What's up,","Hey,","Hi,","Hi there,")] (display:"npc calls you")," (display:"npc pronoun") says(if:$robe is "true")[, (twirl:"looking your bathrobe up and down","looking at your bathrobe","taking a look at your bathrobe, clearly wondering what's underneath","eyes raised at your bathrobe")](else-if:$outfit's emphasizes contains "cleavage")[, (display:"describe breasts")looking at your (twirl:$breasts,"cleavage") instead of your eyes](else:)[, looking at your (print:$outfit's description)].}(set:$his_name to $npc's name)(twirl:"You look back at Alexia.","You look at Alexia, then back to $his_name.","You blush a little when you see Alexia watching you.")
"(twirl:"Let's uh, go upstairs and watch a movie,","Let's go upstairs and, uh, watch a movie or something,")" you say.
(if:$npc's tags contains "fuckboy" or $npc's tags contains "creepy")[You don't like how long (display:"npc pronoun") looks at Alexia before agreeing to go upstairs.(set:$npc's tags to it + (a:"likes stepsis"))](else-if:$npc's tags contains "chad")[(set:$case to "upper")(display:"npc pronoun") just chuckles and starts going up the stairs.](else:)[(set:$case to "upper")(display:"npc pronoun") (twirl:"nods, knowingly","nods and winks","winks at you").](if:(twist:1,2) is 1)[
"(twirl:"Looks like someone's getting lucky tonight!","I hope you two have a good time!","Make sure to use protection!","Oh yeah, have a lot of fun watching that movie, you two!","I hope you brought your A-game, $his_name!","I'm sure you two will have a *thrilling* time watching that movie,","I'll just be down here, pretending I don't know what's happening!","I'll just be down here with a bowl of popcorn,")" Alexia calls up after you. You groan.](newtrack:'up stairs','aud/ambience/house/chores/up stairs.mp3')($play:"sound","up stairs",2000)<div class='options'>(link:"In your room...")[($cs:"invite guy sex room")]<div>{(set:$social_timer to 0)
[(print:"<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>")]<image|[{(set:$current_location to "Your Bedroom")(set:$location_params to (dm:
"name","Your Bedroom",
"crowded","no",
"sleaze",0,
"intro passage","sex bedroom intro",
"options passage","sex bedroom options",
"ambience","bedroom",
"changing location name","your room",
"changing location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"bj location passage","sex your bedroom",
"bj location name","your bedroom",
"bj location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"sex location passage","sex your bedroom",
"sex location name","your bedroom",
"sex location pic","<video disableRemotePlayback src='img/places/home/bedroom/bedroom 1.mp4' autoplay='' loop='' muted='' playsinline/>",
"location refresh","location and time and inventory no saving",
"tags",(a:"clean"),
"home","Night",
"bed","your bed",
"home option","Go to bed"))
(set:$room to "bedroom")(display:"npc position inventory")
(set:$couch to "couch")
(set:$wall to "bedroom wall")
(set:$floor to "bedroom floor")
(set:$desk to "desk")
(set:$scene to (dm:"events",(a:"begin","begin")))
(set:$minigame to (dm:
"difficulty",7,
"babe type","clothed",
"cock type","nsfw",
"masculinity level",80,
"reason 1",(twirl:"You invited a guy for sex, in your own bedroom...","What a slut, having guys over..."),
"reason 2","How did you like that?",
"reason 3","You looked so cute and desperate, the way you dressed up.",
"afterwards","sex transactional finish"))
(set:$your_name to $character's "female name")
(set:$option to "none")(set:$max_attraction to 5)
(set:$breeder_ruined_orgasms to 0)(set:$beg_creampie to "false")
(set:$scene_type to "sex bedroom")(set:$caught_chance to 0)
(display:"breathing ambience")(set:$his_choice to "none")
(set:$sex_descriptions to (twisted:"sensation","sound","he talks","body","action","thought","you talk"))
(display:"petname initial")(display:"sex sound variants")(set:$his_pleasure to 0)(set:$your_name to $character's "female name")(set:$his_pleasure_threshold to $npc's stamina)(set:$his_satisfaction to 0)(set:$energy to (max:3,(get_fitness:)))(set:$max_energy to (max:3,(get_fitness:)))(set:$your_pleasure to 0)(set:$orgasms to 0)(set:$control to 5)(if:(datanames:$npc) contains "dominance")[(set:$control to (min:10,(max:1,10 - $npc's dominance)))](set:$stamina_stat to "enabled")(set:$control_stat to "enabled")(set:$lubrication_stat to "enabled")(display:"refresh stats sex girl")(set:$lubrication to (ceil:$character's "arousal"/2))
(unless:(is_nude:))[(set:$character's "pussy" to "inaccessible")](else:)[(set:$character's "pussy" to "accessible")]
(display:"sex doggy transactional")(display:"sex oral")(set:$oral_loop to $sex_loop)(set:$npc's "cock" to "not out")
(if:$robe is "true")[(twirl:"You drop","You open") (twirl:"your bathrobe","the robe","your robe","the bathrobe"), (if:(is_nude:))[(twirl:"revealing your naked body","baring your naked body to him","revealing that underneath, you were naked").](else:)[revealing your (print:$outfit's description).](nl:2)](display:"npc describe outfit")(set:$gain to 0)(set:$gain_attraction to 0)(if:$outfit's category is "fetish" or $outfit's locations contains "fetishwear")["(twirl:"Wow...","Holy crap...","WOW...","God...")" he says, gazing at your (print:$outfit's description). "(twirl:"That's epic.","You look amazing in that.","That is... wow. Yum.","Yummy.")"(set:$gain to 3)(set:$gain_attraction to 2)](else-if:$outfit's tags contains "mens")["(twirl:"Are you wearing guys' clothes?","Why are you wearing mens' clothes?","Why are you wearing dude clothes?")" (display:"npc pronoun") says. "(twirl:"They look weird on you.","They look super weird on you.")"(set:$gain to -1)(set:$gain_attraction to -1)](else-if:(is_nude:))["(twirl:"Haha","Wow","Nice"), (twirl:"you're totally naked","you're completely naked","you're naked under there","you weren't wearing anything under there")," (display:"npc pronoun") says.(set:$gain to 1)](else-if:$outfit's emphasizes contains "cleavage" and (twist:1,2) is 1)["(twirl:"Damn","Honestly","Sheesh","Shit"), (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"I love how your cleavage looks in ","I just can't take my eyes off that cleavage when you're wearing ") $outfit_desc."(set:$gain to 1)](else-if:$outfit's category is "lingerie")["Whoa," (display:"npc pronoun") says. "(twirl:"Just wearing your lingerie, I see.","Just wearing lingerie.")"(set:$gain to 1)(set:$gain_attraction to 1)](else-if:$outfit's sluttiness > 8 and $npc's personality < 3 and (twist:1,2) is 1)["(twirl:"Haha, you look like a whore,","Ha, you look like a total slut,","Damn, you're really trying to get me excited, huh?","You're such a whore, $your_name,")" (display:"npc pronoun") laughs at your (print:$outfit's description).](else-if:(checkdm:$outfit,"style","is","slutty") or $outfit's sluttiness > 7)["(twirl:"Fuck, that's slutty,","Damn, that's a slutty outfit,","That outfit really shows off your body,")" (display:"npc pronoun") says.(set:$gain to 2)(set:$gain_attraction to 1)](else-if:(checkdm:$outfit,"style","is","relaxed"))["Really looking relaxed there, huh?" (display:"npc pronoun") says, obviously not too impressed with your outfit.(set:$gain to -1)](else-if:$outfit's type is "bikini")["I can't believe you just wore a bikini," (display:"npc pronoun") laughs at you. (if:$npc's "tags" contains "nerd")["You're like those anime girls!"](else-if:$npc's tags contains "fuckboy")["Guess you're a bit of a ditz."](else-if:(checkdm:$outfit,"style","is","professional"))["This isn't a job interview, you know," (display:"npc pronoun") chuckles at your outfit. (if:$outfit's sluttiness > 6)["It's nice and slutty, at least!"(set:$gain to 1)]](else-if:$npc's "tags" contains "chad")["Guess you really wanted to impress me, huh?"](else-if:$npc's age > 35)["Guess that's what the kids must be doing these days!"]](else-if:(checkdm:$outfit,"style","is","modest"))["So modest," (display:"npc pronoun") laughs. "Let's get those clothes off of you."](else-if:(checkdm:$outfit,"style","is","sexy"))[(if:$npc's "personality" > 5)["(twirl:"Wow","Damn","God"), (display:"npc calls you")," (display:"npc pronoun") says. "(twirl:"You look absolutely stunning in that outfit.","I can't stop looking at you. You're so sexy in that outfit.","You'd always be able to make my head turn in an outfit like that.","I love the way that outfit hugs your curves. You're a goddess.","That outfit almost takes my breath away.","I don't think I've ever seen anyone look as sexy as you do right now.","You have an incredible body, and that outfit shows it off perfectly.","I'm a lucky guy - you look so sexy in that outfit!","You're a vision in that outfit. I feel super lucky.","I could stare at you all day in that outfit.")"(set:$gain to 2)(set:$gain_attraction to 1)](else:)["(twirl:"You look hot as hell in that outfit.","I love how that outfit shows off your assets. You're killin' it.","You're a total smokeshow in that outfit. I can't look away.","I don't think I've ever seen anyone rock a trashy look as well as you do.","You're giving me all kinds of dirty thoughts in that outfit. Good thing I got the chance to act on them now!","I love how confident and sassy you look in that outfit.","You have no idea how sexy you are right now. I can't stop staring.","You're lookin' pretty sexy.")"]](else:)[(set:$case to "upper")(display:"npc pronoun") looks you up and down, in anticipation.](set:$seen to "none")(unless:$outfit's tags contains "mens" or (is_nude:))[(unless:(datanames:$npc) contains "seen outfits")[(if:(datanames:$outfit) contains "id")[(set:$npc's "seen outfits" to (a:$outfit's id))](else:)[(set:$npc's "seen outfits" to (a:))](set:$seen to "false")](else-if:$npc's "seen outfits" contains $outfit's id)[(set:$seen to "true")](else:)[(set:$seen to "false")(set:$npc's "seen outfits" to it + (a:$outfit's id))]](if:$seen is "false")[(inc:'gain')(inc:'gain_attraction')<div class='options'><mark>Satisfaction/attraction boosted because he hasn't seen you wear your (print:$outfit's description) before.</mark></div>](unless:$gain is 0)[(display:"gain his satisfaction")(display:"change relationship")]
(display:"npc screen update sex guy")(display:"display outfit")
(set:$surface to $couch)(set:$your_choice to "none")
(if:$doggy_text's 1st is "couch")[(set:$surface to $couch)](if:$doggy_text's 1st is "desk")[(set:$surface to $desk)]
(if:$doggy_text's 1st is "floor")[(set:$surface to $floor)]
(if:$doggy_text's 1st is "wall")[(set:$surface to $wall)]
(if:$doggy_text's 1st is "standing")[(set:$surface to $wall)]
(set:$scene's "status" to "foreplay")(live:2s)[(display:"fix outfit")(stop:)](if:(datanames:$outfit) contains "id")[(set:$sex_outfit to $outfit's "id")](else:)[(set:$sex_outfit to "none")](set:$scene to (dm:"events",(a:"begin"),"status","foreplay","interrupt chance",3))
(display:"refresh girl sex meters")(if:$rent_this_week > 149)[<div class='options'><mark>Since you're contributing at least $100 toward household expenses this week, your family doesn't mind if you have sex in the house.</mark></div>](else:)[(set:$change to (($relationships's "stepsis")'s "friendship"))(if:$change > 0)[<div class='options'><mark>Since you and Alexia are on good terms, your chance of getting caught is decreased.</mark></div>](else-if:$change < 0)[<div class='options'><mark>Since you and Alexia aren't on good terms, your chance of getting caught is increased.</mark></div>]
(set:$scene's "interrupt chance" to it - (($relationships's "stepsis")'s "friendship"))
(set:$change to (($relationships's "stepdad")'s "respect"))(if:$change > 0)[<div class='options'><mark>Since your stepdad respects you, your chance of getting caught is decreased.</mark></div>](else-if:$change < 0)[<div class='options'><mark>Since your stepdad doesn't respect you, your chance of getting caught is increased.</mark></div>]
]}]<text|(if:$npc's tags contains "stepdad dislikes")[(set:$scene's "interrupt chance" to it + 2)]
(set:$scene's "interrupt chance" to it - (($relationships's "stepdad")'s "respect"))($passage_tags:"interrupt_chance")(set:$scene's "interrupt chance" to (min:25,(max:0,$scene's "interrupt chance")))(if:$disable_caught is "Getting Caught Disabled: True" or $rent_this_week > 149)[(set:$scene's "interrupt chance" to 0)(set:$caught_chance to 0)](set:$caught_chance to $scene's "interrupt chance")[<div class='options'><mark>Chance of your family members catching you:</mark></div>(display:"sex transactional chance of getting caught")
(set:$his_name to $npc's "name")
<div class='options'>(display:"sex transactional option links")(display:"update caught chance")]<options|
}{
<div class='options'>
(display:"refresh stats")
<span class='shadow'>(css:"font-size:4vmin")[(color:"white")[Bedroom Sex Results]]</span>
</div>
(display:"save npc male")
(if:$his_satisfaction>9)[(set:$stats's "guys fully satisfied" to it + 1)(if:($has_ap_mod:"happy and satisfied mod"))[(display:"action point mod trigger")]]
(if:$his_satisfaction > 9)[(if:(is_pp:))[(set:$gain to 3)(set:$reason to "Since you're a people pleaser and satisfied " + $npc's name )(display:"gain positive mood")(nl:2)]
Since his satisfaction was 10, you can spend 1 point improving one of (print:$npc's "name")'s stats.
(if:$his_satisfaction > 5 and $npc's wealth > 5 and $npc's personality > 5)[
<div class='options'>
<mark>
(set:$case to "upper")
(set:$gain to $npc's wealth * (twirl:5,10,15,20,25))
(display:"npc pronoun") gives you some spending money. ((currency:$gain))
($gain_money:$gain)
</mark>
</div>
]
<div class='options'>
[
(if:$npc's "oral skill" < 10)[
($show_tooltip:[(link:"Improve Oral Skills")[
(set:$npc's "oral skill" to it + 1)
(display:"save npc male")
(replace:?bonus)[*NPC's oral skills increased to (print:$npc's "oral skill").*]
(set:$se to "skill up")
(display:"play sound")
]],[👅 Current Oral Skill: (print:$npc's "oral skill") / 10])
]
($show_tooltip:[(link:"Improve Sexual Stamina")[
(set:$npc's stamina to it + 1)
(display:"save npc male")
(replace:?bonus)[*Sexual stamina increased to (print:$npc's stamina).*]
(set:$se to "skill up")
(display:"play sound")
]],[⚡ Current Sexual Stamina: (print:$npc's "stamina")])
($show_tooltip:[(if:$npc's fitness < 10)[
(link:"Improve Fitness")[
(set:$npc's fitness to it + 1)
(display:"save npc male")
(replace:?bonus)[*Fitness increased to (print:$npc's fitness). They will now be able to use sex positions that require higher fitness.*]
(set:$se to "skill up")
(display:"play sound")
]
]],[💪 Current Fitness: (print:$npc's "fitness") / 10])
($show_tooltip:[(link:"Increase Possible # of Sex Positions")[
(set:$npc's "position limit" to it + 1)
(display:"save npc male")
(replace:?bonus)[*Number of possible passive positions in NPC inventory increased to (print:$npc's "position limit"). (Note that positions are still limited by fitness and roughness.)*]
(set:$se to "skill up")
(display:"play sound")
]],[Current # of Sex Positions: (print:$npc's "position limit")])
($passage_tags:"npc_training")
]<bonus|
</div>
](else:)[
<div class='options'><span class='shadow'>You can't improve his stats, since he wasn't satisfied enough.</span></div>
]
[<div class='options'><mark>(text-style:"fade-in-out")[Checking for unlockable sex positions...]</mark></div>]<new_position|
(live:0.1s)[(display:"check for new positions")(stop:)]
(live:2s)[
(replace:?new_position)[{
(if:$found is "true")[
(set:$position_inventory's (text:$character's id) to $position_inventory's (text:$character's id) + (a:$unlocked_position))
(replace:?new_position)[{
<div class='options'><mark>(text-style:"fade-in-out")[New Active sex position unlocked!]</mark></div>
(print:$select_position's "video full")
(set:$unlocked_ids to (a:))
(for: each _owned_position, ...($position_inventory's (text:$character's id)))[(set:$unlocked_ids to it + (a:_owned_position's id))]
(display:"position stats")
}]
](else:)[
<div class='options'><mark>(text-style:"fade-in-out")[No new positions earned... train yo skills!]</mark></div>
]
}]
(stop:)
]
(unless:$cum_text is 0)[(if:$cum_text contains "clothes" and (datanames:$outfit) contains "colors")[
(display:"cum on clothes")
(if:(datanames:$outfit) contains "image")[<div class='top_left_pic'>(print:$outfit's "image")</div>]
]]
(nl:2)
(display:"proposition sex check shame")
(if:$orgasms > 0)[(set:$character's "arousal" to 0)(display:"refresh stats")]
<div class='options'>
(set:$next to "advance time")
(display:"masculinity crisis link")
</div>
(display:"location and time")
}{
(if:(twist:1,2) is 1)[
(set:$cum to (twirl:"cum","jizz","nut","sperm"))
(if:$commenter is "female")[
(if:$npc_type is "coworker")[
"(twirl:"Wow, she's really walking around with that on her face?","Is that seriously what I think it is on her face?","Looks like she had an interesting encounter earlier...","Oh my gosh, I can't believe she's just strolling around like that!","Is that... you know... on her face?","Can you believe she's just walking around with that on her face?","I can't believe she's showing her face like that in public.","Is she really walking around with that on her face at work?","She must be really bold to just walk around like that.","I can't believe she's just casually walking around with that on her face.")(if:(twist:1,2) is 1)[ (twirl:"Eww","Gross","Yuck","Disgusting","Ugh","Oh my gosh","Girl","Ew","What a way to be","What a scene","Unbelievable","No shame at all")(twirl:"...","!","!!")]"(if:(twist:1,2) is 1)[ You (twirl:"overhear","hear","notice") (twirl:"some colleagues","a couple of saleswomen","a group of coworkers") talking about you. ](else:)[ (twirl:"A group of colleagues","A couple of saleswomen","Some coworkers","A group of female coworkers","Some colleagues")(print:" ")(twirl:"are staring at you","are staring at you","are gawking at you","are talking about you"). (if:(twist:1,2) is 1)[(set:$load to (twirl:"the mess on your face","your cum-stained face","the evidence on your face","your not-so-clean face","your cum-glazed face","your cum-covered face","your cum-soaked face"))(twirl:"Did they notice $load?","They may have noticed $load...","They may have noticed...","Maybe they noticed $load.","Maybe because of $load.")]]
(set:$gain to 1)(display:"gain job sexual reputation")
](else:)[
"(twirl:"Looks like *she's* popular with the guys!","Looks like she made some friends...","Oh my god, how can she just walk around like that?","Oh em gee, how can she walk around in public with $cum on her face?","Is that... $cum... all over her face?","Is that some guy's *$cum* on her face??","Is that $cum on her face?","Is she really walking around with $cum on her *face*?","Oh fuck, that totally looks like $cum on her face. Really hope it isn't...","Oh em gee, it looks like she has *$cum* on her *face!*")(if:(twist:1,2) is 1)[ (twirl:"Eew","Gross","Yuck","Disgusting","Ugh","Oh my GOD","Girl","Ew","What a slut","What a whore","Total whore","Shameless whore")(twirl:"...","!","!!")]"(if:(twist:1,2) is 1)[ You (twirl:"overhear","hear","notice") (twirl:"some girls","a couple girls","a group of girls") talking about you. ](else:)[ (twirl:"A group of girls","A couple girls","Some girls","A group of women","Some girls") (twirl:"are staring at you","are staring at you","are gawking at you","are talking about you"). (if:(twist:1,2) is 1)[(set:$load to (twirl:"the mess on your face","your cum-stained face","the cum on your face","your inseminated face","your spermy face","your jizz-caked face","your nut-blasted face"))(twirl:"Did they notice $load?","They may have noticed $load...","They may have noticed...","Maybe they noticed $load.","Maybe because of $load.")]]]
](else-if:$commenter is "male")[
(if:$npc_type is "coworker")[
(set:$text to (twirl:"before","after"))(if:$text is "before")[(twirl:"A group of male colleagues","Some salesmen","A couple of guys","Some coworkers","A few colleagues")(print:" ")(twirl:"seem to be staring at you","are looking at you","seem like they're talking about you","are gawking at you from afar","are giving you *looks*").(print:" ")] (unless:(twist:1,3) is 1)["(twirl:"Dear god","Yo what the FUCK","Holy shit","Fuckkk","Holy moly","Jeeeez")(twirl:",","...")(set:$cum to (twirl:"some dude's jizz","some dude's load","freaking sperm","some guy's cum","cum","some bastard's nut")) (if:(twist:1,2) is 1)[(set:$slut to (twirl:"slut","whore","thot","cum dumpster","hoe","Athanasian wench","slut","whore","thot","thot"))(twirl:"check out the $slut.","check her out. What a $slut.","look at that $slut.") (twirl:"She's got $cum all over her face.","Looks like she made a friend.","She got nutted on, does she even know?","Is that $cum on her face?","What's that on her face??")](else:)[(twirl:"I can't believe she's walking around like that.","I think the stupid bitch doesn't know she's got $cum on her face... haha.","I really think that's $cum on her face!","That can't really be $cum on her face, right?")]"] (if:$text is "after")[(twirl:"You hear ","You overhear") (twirl:"a group of male colleagues","some salesmen","a couple of guys","some coworkers","a few colleagues") (twirl:"whispering about you","talking about you","gawking at you","grinning at you and pointing","chuckling and pointing at you").(print:" ")]
(set:$gain to 1)(display:"gain job sexual reputation")
](else:)[
(set:$text to (twirl:"before","after"))(if:$text is "before")[(twirl:"A group of guys","Some guys","A couple dudes","Some guys","A couple guys")(print:" ")(twirl:"seem to be staring at you","are looking at you","seem like they're talking about you","are gawking at you from afar","are giving you *looks*").(print:" ")] (unless:(twist:1,3) is 1)["(twirl:"Dear god","Yo what the FUCK","Holy shit","Fuckkk","Holy moly","Jeeeez")(twirl:",","...")(set:$cum to (twirl:"some dude's jizz","some dude's load","freaking sperm","some guy's cum","cum","some bastard's nut")) (if:(twist:1,2) is 1)[(set:$slut to (twirl:"slut","whore","thot","cum dumpster","hoe","Athanasian wench","slut","whore","thot","thot"))(twirl:"check out the $slut.","check her out. What a $slut.","look at that $slut.") (twirl:"She's got $cum all over her face.","Looks like she made a friend.","She got nutted on, does she even know?","Is that $cum on her face?","What's that on her face??")](else:)[(twirl:"I can't believe she's walking around like that.","I think the stupid bitch doesn't know she's got $cum on her face... haha.","I really think that's $cum on her face!","That can't really be $cum on her face, right?")]"] (if:$text is "after")[(twirl:"You hear ","You overhear") (twirl:"a group of guys","some guys","a couple dudes","some guys","a couple guys") (twirl:"whispering about you","talking about you","gawking at you","grinning at you and pointing","chuckling and pointing at you").(print:" ")]]]](else:)[(if:(twist:1,2) is 1)[(twirl:"People are giving you strange looks.","Oh shit... they may have noticed the mess on your face.","A lot of people are giving you the side-eye.","You get a lot of stares...","You're getting a lot of looks...","A lot of people are looking at you...")](else:)[(if:$commenter is "female")[(twirl:"Some girls are whispering among themselves... talking about you?","A group of girls giggle when they see you, and not in a nice way.","Some girls laugh at your messed-up face.","You hear some girls giggling. At you?")](else:)[(twirl:"Some guys","A group of guys","A couple guys") (twirl:"chuckle when they see you","laugh amongst themselves when they see you","start pointing when they see you","seem to be talking about you").]]]
}{
(if:(is_fem:))[(if:$trigger is "butt")[(display:"overheard butt")]
(if:$trigger is "breasts")[(display:"overheard breasts")]
(if:$trigger is "cum")[(display:"overheard cum")]
(if:$trigger is "clothes")[(display:"overheard clothes")]
(if:$trigger is "reputation")[(display:"overheard job sexual reputation")]
(if:$commenter is "male")[
(if:(twist:1,2) is 1)[(set:$se to "male chuckle " + (text:(twist:1,4)))(display:"play sound")](else-if:$commenter is "female")[
(set:$se to "female chuckle " + (text:(twist:1,4)))(display:"play sound")]]
(display:"refresh stats")
(nl:1)
(display:"overheard reaction")]
}{
(if:$npc_type is "coworker")[
(display:"describe butt")
(if:$commenter is "female")[(if:(twist:1,2) is 1)["(twirl:"I wish I had an ass like that.","Look at her butt, I should do more squats...","Her butt is just so well-defined...","She must get a lot of attention with a figure like that.","See, that's the kind of shape I want. Toned and curvy. One day...","Do you think $your_name does pilates?","Ugh, I'm a bit envious of her butt, I gotta admit...","Sheesh, I need to up my workout game.")" You (twirl:"overhear","hear","notice") (twirl:"some female coworkers","a couple of female colleagues","a group of women at work") talking about you in hushed tones. ](else:)[ (twirl:"A pair of female coworkers","A couple of saleswomen","Some female colleagues","A couple saleswomen","Some female coworkers") (twirl:"are discreetly glancing at your figure","are staring at you","are admiring your booty","are having a hushed conversation").]]
(if:$commenter is "male")[(set:$text to (twirl:"before","after"))(if:$text is "before")[(twirl:"A group of male coworkers","Some guys at work","A couple of male colleagues","Some salesmen","A couple of guys")(print:" ")(twirl:"seem to be checking you out discreetly","look like they're admiring your figure","seem like they're talking about you in hushed voices","are appreciating your shape from afar","are giving you subtle glances").(print:" ")] (unless:(twist:1,3) is 1)["(twirl:"Wow, just wow","Man, look at that","Impressive, isn't it?","Can't deny that")(twirl:",","...")(print:" ")(twirl:"What a figure. Bet $your_name does a lot of squats...","Do you think she'd mind if I asked for her gym routine? Or is that too obvious?","She's definitely making an impression around here.","I wonder what her secret is?","$your_name must have a really dedicated lower-body fitness routine.","I'm not usually one to comment, but that's a nice ass.","You don't see an ass like that everyday. At least on days when $your_name doesn't come in...","I always thought I was more of a face guy... but look at that figure...","Butts like that make me want to each a peach.","That's what I call a well-proportioned ass.")"] (if:$text is "after")[(twirl:"You hear ","You overhear") (twirl:"a group of male coworkers","some guys at work","a couple of male colleagues","some male coworkers","a couple of men at work") (twirl:"checking you out discreetly","talking about you in hushed voices","admiring you","appreciating your $butt","sharing impressed glances and quiet comments about your $butt").(print:" ")]]
(if:($outfit's "reveals" contains "asscheeks" or $outfit's "reveals" contains "butt" or $outfit's "tags" contains "easy access skirt" or $outfit's "tags" contains "easy access dress") and $outfit's "sluttiness" > (twist:4,9))[(set:$gain to 1)(display:"gain job sexual reputation")]
](else:)[
(if:$commenter is "female")[(if:(twist:1,2) is 1)["(twirl:"I wish I had an ass like that.","Look at her butt, I should do more squats...","Her butt is just so big... she must be really popular.","She must be popular with the guys, with an ass like that.","See, that's the kind of butt I want. Big and round. One day...","Do you think she got a BBL?","Ugh, I'm jealous of that girl's ass...","Sheesh, I need a butt like that.","Damn, if I had a booty like that, I'd never wear pants again.","Look at that caboose, she must need a wide load sign.","Her ass could have its own zip code.","Don't you think she's flaunting it a bit too much?","She's certainly not shy about showing off her assets.","Her butt is like two planets in orbit.","She must break hearts, and chairs, with that booty.","I bet she can't even find jeans that fit properly.","It's like she's carrying two full moons back there.","Her ass is so huge! It can't be real right?")" You (twirl:"overhear","hear","notice") (twirl:"some girls","a couple girls","a group of girls") talking about you. ](else:)[ (twirl:"A group of girls","A couple girls","Some girls","A group of women","Some girls") (twirl:"are staring at your body jealously","are staring at you","are admiring your body","are talking about your butt").]]
(if:$commenter is "male")[(set:$text to (twirl:"before","after"))(if:$text is "before")[(twirl:"A group of guys","Some guys","A couple dudes","Some local fuckbois","Some guys","A couple guys")(print:" ")(twirl:"seem to be checking you out","look like they're checking you out","seem like they're talking about you","are admiring you from afar","are giving you looks").(print:" ")] (unless:(twist:1,3) is 1)["(twirl:"Whoa whoa","Yo","Sweet lawd","Fuckkk")(twirl:",","...") (twirl:"dump truck alert! Check it out!","do you think she'd sit on my face if I asked nicely?","I'd shove my face in that...","Lord have mercy, that is a fine ass she has right there.","that girl's ass has me breaking my neck...","I'd love to tap an ass like THAT","clothing should be forbidden on girls like that, we need to see that ass...","I would totally drain my balls in HER.","would not pull out of that kinda ass. No way.","I always thought I was more of a boob guy... but look at that butt...","butts like that make me glad to be alive.","THAT is why I am an ass man. Magnificent!")"] (if:$text is "after")[(twirl:"You hear ","You overhear") (twirl:"a group of guys","some guys","a couple dudes","some local fuckbois","some guys","a couple guys") (twirl:"checking you out","talking about you","admiring you from afar","appreciating the junk in your trunk","grinning at you and pointing at your ass","chuckling and pointing at you").(print:" ")]]
]
}{
(if:$npc_type is "coworker")[
(set:$tits to (twirl:"cans","jugs","milkers","tits","boobs","titties"))
(if:$commenter is "female")[(set:$tits to (twirl:"tits","boobs","knockers","tits","jugs"))(if:(twist:1,2) is 1)["(twirl:"I wish I had $tits like $your_name.","Look at $your_name's $tits, so nice...","Those $tits... $your_name must be really popular.","$your_name must be popular with the guys, with $tits like that.","See, those are the kind of $tits I want, gonna get em done...","Do you think $your_name's are real?","Ugh, I'm jealous of $your_name's $tits...","Sheesh, I need $tits like $your_name. My boyfriend would never leave me,","Why can't I have $tits like $your_name's?")" You (twirl:"overhear","hear","notice")(print:" ")(twirl:"some female coworkers","a couple female colleagues","a group of women coworkers")(print:" ")talking about you in hushed tones. ](else:)[ (twirl:"A group of female coworkers","A couple female colleagues","Some women coworkers","A group of women","Some female coworkers") (twirl:"are staring at your body jealously","are staring at you","are admiring your body","are talking about your $tits").]]
(if:$commenter is "male")[(set:$text to (twirl:"before","after"))(if:$text is "before")[(twirl:"A group of male coworkers","Some guys at work","A couple male colleagues","Some male coworkers","A couple of men at work")(print:" ")(twirl:"seem to be checking you out","look like they're checking you out","seem like they're talking about you","are admiring you from afar","are giving you looks").(print:" ")] (unless:(twist:1,3) is 1)["(twirl:"Whoa whoa","Yo","Sweet lawd","Man, oh man")(twirl:",","...") (twirl:"milk truck alert! Check out $your_name!","do you think $your_name would let me motorboat her if I asked REALLY nicely?","I'd shove my face in $your_name's $tits...","Lord have mercy, $your_name has a fine pair of $tits right there.","$your_name's $tits got me breaking my neck...","I'd love to stick my cock between $your_name's $tits","clothing should be forbidden on girls like $your_name, we need to see those $tits out...","I would totally drain my balls in $your_name. Just sayin'.","would not pull out. No way. $your_name's $tits can feed my children anyday.","I always thought I was more of a butt guy... but look at $your_name's $tits...","$tits like $your_name's make me glad to be alive.","THAT is why I am a boobs man. $your_name's $tits are magnificent!")"] (if:$text is "after")[(twirl:"You hear ","You overhear") (twirl:"a group of male coworkers","some salesmen","a couple male colleagues","some male coworkers","a couple of guys") (twirl:"checking you out","talking about you","admiring you from afar","appreciating your $tits","grinning at you and pointing at your $tits","chuckling and pointing at you").(print:" ")]]
(if:($outfit's "reveals" contains "cleavage" or $outfit's "reveals" contains "breasts") and $outfit's "sluttiness" > (twist:4,9))[(set:$gain to 1)(display:"gain job sexual reputation")]
](else:)[
(set:$tits to (twirl:"cans","jugs","milkers","tits","boobs","titties"))
(if:$commenter is "female")[(set:$tits to (twirl:"tits","boobs","knockers","tits","jugs"))(if:(twist:1,2) is 1)["(twirl:"I wish I had $tits like that.","Look at her $tits, so nice...","Those $tits... she must be really popular.","She must be popular with the guys, with $tits like that.","See, those are the kind of $tits I want, gonna get em done...","Do you think they're real?","Ugh, I'm jealous of that girl's $tits...","Sheesh, I need $tits like that. My boyfriend would never leave me,","Why can't I have $tits like hers?")" You (twirl:"overhear","hear","notice")(print:" ")(twirl:"some girls","a couple girls","a group of girls")(print:" ")talking about you. ](else:)[ (twirl:"A group of girls","A couple girls","Some girls","A group of women","Some girls") (twirl:"are staring at your body jealously","are staring at you","are admiring your body","are talking about your rack").]]
(if:$commenter is "male")[(set:$text to (twirl:"before","after"))(if:$text is "before")[(twirl:"A group of guys","Some guys","A couple dudes","Some local fuckbois","Some guys","A couple guys")(print:" ")(twirl:"seem to be checking you out","look like they're checking you out","seem like they're talking about you","are admiring you from afar","are giving you looks").(print:" ")] (unless:(twist:1,3) is 1)["(twirl:"Whoa whoa","Yo","Sweet lawd","Fuckkk")(twirl:",","...") (twirl:"milk truck alert! Check it out!","do you think she'd let me motorboat her if I asked nicely?","I'd shove my face in those...","Lord have mercy, that is a fine pair of $tits she has right there.","that girl's $tits got me breaking my neck...","I'd love to stick my cock between those $tits...","clothing should be forbidden on girls like that, we need to see those $tits out...","I would totally drain my balls in HER.","would not pull out. No way. Those $tits can feed my children anyday.","I always thought I was more of a butt guy... but look at those $tits...","$tits like that make me glad to be alive.","THAT is why I am a boobs man. Magnificent!")"] (if:$text is "after")[(twirl:"You hear ","You overhear") (twirl:"a group of guys","some guys","a couple dudes","some local fuckbois","some guys","a couple guys") (twirl:"checking you out","talking about you","admiring you from afar","appreciating your breasts","grinning at you and pointing at your rack","chuckling and pointing at you").(print:" ")]]]
}{
}{
(if:(datanames:$outfit) contains "image")[(display:"display outfit")]
(set:$text to "negative")
(if:$npc_type is "coworker")[
(set:$gain to 0)
(if:$commenter is "female")[
(if:$outfit's "tags" contains "boobs fall out" and (twist:1,2) is 1)[(set:$gain to 1)
"(twirl:"If I wore that to work, I'd be terrified my boobs would fall out.","Isn't $your_name afraid of a wardrobe malfunction in the office?","Her boobs don't seem secure in that outfit.","I'd be scared to wear that to the office, my boobs might pop out at any moment.","That outfit is a bit risky for work, don't you think?","I wonder if $your_name gets more attention with that outfit.","The guys at the office must have a hard time focusing with her wearing that.","Wow, she's really giving the salesmen a free show.","I bet she's trying to get ahead with that outfit,","I can't believe she wears that to work, it's so revealing!")" You (twirl:"overhear some colleagues chatting","hear a coworker say","you overhear some coworkers chatting about your outfit").
](else-if:($outfit's "emphasizes" contains "butt" or $outfit's "emphasizes" contains "asscheeks") and (twist:1,2) is 1)[
"(twirl:"$your_name has a nice butt, but that outfit might be too revealing for work.","She's got a great tushy, but that outfit might not be the best choice for the office.","$your_name's ass looks great in that, but it's a bit too revealing for work.","Her ass looks amazing in that, but is it really suitable for work?","I can't stop looking at her butt! That outfit is something, but maybe not the best for work.","Wow, look at $your_name's butt, it's like so big, but is it suitable for the workplace?","That outfit really accentuates her figure, but is it too much for the office?","I bet the guys at work have a hard time concentrating when she wears that.","I wonder if she chose that outfit to make an impression on the bosses.","I can't imagine wearing something like that to work, but she pulls it off.")" You (twirl:"overhear some saleswomen chatting","hear another saleswoman say","you overhear some coworkers chatting about your outfit").
](else-if:($outfit's "emphasizes" contains "lots of cleavage") and (twist:1,2) is 1)[(set:$gain to 1)
"(twirl:"I wish I could show off cleavage like that, but maybe not at work.","$your_name likes displaying her cleavage, but is it appropriate for the office?","That's so low-cut, is that really suitable for work?","That's a lot of cleavage she's showing off, but is it professional?","I can't believe she wears that low-cut outfit to work.","That outfit must be distracting for the guys at the office.","I wonder if she wears that to make an impression on the bosses.","I bet she's trying to get ahead with that outfit.","The guys at the office don't deserve to see me in something like that!","Wow, she's really giving the salesmen a free show with that outfit.")" you (twirl:"overhear some colleagues chatting","hear a coworker say","you overhear some coworkers chatting about your outfit"). "(twirl:"Wish I had that kind of confidence.","I bet guys have a hard time focusing around her.","I hope she's not expecting too much eye contact, but it might not be the best choice for work.")
](else-if:(checkdm:$outfit,"style","is","cute") and (twist:1,2) is 1)[
"(twirl:"Oh my god, $your_name looks so cute in that outfit!","Gosh, that outfit is so cute!","That is such a cute outfit, oh my god,","I love her outfit, it's really adorable,","$your_name looks totally adorable in that, but is it professional enough for work?","I wonder if that cute outfit is suitable for the office.","That outfit is so cute, but maybe a bit too casual for work.","I can't believe she can pull off such a cute outfit at work.","It's nice to see someone wearing something different at the office.","Her outfit is adorable, but I wonder how the bosses feel about it.")" you (twirl:"overhear some colleagues chatting","hear a coworker say","you overhear some coworkers chatting about your outfit").(set:$text to "positive")
](else-if:(checkdm:$outfit,"style","is","slutty") and (twist:1,2) is 1)[(set:$gain to 1)
"(twirl:"That outfit really says slut, but is it office-appropriate?","I can't believe she dresses like that at work...","I can't believe girls actually dress like sluts in the office,","$your_name thinks wearing that will get her all the attention at work...","Isn't she cold, wearing that at work?","I wonder if she chose that outfit to make an impression on the bosses.","I bet she's trying to get ahead with that outfit.","The guys at the office don't deserve to see me in something like that!","Wow, she's really giving the salesmen a free show.","I can't imagine wearing something like that to work, but she pulls it off.")" you (twirl:"overhear some colleagues chatting","hear a coworker say","you overhear some coworkers chatting about your outfit").
](else-if:$outfit's "price" > 200 and (twist:1,3) is 1)[
(set:_outfit to $outfit's "description")
"(twirl:"Oh my god, I saw that outfit in a high-end store the other day, it's so expensive!","See $your_name's _outfit? I bet it was pricey,","Where do people get the money to buy outfits like that?","Oh my god, check out $your_name's _outfit - I saw it on sale at an expensive store the other day,","I wonder how many extra hours she had to work to afford that outfit?")" you (twirl:"overhear some colleagues chatting","hear a coworker say","you overhear some women chatting about your pricey outfit").
](else-if:$outfit's "sluttiness" > 5 and (words:$outfit's "description") contains "bikini")[
"(twirl:"That's the kind of outfit you can only pull off at the beach, not at WORK.","Why go to the beach, when there are sluts like $your_name who'll wear bikinis to WORK! I swear, only in Summer City...","Dressing in a BIKINI is not suitable for the office.","That's a great outfit, but it really isn't appropriate for the office.","Damn, she's got a nice body, but that BIKINI is not suitable for work. What is wrong with people?","Oh my god, I want a bikini like that - but maybe not for the office...","I can't believe she's wearing something like that at work.","I wonder how the bosses feel about her wearing a fucking bikini to work. Such a male-dominated company...","I bet she's trying to get ahead with that outfit.","The guys at the office don't DESERVE to see me in something like that!")" you (twirl:"overhear some saleswomen chatting","hear a woman say","you overhear some coworkers chatting about your outfit").
](else-if:(checkdm:$outfit,"style","is","elegant") and (twist:1,2) is 1)[
"(twirl:"God, $your_name is so elegant...","God, I wish I could dress up classy like that.","Oh my god, that looks good on her...","I bet she's a really classy person...","That outfit is so elegant, but does it fit the office dress code?","I wonder if that elegant outfit is suitable for the office.","I can't believe she can pull off such an elegant outfit at work.","It's nice to see someone wearing something different at the office.","Her outfit is so elegant, but I wonder how the bosses feel about it.","I hope her outfit doesn't make the rest of us look bad!")" you (twirl:"overhear some colleagues chatting","hear a coworker say","you overhear some coworkers chatting about your outfit"). (set:$text to "positive")
](else-if:$outfit's "sluttiness" > 6 and (twist:1,2) is 1)[
(set:_whore to (twirl:"whore","slut","ho","thot"))(set:$gain to 1)
"(twirl:"Look at that _whore","Oh my god, look at her","Jeez, look at her","Check out the _whore")(twirl:",","!")" (twirl:"you hear some colleagues whispering","you hear a coworker whisper to her friend","you overhear a coworker saying"). "(twirl:"Where does she think she is, a brothel?","I would never go to work dressed like that.","Who picked her outfit?","She's wearing something right out of a porn game or something.","Doesn't she have any sense of professionalism?","I bet she thinks wearing that will get her a promotion.","You wouldn't catch me wearing that to work, that's for sure.","Can you believe she'd wear that to the office? I'd be absolutely mortified.","Though I can't say I blame her for wearing that with her figure.","Do you think her family knows she dresses like that, or are they sluts too?","Is she late for a porno shoot or something?")"
](else-if:$outfit's "sluttiness" > 4)[
"(twirl:"I wish I had that kind of confidence to wear that to work,","I wish I felt confident enough to wear that at the office...","If only I had a body like that, I would show it off too, but not at work.","If I had that kind of body... damn,","She dresses provocatively, but honestly is pulling it off,","Damn girl, that's a bold outfit choice for work. Power to her, I guess,","Oh my god, she's really showing off her assets, I wonder who she's trying to impress?","I wonder if she gets off from wearing that to work,","It's crazy that people in this office dress like that,","I'd just never feel comfortable wearing that to work. I wish I could, but I can't...","Geez, the guys at the office must love her...")" you (twirl:"overhear some colleagues chatting","hear a coworker say","overhear some coworkers chatting about your outfit").
](else-if:(checkdm:$outfit,"style","is","relaxed"))[
"(twirl:"Some people don't care if they look like they just rolled out of bed at work...","Some people don't put much effort in their work attire...","Some people just don't care about their appearance at the office,","I can't believe she's wearing something so casual to work.","Does she think this is a weekend hangout or the office?","That outfit looks too relaxed for a professional environment.","She must not take her job seriously if she dresses like that.","I wonder if she'll get in trouble for wearing such a casual outfit.","Can't believe she's wearing that to work, it's so laid-back.")" you (twirl:"overhear some colleagues chatting","hear a coworker say","you overhear some coworkers chatting about your outfit").
](else-if:(checkdm:$outfit,"style","is","modest"))[
"(twirl:"THAT'S how more saleswomen should be dressing around here, if you ask me,","It's so refreshing to see other people dressing modestly at work,","It's honestly nice to see coworkers dressing modestly every once in a while.","That's a really modest outfit, but does it fit our office style?","I wonder if that modest outfit makes her feel more professional.","It's nice to see someone not showing off too much skin at the office.","Her outfit is so modest, I wonder if she's trying to make a statement.","Maybe she's trying to be taken more seriously by dressing modestly.","I hope she doesn't think the rest of us are dressing inappropriately.")" you (twirl:"overhear some colleagues chatting","hear a coworker say","overhear some coworkers chatting about your outfit").
](else:)[
(twirl:"Some of your female colleagues are gossiping about you, but you can't quite catch what they're saying.","You hear a couple of saleswomen whispering and glancing your way, are they talking about your outfit?","You overhear a group of colleagues chatting, and they keep looking at you with raised eyebrows.","A coworker whispers something to her friend, and they both giggle, looking at you.","You catch a few female colleagues exchanging knowing looks as they discuss something, and you're pretty sure it's about you.","You see a pair of saleswomen smirking and whispering about you, then quickly looking away.","Some colleagues are giggling and pointing discreetly at your outfit.","You hear a coworker say your name, followed by hushed whispers and sly glances.","A couple of saleswomen seem to be gossiping about you, giving each other judgmental looks.","You notice a few colleagues rolling their eyes while discussing you.","You catch some female coworkers snickering about you and looking in your direction.","A group of colleagues are gossiping about you, with occasional glances and raised eyebrows.","You walk past some coworkers who suddenly stop talking and stare at you, whispering to each other.","Some of your female colleagues are huddled together, murmuring about you.","You overhear a coworker say something about your outfit, followed by hushed giggles.","A few saleswomen are discussing you, trying to be discreet but failing to hide their smirks.","You notice a couple of colleagues exchanging judgmental looks as they talk about you.","Some coworkers are whispering about you, rolling their eyes and shaking their heads.","You see a group of saleswomen chatting, and they keep shooting glances your way.","You overhear a couple of colleagues talking about you in hushed tones, trying to hide their amusement.","Some female coworkers are pointing at you while they chat, smirking and attempting to be discreet.","You see a couple of colleagues laughing quietly about something as they look at you.","You notice a few of your coworkers giving each other knowing looks as they discuss you.","A group of saleswomen are exchanging glances and whispering as they talk about you.","You can't help but notice some colleagues giving each other sly grins as they discuss you.","You overhear some coworkers gossiping about you, attempting to hide their laughter.","A few of your colleagues are talking about you in hushed tones, giving each other judgmental looks.","You notice some coworkers looking at you, trying to hide their amusement as they chat.","You walk past a group of colleagues who suddenly stop talking and stare at you, whispering among themselves.","Some coworkers are discussing you, chuckling quietly and trying not to be too obvious.","You see a few saleswomen smirking at each other as they talk about you, doing their best to be discreet.","You overhear a couple of your female colleagues whispering about you, snickering and trying to hide it.")
]](else:)[
(if:$outfit's "tags" contains "boobs fall out" and (twist:1,2) is 1)[
(set:_top to $outfit's "top")(set:$gain to 1)
"(twirl:"Heh, I wanna be there when $your_name's tits fall out of that _top,","How long do you think that _top's gonna hold on $your_name? Heh.","Jiggle jiggle. We might see $your_name's titties at any moment...","Heh, I wonder when that _top's gonna give up on $your_name, I wanna be there when it does...","Man, that _top on $your_name is a wardrobe malfunction waiting to happen.")" you overhear some guys (twirl:"saying","ogling your outfit").
](else-if:($outfit's "emphasizes" contains "butt" or $outfit's "emphasizes" contains "asscheeks") and (twist:1,2) is 1)[
(display:"outfit bottom plurals")
"(twirl:"Dude, check out how $your_name's ass looks in $that $bottom. Dayum,","$your_name likes strutting her stuff, and showing off that ass in $that $bottom...","Man, $your_name's ass looks amazing in $that $bottom.","Look at $your_name, showing off her assets in $that $bottom.","$your_name's really flaunting it in $that $bottom, huh?","20 bucks says you won't 'accidentally' give $your_name's ass a squeeze through $that $bottom...")" you (twirl:"overhear some guys","hear some of your coworkers","hear some guys","overhear some salesmen") (twirl:"checking you out","ogling you","checking out your outfit").
](else-if:($outfit's "emphasizes" contains "lots of cleavage") and (twist:1,2) is 1)[
"(twirl:"Damn, $your_name's really showing off,","$your_name knows what us guys like, haha,","Wow, that's a lot of cleavage on $your_name.","$your_name's definitely not shy about showing off her assets, huh?","You can damn near see $your_name's nipples - think I'm in loooove!","I don't believe in miracles, but $your_name's definitely a gift, especially with that 'fashion sense'!")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling you","checking out your outfit").(set:$gain to 1)
](else-if:(checkdm:$outfit,"style","is","slutty") and (twist:1,2) is 1)[
"(twirl:"Haha, now that's how I want $your_name to dress,","Why can't all girls dress like $your_name?","I think $your_name wants some, dressing like that,","When $your_name dresses like that, you know she wants it.","$your_name's really dressing to impress, huh?","Damn, $your_name just made me look twice, check out what she's wearing.")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling you","checking out your outfit").
](else-if:$outfit's "sluttiness" > 4 and (words:$outfit's "description") contains "bikini")[
(set:$gain to 2)
"(twirl:"Damn,","Man,","Check it out,") (twirl:"$your_name's wearing a bikini to work?","I can't believe $your_name is wearing a bikini in the office.","I never thought I'd see the day $your_name wore a bikini to work.","$your_name's really pushing the dress code with that bikini.","I guess $your_name's ready for a beach day at work, huh?","Look at her, $your_name's turning the office into a beach scene with that bikini.")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling you","checking out your swimsuit").
](else-if:$outfit's "sluttiness" > 4)[
"(twirl:"Damn, $your_name's outfit is really something, huh?","Check out $your_name, totally flaunting it in that outfit.","I never thought I'd see $your_name dressed like that at work.","$your_name's sure making a statement with that outfit.","Look at that outfit on $your_name, I wonder what's the occasion.","I wonder if $your_name realizes how revealing her outfit is.")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling your outfit","talking about how you're dressed").
](else-if:(checkdm:$outfit,"style","is","elegant"))[
(set:$top to $outfit's "top")
"(twirl:"$your_name's really dressed up today. Wonder what's the occasion.","I'd love to see what $your_name has planned after work, looking all fancy.","$your_name looks like a million bucks in that outfit.","$your_name's really classing up the place, huh?","Look at $your_name, all dressed up and fancy. Must be a special day.","You think $your_name's trying to impress someone with that outfit?")" you (twirl:"overhear some guys talking about you","you hear some guys talking about you").
](else-if:(checkdm:$outfit,"style","is","modest"))[
"(twirl:"$your_name's looking pretty conservative today.","Pity about $your_name's modesty today...","$your_name's really keeping things professional with that outfit.","$your_name's outfit is giving off a 'strictly business' vibe.","Yeah, $your_name looks respectable, but you never know what's underneath.")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") talking.
](else:)[
(twirl:"Some colleagues are chatting about you with leering grins, trying to be discreet.","You hear a couple of the sales guys talking and chuckling, casting sly glances your way.","You overhear some colleagues talking, snickering and glancing at you.","Some of your male coworkers are discussing your outfit with smirks, trying not to be too obvious.","A few of the guys from sales are chuckling as they look in your direction, attempting to be discreet.","You notice some guys in the break room whispering and leering about you.","A group of salesmen are snickering as they look your way, trying to hide their amusement.","You catch a glimpse of some coworkers exchanging glances and smirking as they discuss you.","You walk past a few guys who suddenly hush their conversation as they notice you, grinning slyly.","You overhear a couple guys chuckling about you, doing their best to be discreet.","You can't help but notice a few salesmen snickering and leering at you from across the room.","You see some of your male colleagues discussing something, smirking and glancing your way.","A pair of guys from the sales team exchange knowing smiles when they see you, trying to be subtle.","You notice a few of your coworkers giving each other sly grins as they talk about you.","You catch some guys from the sales department whispering about you, smirking as they do so.","A group of your male colleagues can't seem to take their eyes off you, chuckling to themselves.","You walk past some coworkers who are glancing at you while snickering quietly.","You overhear a few guys from the sales team talking about you in hushed tones, trying to hide their amusement.","Some colleagues are pointing at you while they chat, grinning and attempting to be discreet.","You see a couple of guys from the sales team laughing quietly about something as they look at you.","You notice a few of your male coworkers smirking and snickering as they discuss you.","A group of salesmen are exchanging glances, chuckling as they talk about you.","You can't help but notice some of your coworkers giving each other knowing looks as they discuss you, snickering quietly.","You overhear some guys from the sales team gossiping about you, attempting to hide their laughter.","A few of your male colleagues are talking about you in hushed tones, grinning sleazily.","You notice some coworkers looking at you, trying to hide their amusement as they chat.","You walk past a group of sales guys who suddenly stop talking and stare at you, smirking.","Some colleagues are discussing you, chuckling quietly and trying not to be too obvious.","You see a few guys from the sales team smirking at each other as they talk about you, doing their best to be discreet.","You overhear a couple of your male colleagues whispering about you, snickering and trying to hide it.")
]]
(if:$gain > 0)[(display:"gain job sexual reputation")]
](else:)[
(if:$commenter is "female")[
(if:$outfit's "tags" contains "boobs fall out" and (twist:1,2) is 1)[
"(twirl:"If I wore that, I'd be scared my tits would fall out,","Isn't she scared of a wardrobe malfunction?","Her tits do NOT seem secure in that,","I'd be scared to wear that in public, my tits might pop out at any moment,")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit").
](else-if:($outfit's "emphasizes" contains "butt" or $outfit's "emphasizes" contains "asscheeks") and (twist:1,2) is 1)[
"(twirl:"She has a really nice butt, and that outfit shows it off,","She's got a great tushy and she knows it, that's why she's showing it off,","Her ass looks great in that, dayum,","Goddamn her ass looks good in that,","I'm straight, and I can't stop looking at her ass! Must be that outfit,","Like Oh My Gawd, look at her butt, it's like soo big!")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit").
](else-if:($outfit's "emphasizes" contains "lots of cleavage") and (twist:1,2) is 1)[
"(twirl:"I should show off more cleavage like that,","She likes displaying her cleavage,","That's sooo low-cut,","Dayum that's a lot of cleavage she's showing off,")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit"). "(twirl:"Wish I had that kinda confidence.","I bet guys rarely make eye contact with her...","I hope she's not expecting too much eye contact!")"
](else-if:(checkdm:$outfit,"style","is","cute") and (twist:1,2) is 1)[
"(twirl:"Oh my god, she looks so cute in that!","Gosh, that outfit is so cute!","That is such a *cute* outfit, oh my god,","I love her outfit, it's really adorable,","She looks totally adorable in that...")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit").(set:$text to "positive")
](else-if:(checkdm:$outfit,"style","is","slutty") and (twist:1,2) is 1)[
"(twirl:"That outfit really says *slut*,","I can't believe she dresses like that...","I can't believe girls actually dress like sluts,","She thinks wearing that will get her all the attention...","Isn't she cold, wearing that?")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit"). (nl:2)
"(twirl:"Maybe that's just what guys like!","I bet guys love her though...","Bet she's making some guys' days though...","I bet the boys like it, though...")"
](else-if:$outfit's "price" > 200 and (twist:1,3) is 1)[
(set:_outfit to $outfit's "description")
"(twirl:"Oh my god, I saw that in BT the other day, it's so freaking expensive!","See her _outfit? I bet it was damn expensive,","Where do girls get the money to buy outfits like that?","Oh my god, check out her _outfit - I saw it on sale at Bonwit Teller the other day, it's freaking expensive,","I wonder how many five dollar blowjobs she had to give to earn enough for *that* outfit?")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your pricy outfit").
](else-if:$outfit's "sluttiness" > 5 and (words:$outfit's "description") contains "bikini")[
"(twirl:"That's the kind of outfit you can only pull off at the beach,","This is why guys come to the beach, to see girls like that...","This is why sluts come to the beach, dressing like that is socially acceptable!","That's a great bikini, really flaunts her body,","Damn, she's got a nice body, and that bikini really shows it off,","Oh my god, I want a bikini like that - she looks incredible,")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your bikini").
](else-if:(checkdm:$outfit,"style","is","elegant") and (twist:1,2) is 1)[
"(twirl:"God, she's elegant...","God, I wish I could dress up classy like that.","Oh my god, that looks good on her...","I bet she's a really classy person...")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit"). (set:$text to "positive")
](else-if:$outfit's "sluttiness" > 5 and (twist:1,2) is 1)[
(set:_whore to (twirl:"whore","slut","ho","thot"))
"(twirl:"Look at that _whore","Oh my god, look at her","Jeez, look at her","Check out the _whore")(twirl:",","!")" (twirl:"you hear some girls whispering","you hear a girl whisper to her friend","you overhear a girl saying"). "(twirl:"Where does she think she is, a brothel?","I would *never* go out dressed like that.","Who picked her outfit?","She's wearing something right out of a porn game or something.","Doesn't she have *any* sense of shame?","I bet she thinks wearing that will get guys' attention.","You wouldn't catch me wearing that in public, that's for sure.","Can you believe she'd wear that out? I'd be absolutely mortified.","Though I can't say I blame her for wearing that with her figure.","Do you think her mother knows she dresses like that, or is she a _whore too?","Is she late for a porno shoot or something?")"
](else-if:$outfit's "sluttiness" > 4)[
"(twirl:"I wish I had that kind of confidence,","I wish I felt confident enough to go out dressed like that...","If only I had a body like that, I would show it off too,","If I had that kind of body... damn,","She dresses like a slut but honestly is pulling it off,","Damn girl, that's a slutty outfit. Power to her, I guess,","Oh my god, she's really showing off her assets, I wonder who she's trying to attract?","I wonder if she gets off from going out like that,","It's crazy that girls in Summer City dress like this,","I'd just never feel comfortable going out like that. I wish I could, but I can't...","Geez, the guys must *love* her...")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit").
](else-if:(checkdm:$outfit,"style","is","relaxed"))[
"(twirl:"Some girls don't care if they look like they just rolled out of bed...","Some girls don't put much effort in...","Some girls just don't care about their appearance,")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit").
](else-if:(checkdm:$outfit,"style","is","modest"))[
"(twirl:"That's covering a little too much, if you ask me,","It's so refreshing to see other girls dressing modestly like that,","It's honestly nice to see girls dressing modestly every once in a while. Make guys respect your brains, not your body!")" you (twirl:"overhear some girls chatting","hear a girl say","you overhear some girls chatting about your outfit").
](else:)[
(twirl:"Some girls are chatting about you, but you're not quite sure what they're saying.","You hear a couple of girls whispering - are they pointing at you?","You overhear some girls talking, and glancing at you. What are they on about?","A girl whispers something to her friend - something about your outfit.")
]](else:)[
(if:$outfit's "tags" contains "boobs fall out" and (twist:1,2) is 1)[
(set:_top to $outfit's "top")
"(twirl:"Heh, I wanna be there when her tits fall out of that _top,","How long do you think that _top's gonna hold? Heh.","Jiggle jiggle. We might see those titties at any moment...","Heh, I wonder when that _top's gonna give up the ghost, I wanna be there when it does...")" you overhear some guys (twirl:"saying","ogling your outfit").
](else-if:($outfit's "emphasizes" contains "butt" or $outfit's "emphasizes" contains "asscheeks") and (twist:1,2) is 1)[
(display:"outfit bottom plurals")
"(twirl:"Dude, check out how her ass looks in $that $bottom. Dayum,","She likes strutting her stuff, and showing off that ass in $that $bottom...","Fuck, I wanna smack that ass so bad.","Goddamn I love the way girls' asses look in $bottom_plural,","Yo, I can't stop checking out that girl's ass, must be $that $bottom,","20 bucks says you won't 'accidentally' give her ass a squeeze through $that $bottom...")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling you","checking out your outfit").
](else-if:($outfit's "emphasizes" contains "lots of cleavage") and (twist:1,2) is 1)[
"(twirl:"Fuck, I wanna run a credit card through that cleavage,","Goddamn, I wanna bury my face in her tits,","Goddamn, she's really showing off,","She knows what us guys like, haha,","Damn, that's a lot of boobage. Yum,","Fuck, I love it when girls put themselves on display,","Damn, now *that's* how girls should dress,","You can damn near see her nipples - think I'm in loooove!","I don't believe in miracles, but damn if she isn't a gift from god, especially with *that* fashion sense!")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling you","checking out your outfit").
](else-if:(checkdm:$outfit,"style","is","slutty") and (twist:1,2) is 1)[
"(twirl:"Haha, now *that's* now I want girls to dress,","Why can't all girls dress like *that* slut?","I think *she* wants some, dressing like that,","When girls dress like that, you know they want it. And boy, they can *get* it too,","Fuck, girls dressing like that makes me happy to be alive,","Damn, that girl just made me hard, look at what she's wearing. Fuck yes,")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling you","checking out your outfit").
](else-if:$outfit's "sluttiness" > 4 and (words:$outfit's "description") contains "bikini")[
"(twirl:"Damn,","Fuck,","Goddamn,") (twirl:"this is why I love bikinis,","I love bikinis,","check out that one","check out her bikini - mmm,","look at *her*,","this is why I love bikinis,","this is why I come to the beach,","this is why I'm always at the beach, cause girls can dress like this and it's socially acceptable,","I love bikinis...")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling you","checking out your swimsuit").
](else-if:$outfit's "sluttiness" > 4)[
(set:_whore to (twirl:"ho","whore","thot","slut"))
"(twirl:"Damn, I love sluts,","I hope I never catch my daughter dressing like that,","Fuck, if I ever catch my daughter dressing like that _whore, I'll lose it,","Yo, now *that's* an outfit, fuck!","Check out that total dime piece, totally flaunting it in that outfit too,","Chicks that dress like that... definitely swallow. Haha,","Damn, I'd ask her for a link to her OnlyFans, but I'm shy,","I wish my girl dressed like that for me,","Maybe I should try asking for her number... I bet she's friendly, wearing an outfit like that...","Freak on the streets, freak in the sheets too I'll bet. Dressed like that, for sure,","Check out *that* dime piece, I wanna see what's underneath that slutty outfit,","She's wearing something right out of a porn game, seriously...","If I took X-Change, I wonder if I'd be confident enough to dress like that...","That girl's outfit is driving me wild...")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") (twirl:"checking you out","ogling your slutty outfit","talking about how you're dressed").
](else-if:(checkdm:$outfit,"style","is","elegant"))[
(set:$top to $outfit's "top")
"(twirl:"I'd love to bang a fancy girl like that...","Gentlewoman on the streets, freak in the sheets, I'll bet...","She dresses fancy, I'd love to rip that $top off her!","Nothing like ruining a rich girl's face, hahaha...","Do you think a fancy girl like that would ever look at me?","You think an elegant chick like that would ever go out with me?","Look at her, dressing up all fancy. All I can think of is what she looks like naked, haha,","She thinks she's better than us, dressed up like that,","Look at that snooty bitch,")" you (twirl:"overhear some guys talking about you","you hear some guys talking about you").
](else-if:(checkdm:$outfit,"style","is","modest"))[
"(twirl:"I wish girls revealed a little more, ya know?","I don't like this trend we're seeing, with girls bundling up so much,","Sigh, I wish she'd show off a bit more of those... assets,","I get sad when I see girls wearing too many clothes,","Yeah, she *looks* respectable, but you never know...")" you (twirl:"overhear some guys","hear some guys","hear some dudes","overhear some dudes") talking.
](else:)[
(twirl:"Some guys are chatting about you, but you're not quite sure what they're saying.","You hear a couple of guys talking - are they pointing at you?","You overhear some guys talking, and glancing at you.","Some guys are chatting and looking at you.","You overhear a couple guys chuckling about you, but you're not sure what they're saying.")
]]]
(if:$text is "positive")[(set:$options to "true")(display:"overheard clothes positive")]
}{(unless:$options is "true")[<div class='options'>(set:$options to "false")
(if:$trigger is "cum")[(link:(twirl:"How humiliating","That's embarrassing","God...","That's humiliating"))[(replace:?text)[(display:"overheard embarrassed")]]](else-if:$trigger is "clothes" and $text is "positive")[(set:$options to "true")](else:)[(link:(twirl:"Get embarrassed","That's embarrassing","Ugh","Blush","Embarrassing"))[(replace:?text)[(display:"overheard embarrassed")]]](link:(twirl:"You like the attention","You like it","It excites you","Hehe"))[(replace:?text)[(display:"overheard enjoy")]]</div>]
(if:((is_exhib:)))[(if:$outfit's "sluttiness" > 5)[(set:$gain to 1)(set:$npc to 0)(display:"gain arousal")(display:"breathing ambience")(if:(find:_memory where _memory's id is "slutty clothes") is an empty)[($remember:"slutty clothes",14,"none","none","overheard")]](else:)[(display:"exhibitionist uncomfortable reasons")(display:"exhibitionist score")(display:"exhibitionist clothes status")]]
}{
(if:$trigger is "cum")[
(set:$cum to (twirl:"cum","jizz","nut","sperm"))
(if:($exhib_check:))[(set:$memory to (find:_memory where _memory's id is "slutty clothes"))(set:$memory's npc to $npc_cum)($exhib_mood:"excited",(twirl:"Since you were spotted in public with $npc_cum's $cum on your face and it turns you on.","Because you were seen with $cum on your face and you love it.","Because people noticed the $cum on your face, which gets you going."))]
(if:$character's "masculinity" >70)[(set:$new_mood to (dm:
"mood","humiliated",
"emoji","😰",
"strength",5,
"length",3,
"cause",(twirl:"Since you were spotted in public with $npc_cum's $cum on your face.","Because you were seen with $cum on your face.","Because people noticed the $cum on your face."),
"charm buff",-2,
"intellect buff",0,
"effect text","(-2 🍀, since you'll have trouble interacting with people normally)"
))(display:"new mood")](else-if:$character's "masculinity" > 45)[(set:$new_mood to (dm:
"mood","embarrassed",
"emoji","😳",
"strength",4,
"length",3,
"cause",(twirl:"Since you were spotted in public with $npc_cum's $cum on your face.","Because you were seen with $cum on your face.","Because people noticed the $cum on your face."),
"charm buff",-1,
"intellect buff",0,
"effect text","(-1 🍀, since you'll have trouble interacting with people normally)"
))(display:"new mood")]
(display:"refresh stats")(display:$location_params's "options passage")
](else:)[
(set:$new_mood to (dm:
"mood","slightly embarrassed",
"emoji","😳",
"strength",2,
"length",1,
"cause","",
"charm buff",-1,
"intellect buff",0
))
(if:$trigger is "clothes")[(if:$commenter is "female")[(set:$new_mood's "cause" to (twirl:"Since you overheard girls talking about your clothes.","Since you heard some girls talking about your outfit.","Since some girls talked about your clothes.","Since some girls talked about your clothes."))](else:)[(set:$new_mood's "cause" to (twirl:"Since some guys were chatting about your outfit.","Since some guys were making comments about your clothes.","Since some guys were talking about your outfit.","Since some guys were ogling you."))]](if:$trigger is "butt")[(if:$commenter is "female")[(set:$new_mood's "cause" to (twirl:"Since you overheard girls talking about your ass.","Since you heard some girls talking about you.","Since some girls talked about you jealously.","Since some girls talked about your ass."))](else:)[(set:$new_mood's "cause" to (twirl:"Since some guys were ogling your ass.","Since some guys were making comments about your butt.","Since you got ogled by some guys.","Since some guys were ogling you."))]](else-if:$trigger is "breasts")[(if:$commenter is "female")[(set:$new_mood's "cause" to (twirl:"Since you overheard girls talking about your boobs.","Since you heard some girls talking about you.","Since some girls talked about you jealously.","Since some girls talked about your boobs."))](else:)[(set:$new_mood's "cause" to (twirl:"Since some guys were ogling your tits.","Since some guys were making comments about your tits.","Since you got ogled by some guys.","Since some guys were ogling you."))]]
(display:"new mood")(display:"refresh stats")(display:$location_params's "options passage")]
}{
(if:$trigger is "cum")[
(set:$cum to (twirl:"cum","jizz","nut","sperm"))
(twirl:"It should be humiliating,","It should feel degrading...","It should be super embarrassing...","It should be thoroughly humiliating,") (twirl:"but there's just something hot about walking around in public with $cum on your face.","but there's just something so exciting about being seen with $cum on your face.","but there's something about being seen with $cum on your face that makes you feel... alive.","but you feel warm and excited, rather than ashamed.")
(if:$character's "masculinity" > 90)[*(Either:"What is wrong with me?","There's something wrong with me...","Why am I behaving like this?","I can't believe I'm acting like this...")*]
](else:)[
(if:(twist:1,2) is 1 and $commenter is "male")[
(if:$character's masculinity > 90)[(twirl:"It's such a weird feeling, being ogled.","It's so strange, feeling objectified.","It's a new and odd thrill, being objectified by strangers in public.","It's a weird feeling to be objectified like this... but you kinda like it.","You feel giddy.","You feel a bit giddy.","You feel lightheaded and giddy.","It's strangely thrilling.") ](else-if:$character's masculinity > 75)[(twirl:"You're starting to really like being looked at like this.","You're starting to like being *seen*.","You're starting to like being ogled.","You're starting to actually like feling objectified.","It feels strangely... good... being objectified.")](else-if:$character's masculinity > 50)[(twirl:"You know you like getting looked at.","You have to suppress the urge to wave at the guys.","You like this!","You like getting ogled in public.","You honestly like feeling obectified.","You like being ogled.")](else:)[(twirl:"It's totally normal getting ogled like this.","This is just part of your normal life.","You love when guys look at you.","You like it when guys look at you.","You love it when guys ogle you.","You love it when guys objectify you.")]
(nl:1)]]
(if:$commenter is "female")[(set:$gain to 1)](else:)[(if:$character's "masculinity" > 50)[(set:$gain to 2)](else:)[(set:$gain to 1)]](display:"gain arousal")(nl:1)
(display:"refresh stats")(display:$location_params's "options passage")
}{
(set:$new_mood to (dm:
"mood","proud",
"emoji","😊",
"strength",1,
"length",1,
"cause","from overhearing nice things about your outfit.",
"charm buff",1,
"intellect buff",0
))
(display:"new mood")(display:"refresh stats")
}(set:$se to "alert")(display:"play sound")(print:"<img class='greyborder' src='img/npc/generic/shocked/" + (text:(twist:1,10)) + ".jpg' width='100%' height=auto>")
(print:$interrupt)(if:(twist:1,2) is 1)[ *(twirl:"Ohhh shit.","Fuck.","Fuck my life.","Oh, goddammit.")*]
"(twirl:"Holy shit!","Holy fuck!!!","Oh my GOD!")" (twirl:"he shouts.","he exclaims.") "(twirl:"What the hell is going on in here?","What the hell's going on in here???","You're... fuck! What the hell are you doing?","What are you DOING?") (twirl:"You're giving a blowjob in here??!","Get a fucking room!","That's disgusting!","I can't believe you're doing this in here!!!")" (if:($exhib_check:))[($exhib_mood:"blissful","Since you can't stop thinking about how you were caught giving a blowjob in public.")(set:$minigame's "masculinity level" to (max:40,$minigame's "masculinity level" - 10))
Having someone catch you in the act like this, it's so hot! (if:$orgasms > 0)[You just want to come again.](display:"exhibitionist check")
<div class='options'>(if:($exhib_check:))[(set:$next to "exhibitionist public orgasm")(link:"It's too much...")[(display:"change screen")]](else:)[(set:$next to "advance time")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")]</div>](else:)[(set:$new_mood to (dm:
"mood","embarrassed",
"emoji","😳",
"strength",4,
"length",3,
"cause",(twirl:"Since you were caught giving a blowjob in " + $location_params's "bj location name" + ".","Since you were caught giving a blowjob in public."),
"charm buff",-2,
"arousal buff",-1,
"intellect buff",0,
"effect text","(-1 🍀, since you'll have trouble interacting with people normally)"
))(display:"new mood")(display:"refresh stats")
(if:$npc_type is "coworker")[(set:$gain to 1)(display:"gain job sexual reputation")]
<div class='options'>(link:(twirl:"How humiliating...","Leave hastily","Beat a hasty retreat","Get outta there"))[(if:$npc's tags contains "chad" or $npc's tags contains "fuckboy" or $load is "big")[(set:$next to "proposition bj cum anyway")(display:"change screen")](else:)[(set:$next to "advance time")(display:"masculinity crisis link")]]]</div>(if:(is_bim:))[(set:$result to "fail")(print:"<img class='greyborder' src='img/characters/emotion/bimbo/" + $character's "id" + ".jpg' width='100%' height=auto>")
(if:(twist:1,2) is 1)["(twirl:"Wh- what if someone comes in and sees us? Well… I guess two is company, three’s a crowd!","Are you sure nobody is, like, watching? Cause if they are, that would be, like, super hot.","Hey wait a sec, what if someone walks in? I only have one mouth!","What if someone walks in a finds us! I bet they would be pretty turned on...","If someone say us, I wonder if they would want to join...")" you giggle. (if:$character's "masculinity" > 50)[*(twirl:"Wait... where did that come from?","Did I really just say that??","I can't believe I really said that.","Fuck, I sounded like a total bimbo right there...")*
"(twirl:"Such a slut,","What a slut,","You're cute,")" (print:$npc's "name") chuckles.]](else:)[(twirl:"You think about if someone saw you...","You think about how risky what you’re about to do is... someone could easily walk in...","Someone could easily walk in and see you...") (twirl:"but for some reason, that thought just makes you hornier.","but for some reason, it doesn't bother you. You even position your butt nicely so an observer would get a nice view.","you're simultaenously worried and turned on. You’re worried because they might not join in!")]](else:)[(print:$location_img)
"(twirl:"I... I don't think we should do this here","Err... I feel weird about doing this here.","Um, I don't think we should be doing this here.","I'm actually... er... not sure we should do this... *here*, you know?") (twirl:"I hear people outside, this is too dangerous,","People could easily walk in on us,","Someone could easily spot us,","We could get spotted!")" (twirl:"you say, nervously.","you say.","you say, eyes darting around.")(if:(twist:1,2) is 1)[ "(twirl:"Can we... put a rain check on this?","Maybe another time?","Can we do this another time?","Another time, perhaps?")"]
(if:$npc's tags contains "gentleman")["(twirl:"Of course, of course,","But of course, sweetie,","Absolutely,")" he says, zipping his pants back up. "(twirl:"I wouldn't want you to feel uncomfortable.","I don't want to impose.","It's your choice entirely.")"(set:$result to "pass")](else-if:$npc's tags contains "chad" and (twist:1,2) is 1)[(set:$result to "fail")"(twirl:"No,","Nope,","I don't care,")(if:(twist:1,2) is 1)[ (twirl:$petname,"slut","bitch",$petname,"ho",$petname,$character's "female name"),]" (twirl:"he says, dominantly.","he says sternly.","he says.") "(twirl:"It will be fine.","We'll be fine.","I want you to continue.","Start sucking.")"](else-if:$npc's tags contains "fuckboy")[(set:$result to "fail")"(twirl:"Don't worry about it, ","I wouldn't worry about that, ","Don't worry about it, ","Don't worry your pretty little head about it, ")(twirl:$petname,"slut","bitch",$petname,"ho",$petname,$character's "female name")," he says. "(twirl:"I gotta get these rocks off.","I really need this, kay?","You gotta help me out here.","You gotta suck me off.","I really need to cum.","I need this, kay?")(if:(twist:1,3) is 1)[ (twirl:"It's too much work for me to find another willing slut.","If you don't suck me off now, I'd need to go and find another hot slut, could take forever.")]"](else-if:$load is "big")[(set:$result to "fail")"(twirl:"Sorry, ","I'm sorry, ","Sorry, ")(twirl:$petname,$character's "female name")," (twirl:"he",$npc's "name") says. "(twirl:"But I got freaking blue balls here.","But I'm so backed up.","But my balls are so fucking full.","But I haven't shot a load in forever.","But I am so fucking backed up.")(if:(twist:1,2) is 1)[ (twirl:"I really need this.","I need release.","I need this.","I need relief.","I need you to do this.")]"](else:)["(twirl:"Okay","Alright","Alright","That's alright","Okay, I understand","That's fine, I understand")(twirl:",","...")" (twirl:"he",$npc's "name") (twirl:"says, disappointed.","says, crestfallen.","says, slowly.","sighs.")(set:$result to "pass")]](if:$result is "fail")[
(twirl:"He puts his hand on your head, and guides you onto his cock.","He guides your face onto his cock.","He pushes his cock between your lips.")]
<div class='options'>(if:(win:))[(link:$location_params's "home option")[(if:$location_params contains "post sex code")[(display:$location_params's "post sex code")](set:$next to $location_params's "home")(display:"next")]](else:)[(link:"Begin")[(set:$next to "blowjob transactional initialize")(set:$blowjob's "load" to $load)(display:"change screen")]]</div>(set:$character's status to "cum")(display:"refresh portrait")(set:$load to "unwilling")(display:"sex cum on face")(set:$sex_loop to "big load " + (text:(twist:1,6)))(display:"play sex loop")(twirl:"You try to get away","You try to stand up","You make a move to stand up","You try to get away","You try to cover yourself","You make a move to leave"), but (print:$npc's "name") (twirl:"stops you","shakes his head and stops you","just chuckles and puts a hand on your head, holding you down").
(if:$npc's tags contains "chad")["(twirl:"Not so fast there,","Whoa there,","Not so fast,","I don't think so,") (twirl:$character's "female name",$petname)," (twirl:"he smiles","he says").](else-if:$npc's tags contains "fuckboy")["(twirl:"Hah, I don't think so,","Hehe, don't be so quick,","Stay down,","Don't you move,") (twirl:"slut","cutie","bitch","thot",$petname,$petname,$character's "female name")," (twirl:"he grins.","he smirks.","he gives you a fuckboy grin.")](else:)["(twirl:"Sorry, I really need to cum,","Sorry, I can't stop now,","Sorry, I really need this,","Sorry, but I really need this,","Sorry, but I can't stop now,")" he says, grunting heavily.]
(print:$img)(set:$text to $text + (a:"interrupted"))(display:"register receive facial")(if:$character's reluctance > 6 and $character's masculinity > 70)[($remember:"cum facial",2 * $character's reluctance,$npc's name,$img,"dream","interrupted","dream facial choice")]
(display:"cum face description")
(if:$character's masculinity > 75)[(twirl:"You whimper,","You whine,","You sob,") (twirl:"miserably","blushing","dejectedly"), as the (print:(lowerfirst:$npc's "unfamiliar name"))'s cum (if:$text contains "chin")[dangles lewdly from your chin](else-if:$text contains "eyes")[starts making your eyes really sting](else-if:$text contains "tongue")[defiles your taste buds](else:)[drips down your face].(if:$npc's tags contains "chad")[
"(twirl:"Job well done, don't you think?","Nicely painted, don't you think?","She looks better this way, don't you think?")" (print:$npc's "name") grins at the intruder.](else-if:$npc's tags contains "fuckboy")[
"(twirl:"Sluts look better this way, dontcha think?","How do you like my little painted slut?","Doesn't she look better like this?")" (print:$npc's "name") grins asks the intruder with a cocky grin.](else:)[]
"(twirl:"Good... god...","Holy...","I can't believe this...")" the other man leaves quickly, but not before getting a good look at you.](if:$cum_text contains "clothes" and (datanames:$outfit) contains "colors")[(nl:2)(display:"cum on clothes")(if:(datanames:$outfit) contains "image")[<div class='top_left_pic'>(print:$outfit's "image")</div>]](if:$npc_type is "coworker")[(set:$gain to 2)(display:"gain job sexual reputation")]
<div class="options">(set:$his_choice to "face")(set:$next to "proposition bj end")(display:"masculinity crisis link")</div>{
(set:$load to "normal")
(set:$reward to (twirl:"money","card","nothing","nothing"))
(if:$npc's personality > 4)[(set:$reward to "nothing")]
(if:$npc's wealth < 4)[
(set:$reward to (twirl:"nothing","card"))
]
(if:$npc_type is "coworker")[(set:$reward to "lead")]
(if:$npc's "wealth" > 7 and (twist:1,2) is 1)[(set:$reward to "money")]
(if:$reward is "money")[
(set:$reward_amount to (max:25,5 * ($npc's wealth + (get_charm:))))
]
(if:(checkdm:$npc,"id","is","bruce"))[(set:$reward to "nothing")]
(if:(twist:1,4) is 1)[
(unless:$npc_type is "coworker")[ (twirl:
"I need release.",
"I need to empty my balls.",
"My dick needs sucking.",
"I need to shoot my load.",
"My balls are freaking overloaded.",
"I'm so backed up, I haven't shot a load in days.",
"My balls are filled to the brim.",
"Got a cum tank that's just begging to be emptied.",
"I'm fucking overloaded, need a good drain.",
"I'm so backed up, it's like my balls have their own zip code.",
"I've got a pressure situation down there, need relief.",
"I've been storing this load for you.",
"My dick is aching for release, hasn't seen action in days.",
"My sack's full to the brim.",
"Got a pretty big load to shoot.",
"My balls are on overload, care to help?",
"Need to unload this cum cannon.",
"Got a hefty load that needs unloading.",
"My balls are backed up, need a release.",
"My cock's twitching for a release.",
"I got a heavy load needing to be shot.",
"Need to unload this cum cache.",
"My nuts are about to burst!",
"Need to drain this loaded hose!",
"Got a backlog in my ballsack!",
"I’m packing a full load here!",
"Need to unload this jizz cannon!",
"Got a serious case of blue balls!",
"Need to deflate these cum-filled balloons!",
"This cock's ready to fire its load!",
"My balls are about to blow!",
"Got to vent this sperm keg!"
)(print:" ")]
(set:$load to "big")
](else:)[
(set:$load to "normal")
]
(if:$reward is "money")[
(if:$npc's tags contains "chad")[(twirl:
"Fancy earning $reward_amount bucks?",
"How about you blow me and pocket $reward_amount bucks, sweetheart?",
"Give my cock some attention and I'll make it worth your while, $reward_amount bucks sound good?",
"I've got $reward_amount bucks that says you're the best mouth in town. Prove it.",
"Fancy earning $reward_amount bucks the fun way, you naughty whore?",
"I'll give you $reward_amount bucks if you can make me explode with just your lips.",
"You seem like a girl who knows the value of $reward_amount bucks. Care to earn it?",
"My cock, your mouth, $reward_amount bucks. Simple transaction, don't you think?",
"A hot slut like you could surely use $reward_amount bucks, right?",
"How about playing with my joystick for $reward_amount bucks?"
)](else:)[
(twirl:
"How'd you like an easy $reward_amount just for a little mouth action?",
"What's your price for a little one-on-one time with me and my friend downstairs? How does $reward_amount sound?",
"How about a win-win situation? You get $reward_amount, I get the time of my life.",
"Interested in a quick gig for $reward_amount? It involves my cock and your mouth.",
"You up for a little transaction? A blowjob for $reward_amount.",
"Ever thought about earning your money in a fun way? I've got $reward_amount for you.",
"Fancy making an easy $reward_amount? All it takes is a little oral.",
"How about you lend a hand, or rather a mouth for $reward_amount?",
"If I told you that you could earn $reward_amount just by using your mouth, would you be interested?",
"My cock, your mouth, and $reward_amount in your pocket. Sound like a plan?",
"How would you like to earn $reward_amount bucks?",
"Fancy earning $reward_amount bucks for a little oral action?",
"How does $reward_amount dollars sound for a quickie blowjob?",
"I've got $reward_amount bucks with your name on it, if you're up for some cock sucking.",
"Whore, I'll give you $reward_amount to put those lips to work.",
"Want to make a quick $reward_amount dollars, slut? Just use your mouth.",
"Got $reward_amount bucks for a girl willing to get her lips dirty.",
"How about making $reward_amount bucks the fun way, slut? Just slob my knob.",
"I've got $reward_amount for a good little whore willing to suck me off.",
"Fancy making a quick $reward_amount, slut? My cock's waiting."
)]"
](else-if:$reward is "card")[
(twirl:
"Fancy earning a rare X-Change trading card for a little fun time?",
"How about a rare X-Change trading card in exchange for a blowjob?",
"I've got a rare X-Change card that could be yours if you're up for some action.",
"Want to trade an X-Change card for a little oral entertainment?",
"I've got a rare X-Change card to give if you're up for a little mouth exercise.",
"Interested in swapping a card from X-Change for a little lip service?",
"I'll give you a rare X-Change card if you help me blow off some steam.",
"Itching for a rare X-Change card? Just need a little mouth lovin' in return.",
"I can make an X-Change card yours if you’re up for a little suck and blow.",
"Fancy a rare X-Change card? All I need is some oral TLC."
)"
](else-if:$reward is "lead")[(if:$office_events contains "swp restriction")[(display:"coworker lead comment restriction")"](else:)[(display:"coworker lead comment")"]
](else:)[
(if:$npc's "tags" contains "chad")[
(twirl:
"I can't think of a better way for us to get acquainted than your lips meeting my manhood.",
"How about you and I make some magic happen? It starts with a kiss, just lower.",
"Surely a woman of your caliber knows how to give a man pleasure?",
"Care to give this alpha male a proper warm-up?",
"Fancy putting those lips to some good use, darling?",
"How about making a memorable $day_of_week for both of us?",
"Think you could handle giving this stud a little tune-up?",
"Mind helping me blow off some pent-up energy?",
"Feel like joining me in some leisurely activities?",
"Those luscious lips of yours and my cock — sounds like a perfect match, doesn't it?",
"A woman as hot as you was meant to pleasure a man like me. Care to prove me right?",
"Time for you to meet the main attraction. What do you say, babe?",
"How do you feel about making this the best $day_of_week of our lives, darling?",
"Let's cut to the chase, fancy giving my cock some attention?",
"Got time to send a stud to cloud nine with your mouth?",
"Direct approach. You. Me. Blowjob. Appetizing proposition?",
"I've got an itch only a mouth like yours can satisfy. Game?",
"Why not do us both a favor and get to know my cock a little better?"
)
](else-if:$npc's personality > 7 or $npc's tags contains "gentleman")[
(twirl:
"How about we have some fun together, just you, me and my friend down south?",
"Care to join me for a bit of... intimate fun?",
"Would you mind helping a gentleman out in the pleasure department?",
"Are you open to... oral explorations of a particularly satisfying nature?",
"How would you feel about pursuing certain pleasantries with me, dear lady?",
"Would you be so good as to lend me the services of your lips?",
"Would you be averse to... a little head-to-head so to speak?",
"Fancy indulging in a pleasurable distraction together?",
"Fancy granting me a bit of your time and… attention?",
"Would you mind... helping me out with something personal?",
"Would you be so kind as to... assist me in unwinding?",
"Perhaps you could lend a hand... or rather, a mouth, in a delicate matter?",
"How about having a little private get-together, you, me, and my friend below?",
"Could I interest you in some… intimate relief?",
"Might you be able to… assist me with something?",
"Care to join me in some special relaxation techniques?"
)
](else-if:$npc's generation is "genx")[
(if:$npc's personality < 6)[
(twirl:
"How about having a little fun with daddy?",
"Wanna have some fun with daddy?",
"Want to show daddy how well you can use your mouth?",
"Feel like helping an old stallion empty his balls?",
"Fancy playing around with daddy's 'magic wand'?",
"Feel like helping daddy relieve some pressure?",
"Feel like giving an old timer a tour of heaven, sweetheart?",
"Need a pretty young lady to help me release a little steam. You interested?"
)](else:)[
(twirl:
"Would you mind lending me a helping hand, darling?",
"Feel up to showing an older guy a good time?",
"Interested in getting in some blowjob practice?",
"Care to help a guy like me blow off some steam?",
"Feel like giving a guy some relief?",
"Fancy showing me how those pretty lips of yours work?",
"How about giving this older man a memorable experience?"
)
]
](else-if:$npc's "generation" is "genz")[
(if:$npc's "personality" > 5)[
(twirl:
"Hey, you up for a little one-on-one action?",
"Feel like helping a dude achieve peak vibes?",
"Down to give my soldier a salute, if you catch my drift?",
"Fancy showing a guy how to reach cloud nine?",
"Wanna get on the fast track to Pleasureville with me?",
"Up for giving my joystick a little play, huh?",
"How about helping me level up, girl?",
"Feel like making my whole week with those lips of yours?",
"Wanna send me straight to cloud nine?",
"How about helping me release some of my pent up energy?"
)](else:)[(twirl:
"Feel like lending a mouth to a poor, horny guy?",
"Down to choke on this alpha cock, huh?",
"Mind giving my joystick a little gaming sesh?",
"Want to send a guy's third leg to heaven?",
"How about making my meat rocket go off, huh?",
"Fancy allowing me a one-way trip down 'Gobble Lane'?",
"Care to join me in a little throat action, hmm?",
"Why not make a dude's dream and slobber on my knob?",
"Fancy giving my joystick a proper deep dive?",
"Can you lend a mouth for my dick in need?",
"Wanna gobble my knob?",
"Feel like sucking my popsicle?",
"Up to give my manhood a mouth hug?",
"Fancy to provide some special lip service?"
)]](else:)[
(twirl:
"How about having a little fun together?",
"Wanna have a little fun with me?",
"How about a little meet-and-greet with my little soldier, $petname?",
"Feel like taking my heat-seeking lipstick missile on a test drive?",
"Up for a trip to Boner City, tickets are on me... literally.",
"Fancy giving me some good lips-to-tip service?",
"Fancy giving this trouser snake a little squeeze?",
"Mind giving my meat scepter a little royal treatment?",
"How about a little oral exploration, you and me?",
"Fancy giving my little friend some lip action?",
"Can you help a dude out with a bit of tongue action?",
"Fancy giving my joy-stick a whirl with those sweet lips?",
"Up for some mouth action? My lower half's aching for attention.",
"Fancy letting me park my meat wagon in your garage, huh?",
"Up for some tongue gymnastics on my pole?",
"Ever considered giving my snake a little charming?",
"How about you and my friend down here get acquainted through some oral communication?",
"Would those pretty lips of yours like a taste of my manhood?",
"How about helping a dude unload his stress orally?",
"Fancy giving my little soldier a mouth salute?",
"Fancy showing my trouser snake some lip service?"
)]"
]
(if:$character's "side effects" contains "Swallow to continue")[
*I do need to swallow cum, for this New-U transformation to continue...*
]
(if:$character's "side effects" contains "Swallow or permanent ID")[
*I do need to swallow cum, or I'll be stuck in this DNA...*
]
<div class='options'>
<mark>He wants a blowjob.</mark>
</div>
(if:$character's "arousal" > 5)[
(set:$yes to (twirl:
"Yeah!",
"Yes.",
"Of course!",
"Absolutely!",
"Yes please."
))
(set:$no to (twirl:
"Not right now...",
"No thank you.",
"I don't think so..."
))
(if:$npc_type is "coworker")[(set:$no to (twirl:
"Not right now...",
"Well, maybe not..."
))]
](else:)[
(set:$yes to (twirl:
"...ok",
"...sure."
))
(set:$no to (twirl:
"No way!",
"Uh-uh!",
"No!"
))
(if:$npc_type is "coworker")[(set:$no to (twirl:
"Not right now...",
"Well, maybe not..."
))]
]
(set:$yes_money to (twirl:
"For more money, perhaps.",
"If you up the ante.",
"If you give me more money.",
"For more money.",
"Bargain."
))
<div class='options'>
(if:(datanames:$location_params) contains "sex location passage")[
(link:"Offer sex instead")[
(set:$option to "offer sex")
(if:($character's arousal > (7-$npc's appeal)
or $character's "side effects" contains "Swallow to continue"
or $character's "side effects" contains "Swallow or permanent ID"
or $npc_type is "coworker")
and not ($character's "masculinity" > 85)
)[
(set:$next to "proposition accept fuck")
(display:"change screen")
](else:)[
*(twirl:
"You don't want to.",
"You're not horny enough to offer that.",
"No, I don't think so."
)* (if:$character's "masculinity" > 85 and not (is_pp:))[<div class='options'><mark>Action blocked due to high masculinity.</mark></div>]
](link:"Use Action Point (offer sex anyway)")[(set:$option to "offer sex")(set:$action_params to (dm:"cost",1,"result","proposition accept fuck","type","change screen"))(display:"use action point")]
]
]
(link:$yes)[
(if:($character's arousal > (7-$npc's appeal)
or $character's "side effects" contains "Swallow to continue"
or $character's "side effects" contains "Swallow or permanent ID"
or $npc_type is "coworker")
and not ($character's "masculinity" > 85)
)[
(set:$option to "accept")
(set:$next to "proposition accept bj")
(display:"change screen")
](else:)[
*(twirl:
"You don't want to.",
"You're not horny enough to agree.",
"No, I don't think so."
)*(if:$character's "masculinity" > 85 and not (is_pp:))[<div class='options'><mark>Action blocked due to high masculinity.</mark></div>](link:"Use Action Point (offer bj anyway)")[(set:$option to "accept")(set:$action_params to (dm:"cost",1,"result","proposition accept bj","type","change screen"))(display:"use action point")]
]
]
(if:$reward is "money")[
(link:$yes_money)[
(set:$option to "accept")
(print:" ")
(if:($character's arousal > (7-$npc's appeal)
or $character's "side effects" contains "Swallow to continue"
or $character's "side effects" contains "Swallow or permanent ID"
or $npc_type is "coworker")
and not ($character's "masculinity" > 85)
)[
(set:$next to "proposition accept bj bargain")
(display:"change screen")
](else:)[
*(twirl:
"You don't want to.",
"You're not horny enough to agree, even for more money.",
"No, I don't think so."
)*(link:"Use Action Point (bargain anyway)")[(set:$option to "accept")(set:$action_params to (dm:"cost",1,"result","proposition accept bj bargain","type","change screen"))(display:"use action point")]
]
]
]
(link:$no)[
(print:" ")
(if:$character's arousal > (12-($npc's appeal/2)))[
(display:"proposition reject bj aroused")
](else:)[
(set:$result to "reject")
(set:$next to "proposition reject result")
(display:"change screen")
]
]
(if:$safeword is "Safeword: Enabled")[
(link:"🚫")[
(replace:?text)[
(set:$response to "safeword")
(display:"catcall guy leaves")
]
]
]
</div>
}{
(set:$npc's "events" to it + (a:"blowjob"))
}{
(display:"npc register bj")
(set:$command to "none")
(set:$interrupt to "none")
(set:$interrupt_warn to "none")
(set:$song to 0)
(display:"play song")
(if:$npc's tags contains "chad")[
"(twirl:
"Knew you'd want to,",
"I knew it,",
"Of course,",
"Haha, of course,"
)"
the (print:(lowerfirst:$npc's "unfamiliar name"))
(twirl:
"smiles, smugly.",
"he says, with a smug grin.",
"says, with a self-assured little smile."
)
"Follow me, (twirl:$petname,$character's "female name")."
](else-if:$npc's tags contains "creepy")[
(twirl:
"He chuckles creepily.",
"He laughs in creepy glee.",
"He smiles a little too widely.",
"His smile makes you a little nervous."
)
"(twirl:"Excellent,","Wonderful,")" he says.
"There's (print:$location_params's "bj location name") nearby."
](else:)[
"(twirl:"Great","Good")," he says.
"There's (print:$location_params's "bj location name") nearby."
]
(set:$blowjob to (dm:
"result passage", "proposition bj end",
"interrupt chance", 0,
"interrupt passage", "proposition bj interrupt",
"interrupt roll", (twist:1,100)
))
<div class='options'>
(link:"Follow " + $npc's "name")[
(set:$next to $location_params's "bj location passage")
(set:$stage to 0)
(display:"change screen")
]
</div>
}{
(set:$reward_amount to $reward_amount * 2)
(if:(twist:1,10) > (get_charm:))[
(set:$result to "fail")
](else:)[
(set:$result to "pass")
]
(if:(win:))[
<mark>Charm check passed!</mark>
(nl:2)
(set:$command to "none")
(set:$interrupt to "none")
(set:$interrupt_warn to "none")
(set:$song to 0)
(display:"play song")
(if:$npc's tags contains "chad")[
"(twirl:
"Yeah, sure, I could do $reward_amount bucks,",
"I could do $reward_amount,",
"Yeah, I could swing $reward_amount, you seem worth it,",
"Sure, let's double it,"
)"
the (print:(lowerfirst:$npc's "unfamiliar name"))
(twirl:
"smiles, smugly.",
"he says, with a smug grin.",
"says, with a self-assured little smile."
)
"Follow me, (twirl:$petname,$character's "female name")."
](else-if:$npc's tags contains "creepy")[
(twirl:
"He chuckles creepily.",
"He laughs in creepy glee.",
"He smiles a little too widely.",
"His smile makes you a little nervous."
)
"(twirl:
"I'll give you double,",
"Double it is,",
"$reward_amount dollars it is,"
)"
he says.
"There's (print:$location_params's "bj location name") nearby."
](else:)[
"(twirl:
"Sure",
"Okay",
"Alright"
),"
he says.
"I can do $reward_amount (twirl:"bucks","dollars").
There's (print:$location_params's "bj location name") nearby."
]
(set:$blowjob to (dm:
"result passage","proposition bj end",
"interrupt chance",0,
"interrupt passage","proposition bj interrupt",
"interrupt roll",(twist:1,100)
))
<div class='options'>
(link:"Follow " + $npc's "name")[
(set:$next to $location_params's "bj location passage")
(set:$stage to 0)
(display:"change screen")
]
</div>
](else:)[
<mark>Charm check failed!</mark>
(print:"
")
He (twirl:"shakes his head, unwilling to pay that much","shakes his head","says no").
(display:"catcall guy leaves")
]
}{
(if:$stage is 0)["(twirl:"Kneel down.","Why don't you get on your knees?","How about you get comfortable on your knees now?","Why don't you get down and comfortable on the floor?")"]
(if:$stage is 1)[(print:$kneel_desc)(if:$npc's tags contains "gentleman")[ (twirl:"Always a gentleman, he offers you his shirt as padding for your knees.","A gentleman till the end, he gives you his shirt, to use as knee-padding.")] (if:(twist:1,2) is 1)[(nl:2)(twirl:"You're face-to-face with his crotch now.","Now you're eye-level with his crotch.") ](if:$npc's tags contains "chad" and (twist:1,2) is 1)["(twirl:"Get my cock out,","Please get my cock out,","Now, unzip my pants,","Now, take my cock out,","Go on, get my cock out,")" he (twirl:"commands","instructs").(set:$command to "you unzip")]](else-if:$stage is 2)[($play:"sound","unzip")<div class='top_right_pic_wide'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")</div>(if:$choice is "you")[(if:$character's "masculinity" > 75)[(twirl:"Hands trembling a bit,","Hands shaking a little bit,","Hands trembling a bit,","A little bit nervous,","Slightly nervous,") (twirl:"you unzip his jeans","you unzip his pants","you unfasten his pants"), letting his (print:$npc's cockdesc) (twirl:"cock","dick") (twirl:"flop","thwap","flop","swing") out, with a set of (print:$npc's ballsdesc) balls hanging behind.](else:)[(twirl:"You unzip his jeans","You unzip his pants","You unfasten his pants")(if:$command is "you unzip")[ (twirl:"dutifully","obediently","submissively")], letting his (print:$npc's cockdesc) (twirl:"cock","dick") (twirl:"flop","thwap","flop","swing") out, with a set of (print:$npc's ballsdesc) balls hanging behind.]](else:)[(twirl:"He unzips his pants, letting","Unzipping his pants, he lets","He unzips his pants, letting") (if:(twist:1,2) is 1)[his (print:$npc's cockdesc) (twirl:"cock","dick") (twirl:"smack you in the","flop onto your","flop out onto your","smack you in the") (twirl:"face","forehead","nose").(if:(twist:1,3) is 1)[ (twirl:"It's throbbing with warmth and tension.","It's really warm - throbbing and twitching.","It's really hot and warm to the touch.")]](else:)[ his (print:$npc's cockdesc) (twirl:"cock","dick","schlong","erection") (twirl:"flop","thwap","flop","swing") out] (if:(cock:"rating","npc") > 6 and (twist:1,2) is 1)[ (twirl:"You go cross-eyed at the sheer size of it.","You go a little cross-eyed as you stare at it.","You go cross-eyed as you look at it.","Your eyes cross as you look at its meaty bulk.")]]
(nl:2)(if:(twist:1,2) is 1)[{*(print:(cock:"rating","npc") of (dm:
1,(twirl:"Yuck.","Tiny.","So tiny."),
2,(twirl:"Pretty damn underwhelming.","Pretty underwhelming.","Quite underwhelming."),
3,(twirl:"Pretty damn underwhelming.","Pretty underwhelming.","Quite underwhelming."),
4,(twirl:"About average.","That's about an average cock, I'd think.","Pretty average-looking."),
5,(twirl:"About average.","That's about an average cock, I'd think.","Fairly average."),
6,(twirl:"Well, it's bigger than mine ever was.","It's bigger than I was, though not by much.","It's a little bit bigger than mine was."),
7,(twirl:"Whoa, he's pretty big.","He's bigger than I was.","It's a fair bit bigger than mine was."),
8,(twirl:"Whoa, he's pretty big.","Fuck he's big.","Fuck, that's a big dick.","Whoa, that's actually really big."),
9,(twirl:"Holy shit, that's massive.","Holy... fuck.","Fuckkk that's big.","Shit, he's big.","Goddamn, he's big.","God-DAMN he's big."),
10,(twirl:"Ho-lee FUCK!","He's fucking enormous!","That's just... a magnificent cock.","Fuck, I would've killed to have a cock like this as a guy.","God fucking dammit, that is absolutely enormous.","Holy fucking shit that's big.","That's so fucking big.","Holy fucking shit, it's so big in person.","He's a goddamn monster!","He's got a fucking donkey dick!","He's so fucking big!")))*}(nl:2)](if:$npc's tags contains "nerd" and not ($npc's tags contains "chad"))["(twirl:"Gosh,","Golly,","Hehe,") (twirl:"I can't believe a girl as hot as you","I can't believe a total bombshell like you","It's amazing that a total hottie like you") (twirl:"is just gonna suck me off","is just gonna blow me","is down on her knees for me","is down sucking my cock")(if:(twist:1,2) is 1)[, (twirl:"haha","heh","heehee")]," the (print:(lowerfirst:$npc's "unfamiliar name")) says. "(twirl:"This is so much better than opening pokemon cards.","This is so much better than hentai.","This is so much better than watching porn in my room.")"](else-if:$npc's tags contains "gentleman")["(twirl:"Don't worry, this will stay just between us,","You're so beautiful. It's an honor to get blown by you,","I'm really excited for this, you're so hot,","You're so gorgeous, I can't wait to see what you can do,","Don't worry, this will be our little secret,")" he says(twirl:", kindly,"," with a smile") (twirl:"indicating","gesturing") for you to begin.](else-if:$npc's age > 39 and not ($npc's tags contains "chad"))["(twirl:"Gosh,","Golly,","Goodness,","Goddamn,","Jiminy,") (twirl:"this is the bomb dot com","this is awesome","this reminds me of my 20s","this really reminds me when I was younger"), (twirl:"getting blown by such a cute young thing like you","having such a cute young thing give me a blowjob","having such a nice young lady to play with","having a beautiful young lady kneeling down for me")," the (print:(lowerfirst:$npc's "unfamiliar name")) says. "(twirl:"You can call me ","Feel free to call me ") (print:$npc's "first name") instead of Mr. (print:$npc's "last name")."(nl:2)"(twirl:"Alright,","Okay,","Alrighty,") (print:$npc's "first name")," (twirl:"you humor the older man","you humor him","smile at him").(if:(Random:1,2) is 1)[ (twirl:"You sort of have to be nice to him, when you're staring down the barrel of his cock.","It's best to be nice, when you're kneeling in front of their cock.")](nl:2)(twirl:"Then he indicates for you to start.","Then he tells you to start.","He tells you to start.")](else-if:$npc's age < 20)["(twirl:"You know I'm only ","You know I'm just ")(print:$npc's age)? (twirl:"And already I'm getting a girl like you to suck me off.","And already girls in their 20s are blowing me.","And already total dime-pieces like you are blowing me.") (twirl:"This is lit,","Prettyyy gucci if you ask me,","This is gonna be such a flex when I tell the boys about it,","This is low key epic,","I've made it, fam,")" he (twirl:"grins","smiles down at you","grins down at you","takes in the moment, victoriously"). "(twirl:"You can start now!","Start anytime, sis!","You can start anytime.","Put that mouth to work now!")"](else-if:(cock:"rating","npc") > 7 and $npc's looks < 4)["(twirl:"Yeah, I might not look like much.","I may not have the looks...","I might not be the handsomest guy out there.") (twirl:"But with a cock like this, girls still go ga-ga for me.","But with a schlong like this, who cares?","But it doesn't matter, cause I got a dick like this.")" (twirl:"He smiles down at you,","He looks down at you,") (twirl:"indicating for you to start","and motions for you to start sucking").](else-if:$npc's tags contains "fuckboy")[(twirl:"He looks at you with a cocky fuckboy smile.","He looks down at you with a degrading smile.") "(twirl:"You can start sucking now.","Well bitch, get to work!","Well hun, get to work!","Well, my cock ain't gonna suck itself.")"](else-if:$npc's tags contains "chubby" and (twist:1,2) is 1)[(twirl:"He looks down at you from over his","He smiles down at you from over his","He gazes down at you from over his") (twirl:"rotund belly","large belly","belly"), (twirl:"and indicates for you to start","and nods for you to start sucking").](else-if:(cock:"rating","npc") > 7 and (twist:1,2) is 1)["(twirl:"With a cock like this,","With a schlong like this,","With a dick like this,")" he says. "(twirl:"Girls basically throw themselves at me.","Women throw themselves at me, really.","It's easy to be popular.") (twirl:"Now suck!","Now, start sucking!")"](else-if:$npc's tags contains "chad")["(if:(twist:1,2) is 1)[(twirl:"People think women are so complicated.","And people say girls are so complicated.","They say women are so hard to figure out.") (if:(twist:1,2) is 1)[(twirl:"But you're all the same really. You all want one thing:","But you're all a slave to one thing, you just don't know it:","But you all want just one thing:") (twirl:"cock","alpha cock","to serve an alpha","to serve an alpha cock").](else:)[(twirl:"But it's clear to me that bitches are simple.","But it's obvious to me that bitches are actually quite simple.") (twirl:"You all melt as soon as they meet an alpha like me.","You melt when you meet an alpha like me.","You get wet as soon as you meet an alpha like me.")](print:" ")](twirl:"Alright, get to work,","Okay, start sucking,","Time to start sucking,","Alright, time to blow me,") $petname."](else-if:$npc's tags contains "creepy" and (twist:1,2) is 1)[(twirl:"He gives you a creepy smile and ","He smiles at you creepily and ")(twirl:"tells you to start","tells you to begin").](else:)["(twirl:"Go ahead and start sucking,","Go ahead and suck,","Go ahead,")(if:(twist:1,2) is 1)[ $petname,](else-if:(twist:1,2) is 1)[ (print:$character's "female name"),]" (twirl:"he says, smiling down at you","he smiles at you","he says","he instructs you","he instructs"). (if:(twist:1,4) is 1)[His (print:$npc's ballsdesc) balls (twirl:"twitch","shift") in anticipation.](else-if:(Random:1,3) is 1)[(twirl:"A little precum drips from his dick-tip.","Some precum drools from his cock's glans.","Some clear precum drools out from his cock-tip.")]]
(if:$blowjob's "interrupt chance" >0)[
(if:$blowjob's "interrupt roll" <= (($blowjob's "interrupt chance" + 100) / 2))[(nl:2)(print:$interrupt_warn)(set:$warn to "true")](else:)[(set:$warn to "false")]
]]
(display:"proposition bj options")
}{
<div class='options'>
(if:$stage is 0)[
(link:(twirl:"Kneel","Get on your knees","Kneel"))[
(set:$stage to 1)
(replace:?text)[
(display:"proposition bj")
]
]
]
(if:$stage is 1)[
(link:(twirl:"Unzip his pants.","Unzip him.","Get his cock out.","Undo his pants."))[
(set:$choice to "you")
(set:$stage to 2)
(set:$next to "proposition bj")
(display:"change screen")
]
(unless:$command is "you unzip")[
(link:(twirl:"He unzips.","He gets his cock out."))[
(set:$stage to 2)
(set:$choice to "him")
(set:$next to "proposition bj")
(display:"change screen")
]
]
]
(else-if:$stage is 2)[
(if:(cock:"rating","npc") > 8)[
(link:"Chicken out. (Use 2 Action Points)")[
(set:$action_params to (dm:"cost",2,"result","proposition bj npc reject big","type","change screen"))
(display:"use action point")
]
]
(else:)[
(link:"Ew. (Use Action Point)")[
(set:$action_params to (dm:"cost",1,"result","proposition bj npc reject","type","change screen"))
(display:"use action point")
]
]
(if:$warn is "true")[
(link:(twirl:"Say you're nervous","You're nervous about being caught","We might get caught","We shouldn't do this here","We may get caught","Someone could walk in"))[
(if:$character's "arousal" > 9)[
*(twirl:"You're too aroused to say that.","As if - you're way too aroused now.","You're too aroused to stop.")*
]
(else-if:(get_intellect:) < 3)[
*(twirl:"Actually you're too dumb to realize that.","You're not smart enough to realize that.")*🧠
]
(else:)[
(set:$next to "proposition bj request stop")
(display:"change screen")
]
]
]
(link:"Begin")[
(set:$next to "blowjob transactional initialize")
(set:$blowjob's "load" to $load)
(display:"change screen")
]
]
(display:"safeword button")
</div>
}{
(display:"npc describe cock")After seeing (set:$case to "lower")(display:"npc possessive pronoun") $cock, you immediately reject him.
(display:"npc leaves handling")<div class='options'>(link:"Next")[(set:$next to $location_params's "home")(display:"next")]</div>(set:$response to "none")
}{
(display:"npc describe cock")Fuck - (set:$case to "lower")(display:"npc possessive pronoun") $cock is just a bit too much for you to handle. You respectfully tell him you can't go through with this...
(display:"npc leaves handling")<div class='options'>(link:"Next")[(set:$next to $location_params's "home")(display:"next")]</div>(set:$response to "none")
}{(if:$npc's wealth > 6)[(print:" ")(if:$npc's generation is "genx")[(twirl:"Just so you know, daddy has a lot of money.","You should know that I am an extremely successful man.","Not that I think you're a gold-digger, but just know that I am very well-off.","All you gotta know, is that daddy's got a lot of money.","Just know this: daddy has a lot of money. Enough to make your eyes water.","Just so you know, I am quite wealthy.","You might be happy to know, that I am quite wealthy.","You'll be happy to know, that I'm pretty damn rich.","I'll have you know, I'm quite successful in my career.","Just so you know, I'm quite successful in my business.")](else:)[(twirl:"Just so you know... I have a lot of money. Simple as that.","You should know that I am extremely successful businessman, even though I'm only " + (text:$npc's age) + ".","All you gotta know, is that I got a lotta money, even though I'm only " + (text:$npc's age) + ".","Ya know, I'm quite successful for my age.","Just so you know, I'm quite wealthy and successful. I'm what you call a 'trust fund kid.' People usually say it like it's a bad thing, but it seems to work for me.")]"(set:$brag to "money")(set:$gain to 2)](else-if:$npc's "oral skill" > 7)[(print:" ")(twirl:"Just so you know, ","Just so you're aware, ","Just so you know, ")(twirl:"I have a *magic* tongue.","I am really good with my tongue.","I know how to eat a girl out.")(if:$npc's "personality" < 5)[ (twirl:"Although you'd really have to earn it.","Although I need fair compensation, hah.","Although I'd prefer to have you going down on me.","Although I'm better at receiving blowjobs.","Although I'm even better at *receiving* oral. Heh.")]"(unless:(twist:1,2) is 1 or $npc's "tags" contains "gentleman")[ (set:$case to "upper")(display:"npc pronoun") (twirl:"sticks his tongue out, seductively.","waggles his tongue.","does the tongue-between-fingers motion.","makes a lewd gesture with his tongue and fingers.")](set:$brag to "oral")](else-if:$npc's fitness > 6 or $npc's tags contains "jock")[(print:" ")(twirl:"And yeah, you can probably tell that I work out.","Do you like my muscles? I hit the gym like three times a week.","I see you eyeing my physique. I work out a lot.","You can probably tell, but I work out a lot.")(if:(twist:1,2) is 1)[ (twirl:"I can show you a *really* good time,","I would probably make you orgasm several times,","I've got stamina for days.","I got stamina for days. Just know that,")]" he says. (twirl:"You believe it -","You believe him -","You definitely can tell") (twirl:"he is quite well-built.","that he is in great shape.")(set:$gain to 2)(set:$brag to "fitness")](else-if:$npc's tags contains "chad")[(print:" ")(twirl:"Fair warning: women fall head over heels for me - but I'm here for a good time, not a long time,","I don't mean to brag, but I usually melt women like butter,","Fair warning: I attract pussy like a neodymium magnet,","Just so you know, $petname, I'll melt your ice cube, I always do,","I bet you're feeling it now. The attraction. My effects on women are very well documented,","I've slept with tons of women, possibly hundreds,","Just so you know, I've slept with dozens of women just like you,","All sorts of women love me. I guess I really am just all that.","It's tough being a chad, I'm basically drowning in pussy most of the time,","I've banged so many women, I sometimes wonder how many children I might have,","Many women have tried to make me their boyfriend, but I can't be held down.","I am an alpha, I get all the pussy I want,")" he says, (twirl:"suavely","smoothly","with a fiendish smile","with the smile of a true chad","with the smile of an alpha male").(set:$gain to 2)(set:$brag to "chad")](else-if:(cock:"rating","npc") > 5 and not ($npc's events contains "cock"))[(set:$npc's "events" to $npc's "events" + (a:"cock mention"))(print:" ")(twirl:"One thing you should know about me, is that I have an enormous penis.","You should know that I'm hung like a bull.","You should know that I'm extremely well endowed.","First, a question: What do you think about giant cocks? The size of my cock would blow your little mind.","One question for you - would you be able to handle a positively massive dick? The size of mine would blow your little mind.","The sheer size of my cock would rock your world.","Do you like guys with big dicks? Well, I am one.","What do you think of guys with massive schlongs?")" (twirl:"Your eyes glance down to the big tent he's pitching.","Your eyes glance down to confirm, that he does have an impressive bulge.","He does appear to have a sizable bulge going on down there.")(set:$gain to 2)(set:$brag to "cock")](else-if:$npc's tags contains "nerd")[" Then he starts bragging to you about his (twirl:"rare pokemon collection","Yu-Gi-Oh collection","high-level WoW character","high-level MMO character"). (if:(get_intellect:) > 7)[(twirl:"Since you're kind of nerdy yourself, you're ashamed to say that you listen intently.","Funny enough, you're impressed.","It's kind of impressive.","Is this sheer confidence, or just social ineptitude?")(set:$gain to 1)](else:)[*(twirl:"He's quite a nerd...","He's a big nerd...","Yep, definitely a nerd...")*(set:$gain to 0)](set:$brag to "nerd")](else:)[(set:$brag to "none")" Then he starts bragging about himself. (twirl:"Something about his sigma male grindset, whatever the hell that is.","Something about his 'hustle.'","Something about Reddit and his stocks.","Something about sports...") (set:$gain to 1)(if:(twist:1,3) is 1)[ (twirl:"He makes a lot of long, lingering eye contact with you.","He gazes at you intently while he talks, maybe too intently.")]]
(nl:1)
(if:$brag is "money")[(set:$brag_admire to (twirl:"Wow, that's impressive.","That's impressive.","That's pretty cool.","Congrats on your success.","Congrats."))
(set:$brag_reject to (twirl:"I don't care.","Who cares?","I have money too.","I have my own money.","Is that all you know how to brag about?","Pretty sad if that's what you focus on."))]
(if:$brag is "fitness")[(set:$brag_admire to (twirl:"You have a nice body.","You look strong.","You must be very strong.","You could probably throw me around."))(if:$character's "masculinity" > 90)[(set:$brag_admire to (twirl:"Go to the gym a lot, huh?","Hit the gym on the reg, huh?","Good to know."))]
(set:$brag_reject to (twirl:"Ok, so you're a meathead.","Not impressed.","Who cares?","I don't care.","Don't care."))]
(if:$brag is "chad")[(set:$brag_admire to (twirl:"You seem to really have a way with women...","Well, your charms are working on me.","Your charms are working on me...","You're pretty suave.","You're really smooth.","You're a very smooth guy.","You're quite charming."))(if:$character's "masculinity" > 90)[(set:$brag_admire to (twirl:"Big shot, huh?","So you're an 'alpha', huh?","Is that so?"))]
(set:$brag_reject to (twirl:"That just sounds sleazy.","I don't care.","Who cares?","Ok, so you're a manwhore."))]
(if:$brag is "cock")[(set:$brag_admire to (twirl:"Wow, will I get to see it?","Could I see it?","How massive are we talking?","How big, exactly?"))
(if:$character's "masculinity" > 85)[(set:$brag_admire to (twirl:"Er... ok?","Um... good to know...","Um... ok.","Thanks for the info."))](set:$brag_reject to (twirl:"Who cares?","I doubt it.","Who the hell cares?","Oh, suuuure.","Suuuure you do."))]
(if:$brag is "nerd")[(set:$brag_admire to (twirl:"Wow, sounds cool.","That's pretty cool.","That's pretty cool.","Pretty cool.","Awesome.","Impressive."))
(set:$brag_reject to (twirl:"Who cares, nerd?","Nerd.","You're a nerd.","No one cares."))]
(if:$brag is "oral")[(set:$brag_admire to (twirl:"Maybe I'll need to see that firsthand.","Maybe you can show me...","Why don't you show me sometime...","Prove it..."))
(set:$brag_reject to (twirl:"Every guy thinks they're good.","Those are just words!","Oh, *sure*."))]
(if:$brag is "none")[(set:$brag_admire to (twirl:"That's cool.","You seem pretty cool.","Nice.","Awesome.","Impressive."))(set:$brag_reject to (twirl:"Who cares?","No one cares.","Tell it to someone who cares.","Yeah I don't care.","I don't care."))]
<div class='options'>(link:$brag_admire)[(set:$response to "friendly")(replace:?text)[(display:"proposition brag react")]](link:$brag_reject)[(if:$character's arousal > (10-$npc's appeal))[*(twirl:"He's really wearing you down.","He's worn you down sufficiently that you start behaving more friendly.","He's definitely starting to... get to you.","He's definitely starting to get through to you.","He's getting through to you, finally...","He's wearing you down...","Dammit, he's wearing you down.","Shit, you're starting to get aroused.")*](else:)[(set:$response to "reject brag")(replace:?text)[(display:"proposition reject")]]]</div>
}{
(twirl:"Here's a joke:","Here's a good joke:","Oh, you'll like this joke:","Oh, I have a good joke:")
(if:$npc's tags contains "fuckboy" or $npc's tags contains "creepy")[(twirl:"A recent survey has found one in three women is just as stupid as the other two,","I'm for abortion cause I'm all about killing kids. However I am against it cause it gives women a choice,","Why couldn't Hellen Keller drive? Because she was a woman,","Why do women fake orgasms? Because they think men care,","Women's rights. That's the whole joke,","How many feminists does it take to change a light bulb? None. Feminists can't change anything,","What’s the useless skin around the vagina called? The woman,","What's 6 inches long 2 inches wide and drives women wild? Money,","I would say get back in the kitchen - but all the best chefs in the world are men too,","Why are wedding dresses white? So they'll match with most kitchen appliances,","Why are women's feet smaller? So they can stand closer to the stove,","How do you tell if a woman has an orgasm? Who gives a fuck?!","What is a woman doing, when looking at a blank piece of paper? Reading her rights,")" he chuckles at his own horrible 'humor'. "(twirl:"Come on, I'm not serious.","Don't get your panties in a bunch, I'm not serious!","Hey, it's just a joke!")"(set:$funny to 0)(if:$arousal > 5)[(set:$funny to 1)(nl:2)(twirl:"You're horny enough","You're aroused enough","You're so aroused") (twirl:"that you still laugh","that you still giggle"), even though it's offensive.](else:)[(nl:2)(twirl:"You don't laugh.","Not funny.","Not funny, bro.")]](else-if:$npc's age > 35)[(twirl:"Today, my step-son asked Can I have a bookmark?' and I burst into tears. I've been with his mom for 11 years and he still won't call me Dad.","As I handed my Dad his 50th birthday card, he looked at me with tears in his eyes and said, 'You know, one would have been enough.'","Gonorrhea would have been a great name for diarrhea medicine. That's an STD - a Seriously Terrific Dad Joke.","What genre of music are national anthems? Country.","If pronouncing my b's as v's makes me sound Russian, then soviet.","If pronouncing my b's as v's makes me sound Russian, then soviet.","A girl came into my bookstore and asked 'What are the chances you have a book on curing eating disorders with religion?' I replied, 'Slim to Nun.'","Did you know I can make dad jokes, without being a dad? I'm a faux pa.","I am Buzz Aldrin. Second man to step on the moon. Neil before me.","Of all the inventions of the last 100 years, the dry erase board has to be the most remarkable.","Why was 2019 afraid of 2020? Because they had a fight and 2021.","If having sex for money makes you a whore, having sex for free makes you a... Non profit whoreganization.","What has 4 letters, sometimes has 9 letters, but never has 5 letters ...and always has 6 letters. That's it, that's the whole joke.","Say what you will about deaf people. That's it, that's the whole joke.","My wife found out I was cheating on her after she found all the letters I was hiding... she got mad and said she's never playing scrabble with me again.","My wife screamed 'you haven't listened to a single word I've said, have you?!' What a weird way to start a conversation..","I got the words “jacuzzi” and “yakuza” confused.
Now I’m in hot water with the Japanese mafia.","Personally, I don't believe in bros before hoes, or hoes before bros. There needs to be a balance. A homie-hoe-stasis, if you will.","My wife accused me of hating her family and relatives... I replied, 'No, I don't hate your relatives. In fact, I like your mother-in-law a lot better than I like mine.'","I saw my wife, slightly drunk, yelling at the TV: “Don’t go in there! Don’t go in the church, you moron!” She is watching our wedding video again.","Where do you take someone who’s been injured in a peak-a-boo accident? To the I.C.U.","It's a 5 minute walk from my house to the bar, but a 45 minute walk from the bar to my house... The difference is staggering.","I think I have a fetish for the last paragraph in an essay. I just came to that conclusion.")" (set:$funny to 1)(nl:2)(twirl:"You chuckle.","You giggle a little.","You chuckle a bit.") (twirl:"Old guys and their dad jokes...","Yeah, he's about the right age to make dad jokes...")](else-if:$npc's tags contains "nerd")[(twirl:"A pizza with depth a and radius z has a volume of pi z z a.","Some helium floats into a bar. The bartender says 'Sorry, we don't serve noble gases here.' The helium doesn't react.","A superconductor walks into a bar. The bartender says 'We don't serve your kind here.' The superconductor leaves without any resistance.","A neutrino walks into a bar. The bartender says 'We don't serve your kind here.' The neutrino says 'I'm just passing through.'","Bertrand Russell comes out of the hospital where his wife has just given birth. A journalist comes up to him and excitedly asks: 'Is it a girl or a boy?' Bertrand Russell replies: 'Yes.' Is that a good joke OR what?","A udp packet walks into a bar. the bartender doesn't acknowledge him.","What do a neutrino and I have in common? We're both constantly penetrating your mom.","My physics teacher told me I had a lot of potential. Then he pushed me off a roof.","What's an anagram of Banach-Tarski? *Banach-Tarski Banach-Tarski.*","Protons have mass? I didn't even know they were Catholic.")" (if:(get_intellect:) > 5)[(set:$funny to 2)(nl:2)(twirl:"You laugh out loud.","You giggle sheepishly - you're smart enough to get that.","You laugh.")🧠](else:)[(nl:2)(set:$funny to 0)(twirl:"You don't get it...","You don't really get it.","You don't get it.")🧠]](else:)[(twirl:"People tell me I'm condescending... *hint*, that means I talk down to people.","I saw a sign that said 'watch for children', and I thought, 'that sounds like a fair trade.'","A man walked into his house and was delighted when he discovered that someone had stolen all of his lamps. Get it - de-lighted?","A photon walks into a hotel. The bellhop asks if he needs help with his bags. The photon replies, 'No thanks, I'm travelling light.'","A girl walks into a bar and asks the bartender for a double entendre, so he gave it to her.","It's hard to explain puns to kleptomaniacs because they always take things literally.","I asked my North Korean friend how it was there, he said he couldn't complain.","I asked my North Korean friend how it was there, he said he couldn't complain.","Jurisprudence fetishist gets off on technicality.","Genuine headline about a man called Michael Foot being put in charge of a group of people whose job it is to discuss weaponry: *Foot Heads Arms Body*. Get it?","I have an L shaped couch... Lower case. Get it? Because it's just a line.","You've gotta hand it to blind prostitutes.","If I had a dollar for every time someone called me racist, a lot of black people would try to rob me.","You'd have to be really low to pickpocket a midget.","Am I the only one who realizes that blackboards are truly remarkable?","I don't have a girlfriend, I just know a girl who would get really mad if she heard me say that. Just kidding though, that's just a joke.","I haven’t slept for ten days, because that would be too long.","I was so surprised when the stationary store moved.","Maybe Hitler wouldn’t have been so grumpy if people hadn’t left him hanging for high-fives all the time.","An Irishman walks out of a bar... that's it, that's the whole joke.","There's 2 types of people in the world, those who can extrapolate from incomplete data...","There's 10 kinds of people in the world. Those who understand binary, and those who dont.","What if Soy milk is just regular milk introducing itself in Spanish?","Parallel lines have so much in common, but it’s a shame they’ll never meet.","Did you hear the one about the cannibal who dumped his girlfriend?","My wife accused me of being immature so I told her to get out of my fort.","Some woman was breastfeeding on the bus today, and people kept screaming 'you're disgusting, stop you monster!' but in hindsight it probably wasn't the best time for a wank.","They all laughed when I said I wanted to be a comedian; Well, they're not laughing now.","How did we know communism was doomed from the beginning? All the red flags.","Two mallards walk into a bar, the third one ducks.","So I rang up my local swimming pool. I said 'Is that the local swimming pool?' He said 'It depends where you're calling from.'","Moses was the first person to use Ctrl C as a shortcut.","I deleted all my German friends from my phone... now it's Hans free. Get it?","Alcoholics don't run in my family - they mostly stumble around and bump into things.")"(if:(get_charm:) > 5)[(Set:$funny to 1)(nl:2)(twirl:"You've heard that one before but it's still funny.","You've definitely heard that before but it's still funny.","You chuckle, even though you heard it before.","You giggle.","You giggle a little.","You giggle at that.")](else:)[(set:$funny to 2)(nl:2)(twirl:"You haven't heard that one, it's hilarious!","That's pretty hilarious.","You haven't heard that one before.","That was pretty funny - you giggle.","You giggle.")🍀]] (if:$funny > 0 and $character's "masculinity" > 90)[*(twirl:"Girl or guy... jokes are still funny.","Huh, jokes turn me on now. Interesting.","Heh. Gotta give him that one.","Hah. Weird how jokes seem to get me going now...")*]
<div class='options'>(if:$funny > 0)[(set:$gain to $funny)(display:"gain arousal")(nl:1)](link:"Next")[(replace:?text)[(display:"proposition joke next")]]</div>
}(display:"breathing ambience"){
(if:$brag is "money")["(twirl:"Hah, I knew you'd like hearing that, $petname.","Yeah, I knew you'd like hearing that. Bitches love money.","Yeah, I know women like me for my money, but that's fine, it's cheap. Just like them, haha. Just kidding. Kind of, $petname.","Yeah, I knew you'd like hearing that, $petname.")"(nl:2)
(if:(money:) < 250)[(set:$gain to 2)](else:)[(set:$gain to 1)](if:$character's "masculinity" > 85)[*(twirl:"So weird, having a guy bragging about his money to me...","Feels so weird, having a guy bragging to me about his wallet.","I wonder how rich he really is.","Since I've been a guy myself, I know he could totally just be making it up.")*
(if:$character's "masculinity" > 90)[<div class='options'><mark>You're too masculine to get turned on by his boasting...</mark></div>](else:)[(display:"gain arousal")]]]
(if:$brag is "oral")[
"(twirl:"Hehe, now you're curious!","I can tell you're curious now, $petname!","If you're lucky, you'll experience those skills for yourself, $petname...")"(nl:2)
(set:$gain to 2)(display:"gain arousal")
]
(if:$brag is "fitness")["(twirl:"Yeah, I can tell you like a guy who's in shape, $petname.","Yeah, an in-shape guy is much better in the sack.","In shape guys like me can protect you better, and fuck you better. We're better at everything, $petname.","Yeah, I'm a beast in the sack, $petname.","And it's not all for show, I'm definitely a beast in the sack, $petname.","Yeah, guys like me can toss around little girls like you, haha.","Yeah, I bet I could lift you in the air with one hand, $petname.")"(nl:2)
(set:$gain to 1)(if:$character's "masculinity" > 90)[*(twirl:"So weird, having a guy bragging about his body to me...","Heh. This is weird.","Heh, guys are so one dimensional.","It's still a little weird...","I feel weird.")*
(if:$character's "masculinity" > 90)[<div class='options'><mark>You're too masculine to get turned on by his bragging...</mark></div>](else:)[(display:"gain arousal")]]]
(if:$brag is "chad")["(twirl:"Just don't get too attached,","Just don't get too smitten,","Just enjoy the time we got together,","Just enjoy what time we do have together,","Just be glad I picked you today,","Just be glad I picked you here and now,") $petname."(nl:2)(set:$gain to 2)(if:$character's "masculinity" > 90)[(twirl:"You feel weird.","You feel... strange.","This feels so strange.","You feel a strange shiver up your spine.") (twirl:"Like, you used to be a guy, but this guy is a BETTER guy than you were.","Like this guy is superior to how you were, as a man.","Like this guy is the alpha, and you're just a beta. Of course, you're a girl now.","You're a girl now, but you feel this competitive side of you, dying a horrible death.","As a dude, you might feel *threatened* by this guy, but now, he WANTS you.")
(if:$character's "masculinity" > 90)[<div class='options'><mark>That ALMOST turned you on...</mark></div>](else:)[(display:"gain arousal")]]]
(if:$brag is "cock")["(twirl:"Yeah, I bet you want to see it.","Yeah, I know you want to see it now, hah.","I know you want to see it now, haha.","I bet you want to see it.","I promise you, it's even better than you think.","It's even bigger than you think.")"(nl:2)
(set:$gain to 1)(if:$character's "masculinity" > 90)[(twirl:"You feel weird.","You feel... strange.","This feels so strange.","You feel a strange shiver up your spine.") (if:$npc's "generation" is "genx")[](else-if:$npc's "age" < 20)[(twirl:"Having some teenage guy brag about his dick to you.","Having some teen brag about his cock to you.","Having some young guy brag about his dick to you.")](else:)[(twirl:"You USED to have a dick. And now some guy is bragging about his to you.","Having a man brag about his dick to you.","Having some dude brag about his dick to you.")]
(if:$character's "masculinity" > 90)[<div class='options'><mark>It doesn't turn you on... you're too masculine.</mark></div>](else:)[(display:"gain arousal")]]]
(if:$brag is "nerd")["(twirl:"I'm glad you're a woman of culture.","You're cool for a girl.","It's cool that you can appreciate the finer things too.","It's cool that you can appreciate life's finer pleasures, your brain isn't just all about sex like most girls.")"(nl:2)
(set:$gain to 1)(if:$character's "masculinity" > 90)[(twirl:"What a nerd.","He's such a nerd.","Total nerd.")(if:(nerd:))[ (twirl:"Like me.","Just like me...")]]
(if:$character's "masculinity" > 90)[<div class='options'><mark>You're too masculine to get turned on.</mark></div>](else:)[(display:"gain arousal")]]
(if:$brag is "none")["(twirl:"Yeah, I'm pretty awesome.","Yeah, I'm pretty cool. Girls practically line up.","Yeah, I am pretty awesome.","Yeah, I'm pretty much the coolest guy ever.","Yeah, thank you! Sometimes girls don't recognize a guy like me as being truly cool.","That's right, glad you see it too.")"(nl:2)
(set:$gain to 1)(display:"gain arousal")]
<div class='options'>(link:"Next")[(replace:?text)[(display:"proposition next")]]</div>
}(display:"breathing ambience"){(if:$funny is 0)[(twirl:"He sees his joke didn't land, but continues anyway.","Even though his joke didn't land, he continues.","He continues despite his joke falling flat...")(nl:2)"(twirl:"Anyhoooo...","Anyhow...","Well, anyway...")](else:)[(twirl:"Seeing you're looking more at ease after that joke, he continues...","Since you're looking more comfortable after that joke, he continues.","He looks victorious after seeing that joke land.","He looks victorious when he hears you laugh.")(nl:2)"(twirl:"There's more where that came from.","There's a lot more where that came from.","By the way, I love your smile.","You look so nice when you smile.","You look so fucking hot when you smile.","You look so hot when you smile like that.")](if:$npc's "personality" < 4)[(display:"proposition neg in conversation")](else:)[(display:"proposition brag")]}{(set:$dance_type to "guy")
(replace:?text)[(set:$case to "upper")(display:"npc pronoun") (twirl:"dances close to you","dances up against you","dances with you").(if:$character's "masculinity" > 90 and $character's "alcohol status" is 0)[
*(twirl:"This feels weird, dancing with a guy...","Can't believe I'm dancing with a dude...","I'm dancing with a GUY... that's still weird to me.")*]<div class='options'>(link:"Slut it up.")[(if:$character's "masculinity" > 75 or $character's "reluctance" > 7 and not ($character's "alcohol status" > 3))[ *(twirl:"No.","Too masculine.","You don't want to.","You're not like that.")* (link:"Use Action Point (to dance sluttily)")[(set:$option to "slut")(set:$dance_type to "guy slut")(set:$action_params to (dm:"cost",1,"result","proposition dance club react","type","change screen"))(display:"use action point")]](else:)[(set:$option to "slut")(set:$dance_type to "guy slut")($cs:"proposition dance club react")]](link:"Normal dancing.")[(set:$option to "guy")(set:$dance_type to "guy")($cs:"proposition dance club react")]</div>]}{
(set:$mode to "dancing")
(if:$dance_type is "guy slut")[
(set:$time_events to $time_events + (a:"dance"))
(display:"club exit interlude")
(set:$quicktime_params to (dm:
"difficulty","medium",
"skill check","dance",
"skill check difficulty",80 - ($character's "alcohol status" * 10),
"type","dance",
"points to win",40,
"points",10,
"media","picture",
"sequence",(twisted:"left","right","left","right","up","down","up","down","up","up","down","up","down","left","right"),
"quicktime timer",1,
"result passage","proposition dance club result",
"backdrop","places/club/dance floor " + (text:(twist:1,6)) + ".jpg"
))
(unless:(twist:1,3) is 1 or )[(set:$quicktime_params's "backdrop" to "places/club/dancers/" + (text:$character's id) + ".jpg")]
(set:$quicktime_params's "type" to "satisfy")(set:$quicktime_params's "interrupt passage" to "club dance guy minigame")(set:$quicktime_params's "interrupt count" to 3)
($cs:"quicktime initialize")](else:)[
(set:$quicktime_params to (dm:
"objective",(twirl:"Don't let him cramp your style!","Show him your moves!","Keep enjoying yourself!","Try to enjoy yourself!"),
"skill check","dance",
"skill check difficulty",80 - ($character's "alcohol status" * 10),
"media","picture",
"timing message","but not faster than the rhythm of the music!",
"result passage","proposition dance club result",
"backdrop","places/club/dance floor " + (text:(twist:1,6)) + ".jpg",
"time",25,
"rhythm",500,
"sex loop",0,
"interrupt passage","proposition dance interrupt",
"type","resist cum",
"interrupts", 3
))
(if:(twist:1,2) is 1)[(set:$quicktime_params's "backdrop" to "places/club/dancers/" + (text:$character's id) + ".jpg")]
(if: (a:
"01 dont stop movin",
"02 plastic dreams",
"03 strike it up",
"04 boom boom",
"05 crockett",
"06 tubthumping",
"07 higher love",
"08 feels like heaven",
"09 behind the wheel",
"10 runaway",
"01 wake me up",
"02 la bamba",
"03 wanna dance",
"04 stayin alive",
"05 la fama",
"06 somethings got a hold",
"07 hentai",
"08 transform",
"09 sweet dreams"
) contains $song)[
(set:$bpm to $song of (dm:
"01 dont stop movin",130,
"02 plastic dreams",129,
"03 strike it up",117,
"04 boom boom",129,
"05 crockett",117,
"06 tubthumping",103,
"07 higher love",103,
"08 feels like heaven",129,
"09 behind the wheel",123,
"10 runaway",132,
"01 wake me up",81,
"02 la bamba",77,
"03 wanna dance",117,
"04 stayin alive",104,
"05 la fama",136,
"06 somethings got a hold",83,
"07 hentai",86,
"08 transform",100
"09 sweet dreams",125))
(set:$quicktime_params's "rhythm" to (ceil:60000/$bpm))
]
($cs:"dont cum initialize")
]
}{
(display:"describe breasts")(display:"describe butt")
(if:$text is "options")[
(set:$good_choice to (twirl:"Grind your $butt against his crotch","Flip your hair seductively","Expertly twerk your $butt","Show off your $breasts with a sexy shimmy","Move closer and erotically sway your hips","Drag a finger down your cleavage teasingly","Give him a sultry hair flip","Press against him in a sensual grind","Slowly stroke your thigh, eyes locked on his","Whisper dirty promises in his ear","Bite your lip seductively","Roll your hips against him","Trace your hands over your body","Press your $breasts against his chest","Trace a finger along your waistband teasingly","Lock eyes as you lick your lips","Slide up and down his leg provocatively","Move in close, teasing him with proximity","Gyrating your $butt just out of reach","Caress your $breasts over your $top","Slowly stroke your neck, eyes locked on him","Slide your hands down to cup your $butt in front of him","Give him a playful, sexy wink","Arch your back, thrusting your $breasts out","Slide his hand to your $breasts, encouraging a squeeze","Thumb the edge of your panties teasingly","Expertly spin and grind your $butt against him","Press your ass against his erection","Lick your lips seductively and wink","Slowly rub your $breasts, keeping eye contact","Slide your hand up your thigh, hinting at more","Smirk as you firmly grasp his bulge","Rotate your hips, making him feel your heat","Mouth the word 'fuck me' as you dance","Slide his hand along your inner thigh","Knead your $breasts, biting your lip","Erotically grind your $butt on his erection","Slide your hand over your $breasts, making eye contact","Give him a view of your $breasts","Run your hands down your body, over your $butt","Bend over, giving him a glimpse","Spread your legs, offering a good view","Drop into a low squat, grinding your $butt against him","Push your $breasts together seductively","Run your hand up your inner thigh slowly","Nibble on your finger, gazing at him","Cup your $butt, shaking it teasingly","Press against him, letting him feel your hardened nipples","Rub your $butt against his thigh, looking back at him","Stroke your hand over your crotch, locking eyes with him","Moan softly into his ear","Trace a finger over your panty line","Dance close, letting your breath tickle his neck","Bend over and caress your inner thighs","Slide your hand into your panties, then let him taste","Suck on a finger, then let it graze your $breasts","Grind your $butt against his crotch, in line with the rhythm","Lower your hands to your $butt and squeeze, giving him a stimulating show","Bounce your ass against his pelvis, teasing him with the view","Twerk your $butt against his crotch, making him groan","Press your $breasts against his chest, rubbing them against him","Roll your hips in an explicit manner, keeping his attention captive","Seductively trace a finger down your cleavage while maintaining eye contact","Bring his hand to your $butt, encouraging a firm squeeze","Gyrate your $butt on his lap, driving him wild"))
(set:$bad_choice to (twirl:"Lose your balance while trying to twerk","Accidentally elbow his crotch","Slip while trying to dip low","Trip over your own feet","Flash the entire club when your top slips","Accidentally headbutt him","Step on his foot while trying to twerk","Snag your hair in a button on his shirt","Lose a heel while trying to grind","Fall flat on your face during a hip roll","Run into a waitress while trying to back it up","Hit him in the face with your hair flip","Fall over while trying to do a sexy spin","Pull a muscle trying to drop it low","Get tangled in your own outfit","Choke on your own spit while whispering to him","Miss a step and fall backwards","Step on his foot during your booty shake","Accidentally slap him while gesturing wildly","Trip over your own feet while gyrating","Get your earring stuck in his shirt","Fall off the stage while trying to show off","Bang your head on his while trying to be flirty","Misstep and fall into his lap","Fall while trying to give him a lap dance","Bump into a stranger and spill their drink","Mistime a hip thrust and bump heads","Yank his hair while trying to pull him closer","Stumble while trying to do a sexy strut"))]
(if:$text is "good")[(twirl:"He groans as you grind your $butt into his crotch, pulling you closer.","His hands grab your hips as you expertly twerk your $butt.","He can't take his eyes off as you show off your $breasts with a sexy shimmy.","He draws you closer, appreciating your sensuous hip sway.","His eyes darken as your finger traces your cleavage teasingly.","His hands tighten on your hips as you give him a sultry hair flip.","He matches your grind, your bodies moving as one.","His eyes are locked on yours as you stroke your thigh.","His arousal presses into you as you whisper dirty promises in his ear.","He groans appreciatively as you bite your lip seductively.","He guides your hips, intensifying the roll against him.","His eyes follow your hands as they explore your own body.","He grinds against you as your $breasts press against his chest.","His breath hitches as your finger teases your waistband.","His eyes darken when you lick your lips seductively.","His pulse quickens as you slide up and down his leg provocatively.","His hands grip your hips tightly as you tease him with proximity.","His body react as you gyrate your $butt just out of reach.","His hand instinctively moves to your $breasts when you cup them.","His gaze darkens, trailing after your hand as it strokes your neck.","His fingers follow the path of yours as you slip them inside your $bottoms.","His hands hungrily grip your waist as you expertly grind your $butt on him.","He pulls you closer as you press your ass against him.","His breath hitches as your $breasts catch his attention.","His hand unconsciously follows yours as it caresses your inner thigh.","His lips part when your hand strokes his bulge.","He moans into your ear as you rotate your hips against him.","He doesn't break eye contact as you mouth 'fuck me' while dancing.","His fingers tighten on your thigh as he gets a taste of you.","He breathlessly compliments your moves as you knead your $breasts and bite your lip.","His grip tightening as you erotically grind your $butt on his erection.","His eyes feast on the sight of your hand sliding over your $breasts.","His eyes glued to your ass as you give him a taste.","His hands move along with yours as they caress your inner thighs.","His hand mirrors yours as you tease your panty line.","He's entranced as you bend over and caress your inner thighs.","He grunts as you slide your hand beteween your legs.","He swallows hard as you suck on a finger, then let it graze your $breasts.","His hips joining your rhythm as you grind your $butt against his crotch.","He grabs your waist as you lower your hands to cup your $butt.","He pulls you closer as you bounce against his arousal.","He grinds up to meet your $butt as you bounce it against his pelvis.","His hands tighten around your waist as you twerk on his crotch.","His hands pull you closer as you press your $breasts against his chest.","His fingers follow the trail of yours as they roll over your hips.","His hand instinctively moves to cup your $butt as you lower yourself into a squat.","His hands roam to your $butt as you push your $breasts together.","He pulls you closer as you run your hand up your inner thigh slowly.","His hands squeeze your waist as you teasingly nip his ear.")]
(if:$text is "bad")[(twirl:"He chuckles as you lose your balance mid-twerk, steadying you.","You accidentally elbow his crotch and wince as he doubles over in pain.","You slip while dipping low, causing his brows to rise.","You trip over your own feet, and he catches you before you fall.","Your top slips, flashing the club, and he looks away, trying not to laugh.","You accidentally headbutt him, as you both gasp in surprise.","You step on his foot while trying to twerk and he winces.","Your hair gets caught in a button on his shirt, leaving you both in an awkward tangle.","You lose a heel while grinding and he tries to cover his amusement.","Your hip roll attempt sends you face-first onto the floor, causing him to stifle a laugh.","You back it up a little too far and run into a waitress, spilling her drinks.","Your hair flip smacks him in the face, leaving him blinking.","You fall over during a sexy spin, and he tries to suppress a chuckle.","You pull a muscle while trying to drop it low, and he tries to hide his concern behind amusement.","You get tangled in your own outfit while attempting a sexy move, his eyebrows raised in surprise.","You choke on your own spit while whispering something sultry, and he pats your back sympathetically.","You miss a step while dancing and fall backward, with him scrambling to catch you.","You step on his foot during your booty shake, and he bites back a yelp.","Your enthusiastic hand gesture accidentally slaps him, causing his eyes to water.","You trip over your own feet while gyrating, and he tries to hide his grin.","Your earring snags his shirt, leaving you both struggling to untangle yourselves.","You fall off the stage while trying to show off, leaving him concerned and amused.","You headbutt him while trying to appear flirty, and he rubs his forehead.","You misstep while gyrating and fall into his lap, your faces turning red.","You fall while trying to give him a lap dance, and he chuckles awkwardly.","You bump into a stranger and spill their drink, drawing attention from the crowd.","You mistime a hip thrust and accidentally bump heads, causing you both to wince.","He stifles a laugh as you yank on his hair while trying to pull him closer.","You stumble during your sexy strut, and he tries to keep a straight face.","You accidentally trip over your own feet, causing him to rush forward and catch you before you fall.")]
(if:$text is "bad")[(set:$points to (floor:$points / 2))]
}{
(set:$mode to "dancing")(if:$dj is "aphrodite")[|image>[(if:(is_fem:) and $dance_type is "alone" and $core_chars contains $character's "id" and (twist:1,4) is 1)[(print:"<img class='greyborder' src='img/places/club/dancers/" + (text:$character's id) + ".jpg' width=100% height=auto>")](else:)[(print:"<img class='greyborder' src='img/places/club/dj aphrodite.jpg' width=100% height=auto>")]][]<text|](else:)[|image>[(if:(twist:1,2) is 1 and not ((words:$song) contains "interlude"))[(if:(is_fem:) and $dance_type is "alone" and $core_chars contains $character's "id" and (twist:1,4) is 1)[(print:"<img class='greyborder' src='img/places/club/dancers/" + (text:$character's id) + ".jpg' width=100% height=auto>")](else:)[(print:"<img class='greyborder' src='img/places/club/mariselle/singing.jpg' width=100% height=auto>")]](else:)[(print:"<div class='top_left_pic'><video disableRemotePlayback src='img/places/club/mariselle/singing.mp4' autoplay='' loop='' muted='' playsinline/></div>")]][]<text|]
(replace:?text)[(if:(win:))[(if:$dance_type is "guy slut")[(set:$gain to 2)](else:)[(set:$gain to 1)]](else:)[(set:$gain to -1)](display:"club gain enjoyment")(display:"club dj voice lines")
<div class='options'>(link:"Next")[(replace:?text)["(if:$npc's "tags" contains "chad")[(twirl:"I bet you're parched after keeping up with me.","Bet all that effort has got you thirsty, huh?","Did all that moving work up a thirst, sweetheart?","Think it's time you cooled off, don't you?","You look like you could use a cold one.","Why don't we hit the bar for a bit?","I bet you're all dry after that dance.","How about we fuel up at the bar?","Think it's time we took a break.")](else-if:$npc's "tags" contains "fuckboy" or $npc's "tags" contains "creepy")[(twirl:"You danced pretty hot back there, but you look even hotter all sweaty.","After all that grinding, I bet we could use something wet, right babe?","I can only imagine how thirsty you are after how close we got.","Hey, that intense dance made you all hot and bothered, let's cool you down.","Maybe I should get you something to help quench that fiery look in your eyes.","After all that friction, how about I make you even more slippery?","You look like you could use a drink to help forget about that dance.","Now that we've heated things up, let's find something to moisten those lips.","Feeling a bit dry after all that touching? I got just the thing.","We wore each other out, didn't we?")](else-if:$npc's "age" > 45)[(twirl:"Well, aren't you ready for a cold one after that jig?","Think you're due for a refreshing pause after all that hoofing.","How's about we wet our whistles, little lady?","Let's mosey on over to the bar, time for a breather.","That was quite the hustle, ready for a pop?","Why don't we press pause for some liquid courage?","Reckon we chew the fat over some suds?","How's about we slake our thirst after that spin on the old dance floor?","What do you say we take five and have a drink?","After scorching the dance floor, it's only right we cool down.")](else-if:$npc's "tags" contains "nerd")[(twirl:"Wow, all that thermogenesis has likely increased our body temperatures, don't you think?","Engaging in intense exercise increases our hydration need, don't you agree?","Performing such rigorous activity would naturally dehydrate us, wouldn't it?","Following the laws of biology, we should replenish our fluids now.","According to Newton's third law, for every dance, there must be an equal and opposite refreshment.","Considering the energy we just expended, a resupply of liquids is advisable.","Our cardiovascular exertion dictates a necessary hydration break, wouldn't you say?","According to the laws of thermodynamics, we're due for a cold one.","After such a calculated set of movements, we're statistically likely to be thirsty.","The probability of thirst after all that movement is high. Shall we balance the equation?")](else-if:$npc's "age" < 24)[(twirl:"Wow, all that was so lit! Aren't you thirsty, fam?","We've been going non-stop, no cap. Let's get some drinks.","All this dancing is giving me major thirst vibes.","This boomer needs a hydration check. You too?","We just crushed that dance, periodt. Time to quench the thirst.","Dude, where's my drink? Let's hit the bar.","That dance was fuego! Ready to chill with a cold one?","After all that hype, I'm parched. Let's secure that drink, sis.","I'm parched AF.","Bruh, I'm dead thirsty after that turn up. Let's vibe at the bar.")](else-if:$npc's "tags" contains "gentleman")[(twirl:"Might I propose a brief intermission for libations, dear lady?","Perchance you're in need of a refreshing tincture after our dance?","Shall we adjourn to the bar for some liquid nourishment, my lady?","A pause in our revelries seems appropriate. Shall we refresh ourselves?","Might I suggest a refreshing beverage to continue our delightful evening?","Shall we partake in a liquid interlude, dear madam?","Let us quench our thirst and restore our energies, shall we?","Would my lady require a replenishment of her drink?","Might I interest you in a restorative potion at the bar, dear lady?","Shall we decamp to the bar for some thirst quenching, my lady?")](else:)[(twirl:"All this grinding has got me parched.","Feeling a little dry after all that moving, sweetheart?","I reckon we've earned ourselves a cool-down.","Whew, it's getting hot in here.","How about we hydrate a little, love?","You look like you could use a refreshment.","All this dancing surely got you thirsty.","Let's take a break.","Need a breather?","Time for a break, I think.")] (display:"proposition buy drink club")]]</div>]
}{
(display:"describe butt")(display:"describe breasts")(set:$hands to $npc's "hands")(set:$top to $outfit's "top")(set:$bottom to $outfit's "bottom")
(if:$npc's "tags" contains "chad" or $npc's "tags" contains "jock" or $npc's "dominance" > 7)[
(if:$trigger is "breasts" and (twist:1,2) is 1)[
(twirl:"His hand sneakily slips to cup your $breasts, squeezing them over your top.","A $hand hand steals forward, boldly cupping and kneading your $breasts.","His hand inches forward, masterfully teasing your $breasts with a calculated stroke.","His fingers take liberty with your $breasts, tracing their outlines expertly.","His palm runs over your chest, feeling the curves of your $breasts through the fabric.","You can feel his fingers kneading your $breasts, playing with them as he continues to dance.","His hands roam, exploring your $breasts, squeezing and worshiping them.","His hand fills with the weight of your $breasts, fingers teasing your nipple.","His grip is firm on your $breasts, a thumb circling your nipple, stirring an unfamiliar heat.","His palm strokes over a nipple, a soft pinch making you stifle a moan.","He plucks at your nipples through your $top, creating a delicious friction.","His fingers knead your $breasts, thumbs strumming over your increasingly hard nipples.","His hand captures a breast, squeezing hard enough to pull a gasp from you.",
"His hand blunts and kneads your right $breast, making you gasp.","His fingers trail under the band of your bra, tracing the curves of your $breasts.","His strong fingers give a squeeze to your left $breast, shooting thrill up your spine.","His palms circle your breasts underneath your $top, fingertips teasing your nipples.","He plays with your $breasts, fingers twisting and pulling at your nipples.","His fingers dance over your clothed breasts, squeezing them in time with the music.","His hand snakes around, cupping your $breasts over your $top.","His fingers teasingly graze across your $breasts, causing your nipples to stiffen.","One of his $hands hands slides up and squeezes your $breasts slightly.","He boldly cups your $breasts under your $top, his hot palm against your skin.","His fingers knead your $breasts through your $top, stirring pleasure deep within.","His hands dig into your $breasts, his rough squeeze sending a shiver up your spine.","His thumb and forefinger find your nipple through your $top, pinching lightly.","He slips a hand under your $top, his fingertips brushing against the underside of your $breasts.","His palm grinds against your $breasts, the friction making your nipples tighten.","He kneads your $breasts with unrestrained urgency, his boldness raising your pulse.")
](else-if:$trigger is "butt" and (twist:1,2) is 1)[
(twirl:"His hand slides down your back, groping your $butt through the material of your $bottom.","His strong hand firmly grips your $butt, pulling you deeper into his grind.","His fingers confidently grip your $butt, squeezing and kneading the flesh.","His hand slides over your $butt, giving it a firm squeeze as he grinds against you.","He cups your $butt, his thumb running over your cloth-covered crease.","He slyly reaches down to grope your $butt, holding you tightly against him.","His hand descends, firmly palming your $butt over your $bottom.","He handles your $butt with an assured grip, pressing you closer.","He possessively grabs your $butt, kneading the soft flesh through your clothing.","He grinds harder into you, as his hands take a firm hold of your $butt.","His fingers trace the curve of your $butt over your clothing, gripping and pulling.","His hand grabs your $butt, squeezing and pressing you deeper into his arousal.")
](else:)[
(twirl:"His strong hands on your hips guide you close to him.","His body moves against yours, confident and sure.","He presses against you; his rhythm is infectious, dominating.","His hands roam your body as he pulls you against him.","He steers you with a firm grip, unyielding against your backside.","His fingers trace your curves, commanding your body to move with his.","His arm encircles your waist, pulling you flush against him.","His hot breath is against your neck.","His palms slide down, splaying across your ass.","You feel his firm grip pulling you closer into a shameless grind.","The press of his body communicates his raw desire.","His fingers explore, possessive and sure.","A hand slides around your waist, pulling you into his heat.","He melds his body to yours, demanding your attention.","His confident touch marks you as his for the night.","You feel his hot exhale against your neck, setting your skin ablaze.","His hand trails seductively up your side.","The steady roll of his hips against yours leaves no room for ambiguity.","He effortlessly commands your body, guiding you to his rhythm.","His thumb rubs sensuously across your hip bone.","His hands are confident explorers, mapping your body's responses.","He maneuvers you effortlessly, like you’re a part of him.","His teasing touch sends a thrilling shiver up your spine.","He grinds against you, a steady rhythm that's unabashedly carnal.","His hands, firm and possessive, hold you captive against him.","His breath fans hot against your skin, a reminder of his interest.","He moves assertively, his bold intentions clear.","His touch is both promise and command, insistent and irresistible.","His body is a forcefield of dominance, an intoxicating contrast to your own.","His fingers trace a path below your waist, a promise of things to come.","His hardness presses insistently against your ass, owning your attention.","His grip tightens on your hips, pulling you onto his throbbing arousal.","You can feel his cock straining against his pants, a silent demand.","His fingers stroke your thigh, inching dangerously close to your pussy.","He grinds deeper into you, leaving no doubt about the status of his erection.","The push of his arousal against your ass has your breath hitching.")
]
](else-if:$npc's "tags" contains "fuckboy" or $npc's "personality" < 4)[
(if:$trigger is "butt" and (twist:1,2) is 1)[
(twirl:
"His hand roams down to your $butt, his harsh grip leaving no room for subtlety.","His fingers grope your $butt through the fabric of your $bottom, squeezing with zero finesse.","His hand slaps your $butt with a crude familiarity, his cocky smirk turning your stomach.","His sweaty palms cup your $butt, his touch way too firm.","He has the audacity to slide an intrusive hand down your back and grope your $butt.","He gropes your $butt without any respect, treating you like a piece of meat.","His hand imprints itself on your $butt, squeezing with an indecency that matches his lewd grin.","His hand is on your $butt, squeezing roughly through your $bottom.","The $hands palm of his hand blindly gropes your $butt, getting a handful.","He slaps your $butt with a low laugh, clearly thinking he's some kind of lothario.","He fondles your $butt with a ravenous delight.","The fuckboy boldly smacks your $butt while he dances against you.","His hand roves down to your $butt, groping you without any hint of tact.","His rough fingers pinch your $butt, the intrusive touch making you jerk.","His crude touch fondles your $butt, making you stiffen.","His sweaty hand clings to your butt, squeezing and kneading it crudely.","The heat from his palm bleeds through your thin skirt as he relentlessly fondles your $butt.","His fingers dig into the softness of your $butt, treating you like an object.","He grabs your $butt, his fingers digging in possessively.","His hand slaps your $butt, the crude sound lost in the music.","He gropes your $butt, blatantly violating your personal space.","His fingers knead your $butt, his animated grope leaving a sour taste in your mouth.","He shamelessly palms your $butt, squeezing the flesh like he owns it.","His hand fondles your $butt, the bold touch making you tense.","He audaciously cups your $butt, his sweaty palm leaving a cold trail on your skin.","His palm strokes over your $butt, his fingertips roughly fumbling with the hem of your $bottom.","He smacks your $butt, the harsh sound echoing in your ears.")
](else:)[
(twirl:
"His cheap cologne floods your nostrils as he grinds obnoxiously close.","His hands are everywhere at once, no pretense of subtlety as he feels you up.","He gropes your $breasts, his crude touch leaving you feeling cheap.","He grinds against your ass with no finesse, just raw and unrefined lust.","His hands roam without permission, grasping and kneading with no regard for your comfort.","He moves arrhythmically behind you, a heavy and obtrusive presence.","He leers at you over your shoulder, his eyes roaming lewdly over your body.","He's all up in your space, his body a sleazy barrier against the music.","His hands leave a trail of cheap cologne as they greedily explore your body.","His touch is invasive, his fingers prodding and groping with abandon.","Sweat drips down his forehead, splashing onto your shoulder in rhythm with his awkward thrusting.","He grinds against your ass, his mouth hanging slack with crude appreciation.","He plants sloppy kisses on your neck, reeking of cheap liquor.","He's doggedly insistent, caging you with his overeager body.","His hands cover your $breasts without consent, squeezing them roughly.","Boorish and bold, he grinds into you, leaving you feeling lewdly deprived of your dignity.","He fondles your $breasts clumsily, stinking of stale sweat and cheap cologne.","His meaty palms squeeze your $butt, rough and uncouth.","His hot, boozy breath washes over your neck as he gropes you.","He grinds himself against your ass, the bulge in his pants uncomfortable and intrusive.","He's all hard edges and unpleasant smells, his rough hands greedily tracing your body.","His fingers curl around your $breasts without invitation, his touch rough and unskilled.","He presses himself eagerly against your back, coarse stubble scratching your skin.","His touch is rough, insistent, leaving you feeling indignant.","He thrusts against you with a crude rhythm, his sweat-slick body a heavy weight.","His fingers dig into your hips, his grip overly tight and possessive.","His hands are all over your body, leaving a trail of perspiration and cheap cologne.","He grinds obnoxiously against you, invading your space with his unwelcome arousal.","He maneuvers you roughly, treating you more like a possession than a partner.","His hard fingers dig into your $breasts, his crude touch seemingly everywhere at once.","His touch is invasive, his hands exploring your body with predatory intent.","He grinds against your $butt, his movements rough and unskilled.","He forcefully presses himself against you, his sleazy touch intrusive and unpleasant.","His clumsy fingers grope your $breasts, encased in sweat and cheap cologne.","He grinds against you with a trashy rhythm, his crude touch invading every inch of your space.","He presses his hardness insistently against your ass, a crude, unwanted advance.","He grinds himself upon you, his arousal uncomfortable and intrusive.")
]
](else-if:$npc's "personality" > 7 or $npc's "tags" contains "nice" or $npc's "tags" contains "gentleman")[
(twirl:"His fingers lightly touch your waist, leading you through the rhythm of the dance.","He sways with you, matching your movements with a tender care.","His hand is warm at the small of your back, guiding you gently.","He keeps a respectful distance, his eyes locked with yours as he sways rhythmically.","He makes sure to keep space between you, moving gracefully to the beat.","His hands are gentle on your waist, guiding you through the dance.","You feel his hand on your back, a gentle pressure guiding your movements.","His touch is light and respectful, his body moving in sync with yours.","His hand is light on your waist, guiding you gently as you dance.","He moves with you, his touch gentle and full of courtesy.","His hands remain respectfully on your waist, moving in rhythm with the pulse of the music.","He holds you at a comfortable distance for the dance, his moves smooth and calculated.","His hand on your waist is comforting and warm, guiding you softly.","His touch is gentle, respectful, but confident as he leads you.","His hands don't wander, staying respectfully at your waist.","His gaze is warm, his touch respectful as he dances with you.","His fingers lightly grip your waist, guiding you in the dance.","He remains a respectful distance from you, his body moving in rhythm with yours.","His hands are gentle on your waist, his movements attuned with yours.","He moves with you, gentle but confident, controlling the rhythm but always respectful.","He dances with you, his hands firmly but respectfully placed on your sides.","His rhythm matches yours, a polite distance maintained throughout the dance.","His touch is light, respectful. His dancing skillfully adapted to match your rhythm.","He leads gracefully, maintaining a gentlemanly distance.","His touch is assured yet respectful, mirroring your movements on the dance floor.","He moves with the grace of a gentleman, his touch assertive yet considerate.","His body sways with yours, a comfortable space between you.","He matches your rhythm, his touch light and respectful.","He dances close, but not too close, his hand firmly yet gently guiding.","His hand rests lightly on your back, leading you in a dance, his movements gentle and respectful.",
"He easily matches your pace, his hands casually resting on your hips.","He moves fluidly with the beat, a relaxed grip guiding your movements.","He has this casual vibe, swaying rhythmically with a grin.","His movements are relaxed, his hands gently resting on your shoulders.","He moves leisurely, his fingers lightly entwined with yours.","He dances with a casual ease, his hands lightly touching your forearms.","His manner is chilled, his body moving smooth as water to the beat.","He keeps the dance light, his hands resting lightly on your hips.","His movements are smooth and effortless, his touch casual.","He has a relaxed grip on your hand, swaying lightly to the music.","His hands rest lightly on your waist as he rocks with the rhythm.","He moves with you, his touch casual yet secure.","He is casual, his hands resting on your waist as he moves with the music.","He's relaxed and laid back, his hand gently resting on your waist.","He's easygoing, his hands casually placed on your shoulders as you sway.","His grip is light, and he moves with a natural rhythm.","His motions are relaxed, just enjoying the rhythm of the music.","He's moving freely next to you, letting the music guide his movements.")
](else-if:$npc's "tags" contains "chubby" or $npc's "tags" contains "nerd")[
(twirl:"His body moves to the rhythm; slow, relaxed, and in sync with the music.","He holds you close, and you feel the press of his soft belly against you.","His soft belly presses against your back as you sway together.","You feel the warmth of his round body against yours.","His $hands hands, quite gentle, guide your hips in time with the beat.","You laugh as he clumsily steps on your foot, his face blushing.","He tightens his hold on your waist, pulling you closer with an awkward smile.","He brings you close, his body a comfortable cushion against your back.","The rhythm of his heart, steady and warm, beats against your shoulder blades.","His roundness molds against your back.","He nervously strokes your hip as he dances behind you.","His $hands hands are hot on your waist, squeezing gently.","He stumbles slightly, laughs at his own clumsiness, then rights himself.","He holds you firmly, his body plush and warm against yours.","His soft stomach presses into you with every swaying movement.","You feel him chuckling behind you, the vibrations tickling your back.","His arms encircle your waist, pulling you close into his softness.","His cheeks reddish in embarrassment as he apologizes for stepping on your foot.")
](else:)[
(if:$character's "masculinity" > 80)[(twirl:"His hands roam around your body, and you feel a sudden sense of helplessness.","The feel of a guy's $hands hands against your female one is still jarring.","His touch is distinct, a stark reminder of the shift in dynamics.","His firm hold on you is startling in its intensity, leaving an unfamiliar sensation coursing through your veins.","His fingertips trace over your hips, but it doesn't elicit the excited thrill you expected.","Every step makes your $breasts bounce, a sensation you're still not accustomed to.","You can feel your $breasts sway with the rhythm of the music.","You can feel your $breasts bounce with each sway of your hips.","You feel his fingers grip your $butt tighter, reminding you of your fuller, softer curves.","As he pulls you closer, you feel the curve of your $butt fit against his hips weirdly.","When he brushes against your backside, you become acutely aware of its new size, its new shape...","As you sway to the music, your $butt moves in a way you're not used to.","Your fuller $butt rubs against his crotch and you can't help but realise how much more noticeable it is.","His hand brushes against your $butt – a sensation you're still not used to.","His fingers trace over your rounded $butt, reminding you of your feminine physique.","You can't ignore the extra jiggle in your $butt as you move to the music.")
](else:)[
(twirl:"His arms pull you closer.","His body sways rhythmically against yours in tune with the beat.","There's a teasing smile on his face as he twirls you around.","His hands hold your waist as he guides your movements.","The both of you move to the rhythm of the music.","You catch his eye and he grins, pulling you closer.","His body radiates a comfortable warmth as you dance in sync.","There's a firmness to his grip that gives you a surprising thrill.","He spins you out and then pulls you back, your bodies colliding.","His fingers trace patterns on your back, sending shivers down your spine.","His hips sway against yours in tune to the beat.","His hand is on your back, guiding you through the throng of dancers.","His fingers lightly trail down your waist.","The firm press of his hand on your lower back guides your body to move with his.","You can feel the heat of his body, the rhythm of his heartbeat against your own.","His hands rest naturally on your hips, leading you through the dance.","His fingers gently squeeze your waist, guiding you in rhythm with the dangling music.","His arms encircle you, his breath warm against your neck.","You feel the rhythm of his body, a steady counterpoint to the pounding music.","His hands explore your back, tracing the curve of your spine.","He chuckles into your ear, a sound that echoes in your chest.","His body feels solid and warm against yours, grounding you amidst the rhythm of music.","His fingers brush against your hip, a surprisingly intimate touch.","The firm press of his hand moves you in rhythm with the music, your bodies moving as one.","His hand rests on your back, a weight that feels both reassuring and exciting.","He moves with a natural grace, his body swaying smoothly with yours.","His fingers lightly brush against your side, causing a surprise shiver to run through you.","He spins you around gracefully, pulling you back into his arms.","His thumb rubs slow circles into your hip, syncing with the rhythm of the music.")]
]
}{
[(set:_flirt_result to "fail")
(if:$drink_flirt is "true")[
You (twirl:"bat your eyes","send a sultry look","subtly send signals") towards (twirl:"a nearby guy.","a bored-looking man.","your target.")(nl:2)
(display:"generate random guy")
(set:$npc's tags to it + (a:"generic npc"))
(display:"npc screen update")
<div class='options'><mark>
(if:$outfit's "sluttiness" > (twist:4, 9))[
💘 Attraction check passed.
(set:_flirt_result to "success")
](else:)[
💔 Attraction check failed.
]
</mark></div>
<div class='options'><mark>
(if:$character's "effective charm" > (twist:6, 10))[
Charm check passed.
(set:_flirt_result to "success")
](else:)[
Charm check failed.
]
</mark></div>[]<image|
](else:)[(set:_flirt_result to "success")]
(if:_flirt_result is "success")[
(set:$purchase to (twirl:""))
(set:$purchase to (twirl:"Electric Flamingo","Seafoam Serenade","Stardust Jive","Technicolor Dreamboat","Sultry Siren","Neon Nectar","Pixie Pickle","Mermaids Delight","Holographic Hula","Satellite Surprise"))
(set:$alcohol_content to $purchase of (dm:
"Electric Flamingo",(twist:18,20) / 10,
"Seafoam Serenade",(twist:10,14) / 10,
"Stardust Jive",(twist:14,16) / 10,
"Technicolor Dreamboat",(twist:8,12) / 10,
"Sultry Siren",(twist:15,17) / 10,
"Neon Nectar",(twist:16,19) / 10,
"Pixie Pickle",(twist:9,13) / 10,
"Mermaids Delight",(twist:10,14) / 10,
"Holographic Hula",(twist:8,12) / 10,
"Satellite Surprise",(twist:15,20) / 10,
"nothing",0
))($play:"sound","robot cocktail")
(replace:?image)[(print:"<div class='top_left_pic'><img class='greyborder' src='img/places/club/bar/drinks/" + (text:(lowercase:$purchase)) + ".jpg' width=100% height=auto></div>")](if:$npc's "tags" contains "chad")[(twirl:"Looks like you need a drink,","I think you need a drink,","Let's get you something to drink,","I want to buy you a drink,")](else-if:$npc's "tags" contains "creepy")[(twirl:"I think you need something to drink,","You look like you need something to drink,","Can I buy you a drink, please?")](else-if:$npc's "generation" is "genx")[(twirl:"You look old enough to drink - why don't I get you something,","Can I get you something to drink?","Why don't I buy you something?")](else-if:$npc's "tags" contains "nerd")[(twirl:"Can I b- buy you a drink?","Can I g- get you a drink?")](else-if:$npc's "personality" > 7)[(twirl:"Do me the honor of letting me buy you a drink,","Please, allow me to get you something to drink,","Can I get you something to drink?")](else:)[(twirl:"Can I buy you a drink?","Why don't we get you something to drink?","Can I grab you a drink?")]" (display:"npc pronoun") says, and
(if:$purchase is "Electric Flamingo")[(twirl:"orders you an Electric Flamingo.","gets you an Electric Flamingo.","orders you the house special, Electric Flamingo.")](else-if:$purchase is "Seafoam Serenade")[(set:$gain to 1)(twirl:"gets you a Seafoam Serenade.","orders a Seafoam Serenade for you.","gets you both a Seafoam Serenade.")](else-if:$purchase is "Stardust Jive")[(twirl:"gets you a Stardust Jive.","orders you a Stardust Jive.","gets you both some Stardust Jive.")](else-if:$purchase is "Technicolor Dreamboat")[(twirl:"gets you a Technicolor Dreamboat.","buys you a Technicolor Dreamboat.")](else-if:$purchase is "Sultry Siren")[(twirl:"gets you a Sultry Siren.","orders you a Sultry Siren.","orders you some Sultry Siren.")(set:$gain to 1)](else-if:$purchase is "Neon Nectar")[(twirl:"gets you a Neon Nectar.","gets you a super girly Neon Nectar.","orders you an expensive, Neon Nectar.")(set:$gain to 3)](else-if:$purchase is "Pixie Pickle")[(twirl:"gets you a Pixie Pickle.","orders you a Pixie Pickle.","orders you some Pixie Pickle.")](else-if:$purchase is "Mermaids Delight")[(twirl:"gets you a Mermaid's Delight.","orders you a Mermaid's Delight.","orders you some Mermaid's Delight.")](else-if:$purchase is "Holographic Hula")[(twirl:"gets you a Holographic Hula.","orders you a Holographic Hula.","orders you some Holographic Hula.")](else-if:$purchase is "Satellite Surprise")[(twirl:"gets you a Satellite Surprise.","orders you a Satellite Surprise.","orders you some Satellite Surprise.")](if:$character's "masculinity" > 90 and (twist:1,2))[(print:"
")*(twirl:"So weird, a guy buying ME a drink...","Feels strange... a guy buying ME a drink.","So weird, letting a guy buy ME a drink...","Wow, role reversal much?")*]<div class='options'>
(if:(knows_preg:))
[
(link:"No thanks (pregnant)")[(set:$response to "reject drink")(replace:?text)[(display:"proposition drink react")]]
]
(else:)
[
(link:"Drink")
[
(set:$response to "friendly")(replace:?text)[(display:"proposition drink react")]
]
(link:"No thanks")
[
(if:($character's "arousal" > 5 or $character's "alcohol status" > 1) and ((is_pp:)))
[ *(twirl:"You think your heart would break if you turned him down and disappointed him! (People Pleaser Side Effect)🍀","With how you feel right now, just considering rejecting his offer is giving you a headache! (People Pleaser Side Effect)🍀","You just could not bear it to turn him down—not with how you feel right now. (People Pleaser Side Effect)🍀")* (link:"Use Action Point (to reject drink)")
[
(set:$option to "refuse")
(set:$response to "reject drink")
(set:$action_params to (dm:"cost",2,"result","proposition drink react","type","replace text"))
(display:"use action point")
]
]
(else-if:$character's "arousal" > 5 or $character's "alcohol status" > 1)
[ *(twirl:"That wouldn't be polite.","I'd feel guilty, he's already bought it.","He already bought it for me, I'd feel bad turning it down.")* (link:"Use Action Point (to reject drink)")
[
(set:$option to "refuse")
(set:$response to "reject drink")
(set:$action_params to (dm:"cost",1,"result","proposition drink react","type","replace text"))
(display:"use action point")
]
]
(else-if:(is_pp:))
[ *(twirl:"That’d be so *mean* to do, though… (People Pleaser Side Effect)🍀","But it would probably make him *so happy* if you accepted it. (People Pleaser Side Effect)🍀","There’s *no way* you want to reject the offer and hurt his feelings. (People Pleaser Side Effect)🍀")* (link:"Use Action Point (to reject drink)")
[
(set:$option to "refuse")
(set:$response to "reject drink")
(set:$action_params to (dm:"cost",1,"result","proposition drink react","type","replace text"))
(display:"use action point")
]
]
(else:)
[(set:$response to "reject drink")(replace:?text)[(display:"proposition drink react")]]
]
]
</div>
](else:)[
You try to (twirl:"get a guy's attention","flirt with a guy","lead a guy on") but (twirl:"he's not interested.","he's not taking the bait.","he ignores you.")
<div class='options'>(link:"Next")[(set:$next to $location_params's "home")(display:"next")]</div>
]]<text|
}{
[(set:_flirt_result to "fail")
(if:$drink_flirt is "true")[
You (twirl:"bat your eyes","send a sultry look","subtly send signals") towards (twirl:"a nearby guy.","a bored-looking man.","your target.")(nl:2)
(display:"generate random guy")
(set:$npc's tags to it + (a:"generic npc"))
(display:"npc screen update")
<div class='options'><mark>
(if:$outfit's "sluttiness" > (twist:4, 9))[
💘 Attraction check passed.
(set:_flirt_result to "success")
](else:)[
💔 Attraction check failed.
]
</mark></div>
<div class='options'><mark>
(if:$character's "effective charm" > (twist:6, 10))[
Charm check passed.
(set:_flirt_result to "success")
](else:)[
Charm check failed.
]
</mark></div>[]<image|
](else:)[(set:_flirt_result to "success")]
(if:_flirt_result is "success")[
(set:$purchase to ($npc's "wealth") of
(a:
"beer",
"beer",
(twirl:"beer","tequila","fruity cocktail"),
(twirl:"beer","tequila","wine","fruity cocktail"),
(twirl:"beer","tequila","wine","whisky","fruity cocktail"),
(twirl:"beer","tequila","wine","whisky","fruity cocktail","fruity cocktail","fruity cocktail"),
(twirl:"beer","tequila","wine","whisky","fruity cocktail","fruity cocktail","fruity cocktail"),
(twirl:"tequila","wine","whisky","fruity cocktail","fruity cocktail","fruity cocktail"),
(twirl:"tequila","wine","whisky","fruity cocktail","fruity cocktail","fruity cocktail"),
(twirl:"tequila","wine","whisky","fruity cocktail","fruity cocktail","fruity cocktail","fruity cocktail")
))
(set:$alcohol_content to $purchase of (dm:
"beer",(twist:12,15) / 10,
"tequila",(twist:18,20) / 10,
"wine",(twist:12,16) / 10,
"fruity cocktail",(twist:7,11) / 10,
"whisky",(twist:16,17) / 10,
"nothing",0
))
(set:$se to $purchase)(display:"play sound")
(replace:?image)[($pic:"places/bar/drinks/" + $purchase + ".jpg")](set:$gain to 1)
(if:$npc's "tags" contains "chad")[(twirl:"Looks like you need a drink,","I think you need a drink,","Let's get you something to drink,","I want to buy you a drink,")](else-if:$npc's "tags" contains "creepy")[(twirl:"I think you need something to drink,","You look like you need something to drink,","Can I buy you a drink, please?")](else-if:$npc's "generation" is "genx")[(twirl:"You look old enough to drink - why don't I get you something,","Can I get you something to drink?","Why don't I buy you something?")](else-if:$npc's "tags" contains "nerd")[(twirl:"Can I b- buy you a drink?","Can I g- get you a drink?")](else-if:$npc's "personality" > 7)[(twirl:"Do me the honor of letting me buy you a drink,","Please, allow me to get you something to drink,","Can I get you something to drink?")](else:)[(twirl:"Can I buy you a drink?","Why don't we get you something to drink?","Can I grab you a drink?")]" (display:"npc pronoun") says, and (if:$purchase is "beer")[(twirl:"orders you a mug of beer.","orders you a tall glass of beer.","orders you some beer.","gets you a beer.")](else-if:$purchase is "tequila")[(set:$gain to 1)(twirl:"gets you a shot of tequila.","orders a pair of tequila shots.","gets you both some tequila.","orders some tequila.")](else-if:$purchase is "wine")[(twirl:"gets you a glass of wine.","buys you a glass of red wine.")(set:$gain to 2)](else-if:$purchase is "fruity cocktail")[(twirl:"gets you a fancy cocktail.","gets you a super girly cocktail.","orders you an expensive, fruity cocktail.")(set:$gain to 3)](else-if:$purchase is "whisky")[(twirl:"gets you a glass of whisky.","orders you a glass of whisky.","orders you some whisky.")(set:$gain to 1)] (if:$character's "masculinity" > 90 and (twist:1,2))[(print:"
")*(twirl:"So weird, a guy buying ME a drink...","Feels strange... a guy buying ME a drink.","So weird, letting a man buy ME a drink...","Wow, role reversal much?")*]
<div class='options'>
(if:(knows_preg:))
[
(link:"No thanks (pregnant)")[(set:$response to "reject drink")(replace:?text)[(display:"proposition drink react")]]
]
(else:)
[
(link:"Drink")
[(set:$response to "friendly")(replace:?text)[(display:"proposition drink react")]]
(link:"No thanks")
[
(if:($character's "arousal" > 9 or $character's "alcohol status" > 2) and ((is_pp:)))
[ *(twirl:"You think your heart would break if you turned him down and disappointed him! (People Pleaser Side Effect)🍀","With how you feel right now, just considering rejecting his offer is giving you a headache! (People Pleaser Side Effect)🍀","You just could not bear it to turn him down—not with how you feel right now. (People Pleaser Side Effect)🍀")* (link:"Use Action Point (to reject drink)")
[
(set:$option to "refuse")
(set:$response to "reject drink")
(set:$action_params to (dm:"cost",2,"result","proposition drink react","type","replace text"))
(display:"use action point")
]
]
(else-if:$character's "arousal" > 9 or $character's "alcohol status" > 2)
[ *(twirl:"That wouldn't be polite.","I'd feel guilty, he's already bought it.","He already bought it for me, I'd feel bad turning it down.")* (link:"Use Action Point (to reject drink)")
[
(set:$option to "refuse")
(set:$response to "reject drink")
(set:$action_params to (dm:"cost",1,"result","proposition drink react","type","replace text"))
(display:"use action point")
]
]
(else-if:(is_pp:))
[ *(twirl:"That’d be so *mean* to do, though… (People Pleaser Side Effect)🍀","But it would probably make him *so happy* if you accepted it. (People Pleaser Side Effect)🍀","There’s *no way* you want to reject the offer and hurt his feelings. (People Pleaser Side Effect)🍀")* (link:"Use Action Point (to reject drink)")
[
(set:$option to "refuse")
(set:$response to "reject drink")
(set:$action_params to (dm:"cost",1,"result","proposition drink react","type","replace text"))
(display:"use action point")
]
]
(else:)
[(set:$response to "reject drink")(replace:?text)[(display:"proposition drink react")]]
]
]
</div>
](else:)[
You try to (twirl:"get a guy's attention","flirt with a guy","lead a guy on") but (twirl:"he's not interested.","he's not taking the bait.","he ignores you.")
<div class='options'>(link:"Next")[(set:$next to $location_params's "home")(display:"next")]</div>
]]<text|
}(if:$response is "friendly")[(set:$gain to $alcohol_content)(display:"drink alcohol")"(print:($character's "arousal" + 1) of (a:
(twirl:"Thanks,","Thank you,"),
(twirl:"Sure, thanks,","Thanks,","Thank you,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Thanks,","Hehe, thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Oooh! Thank you,","Hehe, thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Oooh! Thank you,","Hehe, thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Oooh! Thank you,","Hehe, thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Yummm, thank you,","Hehe, thanks,"),
(twirl:"Thank youuu,","Why, thank you,","Wow, thank you,","Yummm, thank you,","Hehe, thanks,")))(if:((twist:1,2) is 1) or $character's "arousal" > 4)[ (print:$npc's "name"),]" (twirl:"you accept the $purchase","you take the drink","you take it").
(set:$time_events to $time_events + (a:"drink"))"Enjoy.(if:$drink_flirt is "true")[(set:$response to "friendly")(display:"proposition")](else-if:$npc's "personality" < 4 and $npc's "dominance" > 6)[(display:"proposition neg in conversation")](else:)[(display:(twirl:"proposition brag","proposition joke"))]](else:)["(twirl:"No thanks","Sorry, I'd prefer not to drink")," you (twirl:"say","reject it","say","reject his drink","reject the drink").
"No worries.(set:$gain to 0)(if:$drink_flirt is "true")[(set:$response to "friendly")(display:"proposition")](else-if:$npc's "personality" < 4 and $npc's "dominance" > 6)[(display:"proposition neg in conversation")](else:)[(display:(twirl:"proposition brag","proposition joke"))]](print:$location_params's "bj location pic")(set:$social_timer to 0)
"(if:$satisfaction < 1)[(if:$npc's tags contains "chad")[(twirl:"I've had much better.","Well, I can't say that was the best blowjob I've had.","That certainly wasn't the best blowjob I've ever received, but it is what it is.","That was pretty underwhelming.","I don't think you were really doing your best there.","Not great.") (twirl:"But at least I emptied my balls - that's what matters,","But at least I came,","But it felt good to cum,","But I did need to cum,","But I did need to unload, so thanks for that,","But thanks for helping me get my rocks off,")"](else-if:$npc's age > 39)[(twirl:"Well, maybe I remember blowjobs being better when I was younger,","Well, I guess girls these days aren't picking up the proper BJ skills,","Seems like girls these days aren't picking up the oral skills they used to have,") (twirl:"but it felt good to fire the ol' cannon","but it was good to empty the ol nutsack","but at least I got to empty my nuts","but at least I got to drain my balls")(if:(twist:1,2) is 1)[, (twirl:"so thank you","so thanks")],"](else-if:$npc's tags contains "fuckboy")[(twirl:"Turns out, you weren't good at the one thing girls are supposed to be good at.","Looks like you weren't good at the one thing women are supposed to be good at.","You gotta start spending more time on your knees, girl.","You gotta work on them skills, girl.") (unless:(twist:1,3) is 1)[(if:$his_choice is "face")[(twirl:"But at least I got to cum on that pretty face,","But at least I got to ruin another woman's face, haha,","But it was good to cum all over your face, haha,","But it was still fun cumming all over that stupid face,","But I enjoyed drowning your little face,")](else:)[(twirl:"But at least I got to fill that pouty mouth with cum,","But any day I fill a woman's mouth with cum is a good day,","But I enjoyed filling your mouth with cum,")]](else:)[(twirl:"But good that Mr. Johnson and the juice crew got to empty themselves,","But hey, at least I came,","But it's ok, cause I still came, haha!")]"](else-if:$npc's tags contains "gentleman")[(twirl:"Maybe that wasn't the best, but it's ok.","That wasn't the best, but that's ok.","Not the best I've had, but that's ok.","You need to work on your form a bit, but that's ok.") (twirl:"You tried,","At least you tried,","You did what you could,")"](else:)[(twirl:"Not the best I've ever had.","That certainly wasn't *amazing.*","You need to work on your form a bit.","You could use a little more practice.","Frankly, that wasn't the best.") (unless:(twist:1,3) is 1)[(if:$his_choice is "face")[(twirl:"But at least I got to cum on that pretty face,","But it felt great cumming all over that pretty face,","But it was good to cum all over your face, haha,","But it was still fun cumming all over that lovely face,","But I enjoyed drowning your little face,") $petname,](else:)[(twirl:"But at least I got to fill that pouty mouth with cum,","But it felt great cumming in your mouth,","But it did feel awesome cumming in your mouth,")]](else:)[(twirl:"But at least I emptied my balls - that's what matters,","But at least I came,","But it felt good to cum,","But I did need to cum,","But I did need to unload, so thanks for that,","But thanks for helping me get my rocks off,")]"]](else:)[(if:$npc's tags contains "chad")[(twirl:"That was actually pretty good,","That was actually pretty well done,","Good job,","Good job with that beej,","You got some skills there,") (twirl:$petname,$character's "female name"). (if:$his_choice is "face")[(twirl:"I enjoyed","I liked","I quite enjoyed") (twirl:"painting","cumming on","hosing down") (twirl:"that","your") (twirl:"pretty","cute") face,](else:)[(twirl:"I enjoyed","I liked","I quite enjoyed") (twirl:"cumming in your mouth","shooting my load in your mouth"),]"](else-if:$npc's tags contains "gentleman")[(twirl:"Absolutely spiffing job,","Amazing job,","You did a WONDERFUL job,","That was lovely,","That felt so good,") (twirl:$petname,$character's "female name"). (twirl:"I really needed that,","I needed that,")"](else-if:$npc's tags contains "fuckboy")[(twirl:"Turns out, you're good at the things girls are supposed to be good at.","Looks like you want an award for that, haha!","Seems like you've been spending quality time on your knees, girl.","You got some skills, girl.") (unless:(twist:1,3) is 1)[(if:$his_choice is "face")[(twirl:"And I got to cum on that pretty face,","And I got to ruin another woman's face, haha,","And it was good to cum all over your face, haah-","And it was fun cumming all over that stupid face,","And I enjoyed drowning your little face,")](else:)[(twirl:"And I got to fill that pouty mouth with cum,","And any day I fill a woman's mouth with cum is a good day,","And I enjoyed filling your mouth with cum,")]](else:)[(twirl:"And good that Mr. Johnson and the juice crew got to empty themselves,","And I emptied my balls, that's what really matters,","Thanks for helping me empty my balls, haha!")]"](else:)[(twirl:"That was really good,","That felt great,","Oh my god, that was incredible,","That was fantastic,","Shit, that was amazing,","Fuck that was good,") (twirl:$petname,$character's "female name"). (if:$his_choice is "face")[(twirl:"And you look even better with cum on your face!","You look even better with cum on your face, haha,","You look like such a slut now, haha,","Shit, I really came a lot on your face, sorry about that,","Sorry about ruining your makeup there...","Damn, it felt good to cum on your face,")](else:)[(twirl:"And you even let me cum in your mouth!","And it was great emptying my balls into your mouth,","Felt great to empty my balls into your mouth,")]"]] (print:(twirl:$npc's "name","the " + (lowerfirst:$npc's "unfamiliar name"))) says, (twirl:"zipping up his pants","pulling his pants back on","zipping back up"). (if:$satisfaction < 0 and $reward is "money")[(if:$npc's tags contains "fuckboy" or $npc's tags contains "chad" and (twist:1,2) is 1)[(set:$reward to "none")He explains that your (twirl:"lackluster performance","sucky blowjob","poor performance") means (twirl:"no cash","he doesn't need to pay you").](else-if:$npc's tags contains "gentleman")[He says (twirl:"a deal is a deal","he's still honor the deal").](else-if:(twist:1,2) is 1)[He (twirl:"explains","says") that your (twirl:"lackluster performance","sucky blowjob","poor performance") means (twirl:"that you only get half the agreed payment","that you only get half the agreed money","that he can only pay you half").(set:$reward_amount to (ceil:$reward_amount / 2))]](if:$satisfaction > 1 and $reward is "money" and $npc's wealth > 3 and (twist:1,2) is 1 and not ($npc's tags contains "fuckboy"))[(set:$reward_amount to $reward_amount + 20)(twirl:"He even offers you a $20 *tip* since he loved your blowjob so much.","He even offers you a $20 tip.")](if:$reward is "money")[(nl:2)<mark>He gives you $(print:$reward_amount).</mark>(set:$character's money to $character's money + $reward_amount)(display:"refresh stats")(display:"refresh portrait")](if:$reward is "card")[(nl:2)He gives you an X-Change trading card.(nl:2)(if:$satisfaction < 0)[(set:$card_select to "common")](if:$satisfaction > 1)[(set:$card_select to (twirl:"common","uncommon","rare"))](display:"get card")](if:$reward is "lead")[(if:$office_events contains "swp restriction")[(display:"proposition bj restriction outcome")](else:)[(if:$satisfaction < 0)[(set:$his_satisfaction to (twist:1,5))](else-if:$satisfaction is 0)[(set:$his_satisfaction to (twist:3,7))](else-if:$satisfaction > 1)[(set:$his_satisfaction to (twist:8,10))](else:)[(set:$his_satisfaction to (twist:5,9))](display:"npc lead reward")]](nl:2)(twirl:"Then he leaves.","With that, he's gone.","Then, he leaves.","Satisfied, he leaves.")(unless:$cum_text is 0)[(if:$cum_text contains "clothes" and (datanames:$outfit) contains "colors")[(nl:2)(display:"cum on clothes")(if:(datanames:$outfit) contains "image")[<div class='top_left_pic'>(print:$outfit's "image")</div>]]](nl:2)(display:"proposition bj check shame")(if:$npc's tags contains "coworker")[(display:"save coworker")(set:$gain to 2)(display:"gain job sexual reputation")]<div class='options'>(if:$character's "status" is "cum" and $location_params's tags contains "clean")[(link:"Clean yourself up")[(if:$text contains "cumdump")[*(twirl:"Sorry, that's wayy too much cum to clean up here.","You've been turned into a cumdump, no way you can clean up easily.","You think you can easily just wipe up that much cum???","Sorry, there's wayyy too much jizz on your face to clean here.")*](else-if:($exhib_check:))[*(twirl:"It's too tempting to show your face off like this.","But think of all the looks you'll get! You can't clean it up now.","The thought of all the stares with this cum on your face convinces you to leave it.")*](else:)[(set:$character's "status" to ($core_female_status:))(display:"refresh portrait")]]](link:$location_params's "home option")[(if:$location_params contains "post sex code")[(display:$location_params's "post sex code")](set:$next to $location_params's "home")(display:"next")]</div>{
<div class='options'>
(set:$shame to 0)
(if:$character's "masculinity" > 75)[(set:$shame to (10-$npc's looks))(if:$npc's tags contains "fuckboy")[(inc:'shame',2)](if:$npc's age > 39)[(inc:'shame')](if:$npc's tags contains "chubby")[(inc:'shame',2)](if:$npc's tags contains "chad")[(set:$shame to (ceil:$shame / 2))](if:$reward is "none")[(inc:'shame',2)](if:$npc's tags contains "gentleman")[(dec:'shame',2)]](else-if:$character's "masculinity" > 50)[(set:$shame to 8-$npc's looks)(if:$npc's tags contains "fuckboy")[(inc:'shame',2)](if:$npc's age > 44)[(inc:'shame')](if:$npc's tags contains "chad")[(set:$shame to (ceil:$shame / 2))](if:$reward is "none")[(inc:'shame',2)](if:$npc's tags contains "chubby")[(inc:'shame',2)](if:$npc's tags contains "gentleman")[(dec:'shame',3)]]
(if:$score_multiplier is 0)[(set:$score_multiplier to 1)]
(set:$shame to (ceil:$shame * (1/$score_multiplier)))(set:$shame to (ceil:$shame / 1.5))(if:$character's "masculinity" < 80)[(set:$shame to (floor:$shame / 1.5))](if:$character's "masculinity" < 50)[(set:$shame to (floor:$shame / 1.5))](if:$character's "masculinity" < 40)[(set:$shame to (floor:$shame / 1.5))]
(set:$shame to $shame - $character's "alcohol status")(if:$character's "alcohol status" > 2)[(set:$shame to 0)]
(if:(is_bim:) and $shame > 0)[(set:$bimbo_shame to $bimbo_shame + $shame)(set:$shame to 0)]
(if:$shame < 1)[<mark>You don't feel any shame for doing that.</mark>(if:$character's "alcohol status" > 0)[(print:" ")(print:(text:$character's "alcohol status") of
(dm:"1","(-1 shame from being buzzed.)",
"2","(-2 shame from being tipsy.)",
"3","(No shame gain while drunk.)",
"4","(No shame gain while sloshed.)"))]](else:)[
(set:$new_mood to (dm:
"mood","ashamed",
"emoji","😔",
"strength",10,
"length",10,
"cause","because you gave a blowjob to a stranger.",
"charm buff",-3,
"arousal buff",-1,
"intellect buff",-1
))
(if:$npc's "tags" contains "coworker")[(set:$new_mood's "cause" to (twirl:"because you sucked off your coworker.","because you sucked your coworker off.","because you feel like the office cocksucker."))]
(display:"new mood")(display:"refresh stats")
(set:$shame_npc to $npc)
(set:$shame_reason to "proposition bj")
]</div>}{($notification_still:"You don't get a lead, since the office is upset with you for the SWP restrictions.")(if:$sales_job's "sexual reputation level" > 3)[(if:$his_choice is "face")["(twirl:"Perfect - the office slut wearing my load. At least you're embracing your new role since fucking up our commissions.","Already the office cumdump, and now you're the reason we're all suffering. Two for two, huh whore?","Look at that - company cocksucker AND company saboteur. You're really going for gold here, aren't you?","God, that's rich. The office mattress who tanked our sales. At least you're good at taking facials.","Everyone already knew you were the office slut, but now you're the slut who fucked us all over with SWP.","First you become the office cumrag, then you piss off Victor... at least you're consistent with bad decisions.","From office whore to company liability. Nice career path you've chosen.","Bet Victor would love to see this - his problem child, face covered in yet another coworker's cum.","Our favorite cocksleeve, now wearing my load while our commissions tank. Quite the legacy you're building.","The notorious office slut, now even more notorious. Congrats on the promotion, cumwhore.","Perfect look for DynaPill's favorite cumdump. How many loads is that this week?","Just another day for the office fuckdoll - sucking cock while our sales numbers crash.","Christ, you really can't help yourself can you? Ruining the company wasn't enough?","Really living up to your reputation - office slut AND company wrecker.","Fucking up the company wasn't enough attention for you? Had to keep being the office cumdump too?")]["(twirl:"Another load for the office cumdumpster. At least you're consistent about something.","Well, if it isn't everyone's favorite cocksucker, still at it even after fucking up our commissions.","The notorious office slut strikes again. Good to see the SWP mess hasn't changed your work ethic.","DynaPill's favorite cumhole, still serving the office even after screwing us all over.","From reliable cocksucker to unreliable coworker. What a career trajectory.","Another day, another load for the office whore who tanked our sales.","Look who's still making the rounds even after fucking us with these restrictions.","Company slut AND company saboteur - you're really padding that resume.","Guess being the office cocksleeve wasn't enough drama for you, had to piss off Victor too.","Hey, at least you're still good at your REAL job around here.","The famous office cumslut strikes again. How many is that today?","Keep this up and maybe they'll make you VP of Cock Service - since you ruined sales.","Such a reliable cocksucker. Shame about that reliability with actual work.","Still doing what you do best, even after screwing the whole office over.","Some things never change - you'll always be the office cumdump, won't you?")"]](else:)[(if:$his_choice is "face")["(twirl:"God, that's priceless. Not so high and mighty now with my cum dripping down your face. Maybe think about that before pissing off Victor next time.","Look at you now - face covered in cum when just last week you were acting all corporate. Guess Victor brought you down a few pegs, huh?","Damn, seeing you with my load all over your face almost makes these SWP restrictions worth it. Almost.","God that's fucking perfect. Miss Important Saleswoman, reduced to taking facials in the supply closet.","From closing deals to wearing my cum. That's what happens when you fuck with the wrong people, sweetheart.","Shit, wish the whole office could see you like this. Maybe then they'd forgive you for the SWP mess.","Now THIS is a good look for you. Better than that stuck-up attitude that got us into this mess.","Should take a picture, show Victor how well you're making amends with the staff.","Fuck, you look so much better with cum on your face than you did acting all professional last week.","Who would've thought - the girl who caused all our problems, now wearing my load like makeup.","Think about your choices while you clean that cum off your face, princess.","Now THAT'S how you handle office politics - on your knees with a face full of cum.","Should've seen this coming when you crossed Victor. Now look at you - face glazed like a fucking donut.","What a fucking sight. Got knocked right off that high horse, didn't you?","Bet you didn't see this coming when you were playing tough with the Maddox family.","From corporate hotshot to cum-covered mess. That's karma for you, sweetheart.","This is definitely going in the office gossip - miss perfect, wearing my load like a badge of shame.","Well would you look at that - turns out you DO have a talent for improving office morale.","How's that for a performance review? Next time think twice before fucking with our commissions.","Looks like somebody finally found their proper place in the corporate hierarchy.")"](else:)["(twirl:"Now that's what I call taking one for the team. Maybe you're not completely useless after all.","Swallowing cum in the supply closet - quite a step down from your previous position, isn't it?","At least you're good for something, even if it's just being the office stress relief.","Got a lot more coworkers to make happy if you want to make up for that SWP bullshit.","Guess this is your new role in the company - helping morale one blowjob at a time.","From sales superstar to office cocksucker. That's what happens when you cross Victor.","Well, at least you found your true calling after fucking up our commissions.","Should tell the boys you're finally putting that mouth to better use than causing trouble.","That's right, swallow it all. Consider it your new commission structure.","This is definitely a better use of company time than pissing off the Maddox family.","Looks like somebody finally learned their place in the corporate food chain.","Now THIS is what I call taking responsibility for your actions.","Keep this up and maybe the office will forgive you... eventually.","Better get used to this - you've got a lot of making up to do around here.","Now wasn't that better than causing trouble with Victor?","From corner office material to corner cocksucker. Life comes at you fast.","Definitely a better use of your talents than whatever got us into this SWP mess.","Consider this your new contribution to office productivity.","Who knew you'd be better at sucking cock than selling product?","Just remember this next time you think about causing trouble upstairs.")"]]
}{
(if:$npc's tags contains "coworker")[
(display:"npc leaves handling")
(set:$sales_job's "hours left" to $sales_job's "hours left" - 1.5)
(set:$gain to 4)
(display:"gain job sexual reputation")
]
<div class='options'>
(if:$scene_type is "sex bedroom")[
(set:$shame to 0)
(if:$character's "reluctance" > 8)[
(set:$shame to (6-$npc's looks))
(if:$npc's tags contains "fuckboy")[
(inc:'shame')
]
(if:$npc's age > 42)[
(inc:'shame')
]
(if:$npc's tags contains "chubby")[
(inc:'shame')
]
(if:$npc's tags contains "chad")[
(set:$shame to (ceil:$shame / 3))
]
(if:$npc's tags contains "gentleman" or $npc's personality > 6)[
(dec:'shame',2)
]
]
(else-if:$character's "reluctance" > 6)[
(set:$shame to 4-$npc's looks)
(if:$npc's tags contains "fuckboy")[
(inc:'shame',2)
]
(if:$npc's age > 44)[
(inc:'shame')
]
(if:$npc's tags contains "chad")[
(set:$shame to (ceil:$shame / 2))
]
(if:$reward is "none")[
(inc:'shame',2)
]
(if:$npc's tags contains "chubby")[
(inc:'shame',2)
]
(if:$npc's tags contains "gentleman")[
(dec:'shame',3)
]
]
(set:$shame to (ceiL:$shame * (1/$score_multiplier)))
(set:$shame to (ceil:$shame / 1.5))
(if:$character's "masculinity" < 80)[
(set:$shame to (floor:$shame / 1.5))
]
(if:$character's "masculinity" < 70)[
(set:$shame to (floor:$shame / 1.5))
]
(if:$character's "masculinity" < 40)[
(set:$shame to (floor:$shame / 1.5))
]
(if:$character's "reluctance" < 6)[
(set:$shame to 0)
]
(if:$shame < 1)[
<mark>You don't feel any shame for doing that.</mark>
(if:(mood:"ashamed"))[
(display:"reset mood")
<mark>You forget all about the shameful feelings you had before.</mark>(print:" ")
]
]
(else:)[
(set:$new_mood to (dm:
"mood","ashamed",
"emoji","😔",
"strength",10,
"length",10,
"cause","because you had sex with " + $npc's name +", in your own room.",
"charm buff",-3,
"arousal buff",-1,
"intellect buff",-1
))
(display:"new mood")
(display:"refresh stats")
(set:$shame_npc to $npc)
(set:$shame_reason to "proposition sex")
]
]
(else:)[
(set:$shame to 0)
(if:$character's "reluctance" > 8)[
(set:$shame to (6-$npc's looks))
(if:$npc's tags contains "fuckboy")[
(inc:'shame')
]
(if:$npc's age > 42)[
(inc:'shame')
]
(if:$npc's tags contains "chubby")[
(inc:'shame')
]
(if:$npc's tags contains "chad")[
(set:$shame to (ceil:$shame / 3))
]
(if:$npc's tags contains "gentleman" or $npc's personality > 6)[
(dec:'shame',2)
]
]
(else-if:$character's "reluctance" > 6)[
(set:$shame to 4-$npc's looks)
(if:$npc's tags contains "fuckboy")[
(inc:'shame',2)
]
(if:$npc's age > 44)[
(inc:'shame')
]
(if:$npc's tags contains "chad")[
(set:$shame to (ceil:$shame / 2))
]
(if:$reward is "none")[
(inc:'shame',2)
]
(if:$npc's tags contains "chubby")[
(inc:'shame',2)
]
(if:$npc's tags contains "gentleman")[
(dec:'shame',3)
]
]
(set:$shame to (ceiL:$shame * (1/$score_multiplier)))
(set:$shame to (ceil:$shame / 1.5))
(if:$character's "identity" < 60)[
(set:$shame to (ceil:$shame / 1.5))
]
(if:$character's "identity" < 50)[
(set:$shame to (ceil:$shame / 1.5))
]
(if:$character's "identity" < 40)[
(set:$shame to (ceil:$shame / 1.5))
]
(if:$character's "masculinity" < 61)[
(set:$shame to 0)
]
(if:$shame < 1)[
<mark>You don't feel any shame for doing that.</mark>
]
(else:)[
(set:$new_mood to (dm:
"mood","ashamed",
"emoji","😔",
"strength",10,
"length",10,
"cause","because you had sex with a stranger.",
"charm buff",-3,
"arousal buff",-1,
"intellect buff",-1
))
(display:"new mood")
(display:"refresh stats")
(set:$shame_npc to $npc)
(set:$shame_reason to "proposition sex")
]
]
(unless:(mood:"ashamed"))[
(if:$orgasms > 2)[
(set:$new_mood to (dm:
"mood","fucked silly",
"emoji","🤪",
"strength",11,
"length",5,
"cause","since you had a few too many orgasms, turning your brain to mush...",
"charm buff",1,
"intellect buff",-1
))
(display:"new mood")
(display:"refresh stats")(set:$gain to -4 * $orgasms)(display:"lose intellect xp")
]
(else-if:$orgasms > 1)[
(set:$new_mood to (dm:
"mood","well-fucked",
"emoji","😩",
"strength",10,
"length",5,
"cause","since you had two great orgasms during sex.",
"charm buff",1,
"intellect buff",1
))
(display:"new mood")
(display:"refresh stats")
]
(else-if:$orgasms > 0)[
(set:$new_mood to (dm:
"mood","freshly fucked",
"emoji","🤭",
"strength",9,
"length",4,
"cause","since you had a great orgasm during sex.",
"charm buff",1,
"intellect buff",1
))
(display:"new mood")
(display:"refresh stats")
]
(else-if:$orgasms is 0)[
(set:$new_status to (dm:
"status","sexually frustrated",
"emoji","😑",
"strength",5,
"length",3,
"cause","You had sex, but " + ($npc's name) + " didn't make you cum.",
"charm buff",-1,
"intellect buff",-1,
"fitness buff",0,
))
(display:"new status")
(display:"refresh stats")
]
]
</div>
}{
(unless:$npc's "events" contains "your name")[(display:"proposition intro")](else:)[(display:"proposition knows name")]
(set:$npc's appeal to $npc's looks)(set:$init_satisfaction to 0)
(display:"alcohol modify appeal")
}{
(if:$character's "alcohol status" > 0)[
(set:$npc's "appeal" to (ceil:$npc's "appeal" * (1 + ($character's "alcohol status" * 0.25))))
]
}{
(set:$npc's events to $npc's events + (a:"name"))(display:"proposition pet name")
(if:$response is "bimbo insult")[
(if:$npc's tags contains "chad")[
"(twirl:"Haha, girl, you’re a real airhead, huh?","Aw, so cute! Don’t strain yourself thinking too hard. Heh.","Wow, you’re like a real-life bimbo, huh? So hot.","Haha, I love girls who are all giggles. What's up, bimbo?","Aww, you’re so adorable being all ditzy. Cute bimbo.","Nice. A bimbo with a body like yours is just perfect.","Haha, don’t worry, baby, you don’t need to think. Just look good.","Wow, you really are a total airhead. Love it, girl!","Haha, you’re adorable when you try to think.","Oh, that’s cute, you think you’re smart? Haha.","Look at you, pretending to think. How cute!","Haha, keep giggling, babe. That’s all you’re good for.","Aw, sweetheart, don’t hurt yourself trying to think.","Haha, look at this dumb slut, trying to talk back.","Sweetie, thinking isn’t your strong suit. Keep doing what you're good at – being hot.","Haha, dumb bimbos like you should stick to looking cute.")
](else-if:$npc's tags contains "fuckboy")[
"(twirl:"Haha, wow, bimbo alert! Y'know, I kinda like that in a girl.","Oh baby, keep talkin’ like that.","Hehe, you don't need smarts to have fun, right?","Oh yeah, keep giggling, you're just proving my point.","Haha, you're so cute and stupid, it's hot.","Wow, ditzy and hot? Jackpot!","Who needs brains anyway? You've got all the right...assets, slut.","Hehe, keep being a bimbo. It's turning me on.")
](else-if:$npc's tags contains "gentleman")[
"(twirl:"Oh dear, you seem... um, delightfully simple. Are you genuinely that way, or just playing around?","Oh my, such a charming giggle. Are you truly...so bimbo?", "You're quite enchanting, though I must admit, your scatterbrained nature is... interesting.","Ah, a lovely smile and a... somewhat less sharp mind. Interesting combination.","Oh, you're quite the... mesmerizing puzzle. Simple but sweet.","My dear, you seem... delightfully uncomplicated.","You're enchanting in a very... light-hearted and simple way.","Are you alright, if I may ask? You seem to have a rather charming silliness about you.")
](else-if:$npc's tags contains "creepy")[
"(twirl:"Hehe, oh you silly, silly girl... you're perfect.","You know, I kinda like how... simple you are. Makes things easier.","Hehe, you're so dumb, I could just eat you up.","I can see it in your eyes, you're a real bimbo, aren't you?","You know what they say about airheads like you, right? Easy prey.","Heh, don't worry, I like 'em dumb and pretty.","Your dumb little giggles make my day.","You're just too cute and clueless, perfect for someone like me.","Oh, a cute little airhead. Perfect for some fun.","I knew you’d be an easy one. So... agreeable.","Look at you, lost and giggly. Right where I want you.","Haha, you’re just too precious. Like a toy, almost.","Adorable bimbo like you should stick close. Don’t wanna get lost, do you? Hehe.")
](else-if:$npc's tags contains "nerd")[
"(twirl:"Oh, um, well this is an interesting conundrum. You're... exceedingly attractive, yet your lack of intellect is astonishing!","It’s intriguing how someone can be so... syllabusally challenged yet physically gifted.","Hmm, statistically speaking, the likelihood of encountering someone as attractive and intellectually deficient as you is quite low.","Oh, fascinating! You're like a tangible hypothesis for beauty over brains!","Evidently, Dunning-Kruger effect in action. Stunning but lacking in cerebral capacity.","Oh my, you're... quite the enigma. Ravishing but... intellectually inconspicuous.","Reminds me of when I first defeated Kefka in FFVI, caught me a total airhead.","Your mental buffer seems... underflowed. Don’t worry, I'll optimize you.","Wow, lower Int, higher Charisma, I see.","Haha, classic low INT build. Join my party?","Your response has the complexity of a bubble sort, but hey, I'll debug.","You remind me of a quest NPC. Pretty design, not much else.","Oh dear, someone forgot to equip their +2 amulet of intelligence today.","Heh, this is like beating the easiest boss ever. Entertaining though.","No worries, even with a low IQ, you’re still farmable.","Guess they nerfed your intelligence pretty hard, huh?","Haha, your dialogue tree is severely lacking in coherent responses.")
](else-if:$npc's personality > 7)[
"(twirl:"Oh, um, really? That’s... interesting.","Haha, you’re quite, um... something!","Oh, I wasn’t expecting that...","Well, you’re definitely unique!","Haha, that’s... uh, okay then!","Oh, wow, you’re... really, um, sweet.","Well, it’s nice to meet someone so... carefree.","Oh, uh, that didn't quite come out right, huh?","Haha, that was... interesting. Are you okay?","Wow, um, that was cute. Need a moment to collect your thoughts?","You’re really something else, aren’t you? No offense. 😅","Haha, you really tried, didn’t you? That’s sweet.","Oh, um, well, that’s a new one. You’re hilarious!")
](else:)[
"(twirl:"Haha, you’re seriously a bimbo, huh?","Wow, you’re so dumb, but I kinda love it.","Haha, no thoughts, just vibes, huh? That’s cute.","Wow, you’re really an airhead.","Haha, you’re not even trying to hide how dumb you are. Nice.","Oh, you’re seriously ditzy, but it’s cute.","Haha, you’re really... not that bright, huh?","Wow, total bimbo alert, but in a good way!")]
(print:" ")
]
(if:$response is "bimbo polite")[
(if:$npc's tags contains "chad")[
"(twirl:"Oh, come on sweetheart, we both know you don’t mean that. Why don’t you just give in?","Don’t be silly, babe. We both know you can't resist a real man like me.","Ha, you think you can say no to all... this? Cute.","Aww, you’re just pretending to say no, right?","Oh, babe, you’re too cute to say no to a guy like me.","Haha, don’t worry your pretty little head about it, sweetheart. I know what you really want.","Aw, come on, don't overthink it, babe. Just go with the flow.","Heh, you’re playing hard to get. Adorable, but not very convincing.","Haha, don't stress, girl. You might hurt yourself.","Oh, don't worry, you won't regret it. Just let me take the lead.","Sweetie, thinking isn’t your strong suit. Let me handle that.","Heh, you're too cute when you try to act all serious. Relax.","That’s adorable. You don’t need to strain yourself thinking too hard. Just go with the flow.","Oh, sweetheart, you’re trying so hard. How about you let me take control?","Haha, you’re too cute and ditzy to resist. Come on, let’s not pretend.","You’re adorable, but let’s be real. You’re just not built for complicated decisions.","Cute. But no girl has ever really turned me down. You won’t either.","Why pretend, babe? We both know you’ll come around.")
](else-if:$npc's tags contains "fuckboy")[
"(twirl:"Haha, don’t play hard to get, it’s hot but not fooling me.","Ah, you bimbos always say no but mean yes.","Oh come on, don’t play hard to get, we both know how this ends.","Yeah, alright. You can keep talking, but I know you’re into me.","That’s cute. But I’m not leaving till I get what I want.","Haha, girls like you are always fun. Keep pretending, it’s cute.","Just give up the act, babe. You know you want it.","Haha, your words say no but your eyes say yes.","Don’t worry, I’m not going anywhere. You’ll change your mind.")
](else-if:$npc's tags contains "nerd")[
"(twirl:"Haha, your attempt to reject me is as feeble as a low-level Mage’s spell.","Ah, your response is like an unoptimized algorithm, cute but inefficient.","Haha, even a novice gamer would find your rejection dialog predictable.","Your attempt to decline me is as weak as a Mage’s first spell.","Just let me lead, princess. You’re not specced for this.","Haha, your attempt at decline is like a broken record. Cute.","Oh, you’re quite the classic low INT, high CHA build, aren’t you?","Haha, trying to resist is adorable, but not your strong suit.","Sweet thing, you’re acting like an NPC. Just follow along.","Haven't seen such a cute attempt at resistance since I beat Contra on hard.")
](else-if:$npc's tags contains "creepy")[
"(twirl:"Hehe, oh you’re too cute trying to say no... like that’s gonna work.","Haha, your little no just makes me want you more, bimbo.","You’re an easy mark, aren’t you?","Hehe, don’t think too hard now, darling. Easy prey never resists long.","Oh, you’re just making it easier, bimbo. Keep it up.","Keep giggling, sweet thing. It's music to my ears.","Haha, you’re just too easy. Let’s skip to the fun part.","No need to think too much, sweetheart. Just let it happen.")
](else-if:$npc's age > 39)[
"(twirl: "Oh, sweetheart, don’t strain yourself trying to be firm. You’re not built for that.","Haha, you’re adorable when you try to be assertive. Leave the decisions to me, okay?","Oh darling, there’s no need for all this thinking. Just let me guide you.","Heh, you young girls are so cute when you try to be serious.","Let’s not pretend, honey. You’re too sweet to say no.","Aw, don’t worry, dear. I know what's best for you.","Haha, sweetie, overthinking isn’t your best trait. Just relax.","You’re precious trying to decline. But I know you’ll come around.","Haha, that's a cute attempt, but let's be honest, sweetie.","Oh honey, you’re charming but you don’t need to think so hard. Leave that to me.")
](else:)[
"(twirl:"Haha, that’s cute. But we both know you won’t actually say no.","Oh come on, your attempt at saying no is adorable.","Haha, you’re so amusing trying to be firm. It’s cute.","Oh, I see. You’re pretending to say no. Adorable.","Your giggly refusals are just too cute. Keep trying!","Haha, that’s a cute attempt at saying no. Let’s keep talking.","Adorable. But I know you’ll change your mind.","Haha, nice try. But I’m not going anywhere.","You trying to say no is just too funny. Let's cut the act.","Haha, pretending to be serious is cute on you. Keep at it.","Oh dear, don't overexert yourself with all this thinking. Let me handle it, okay?","Haha, you’re adorable trying to decline. How about a smile instead?","Oh honey, there’s no need to think so hard. Just follow my lead.","You're really working hard to say no, aren't you? It's endearing.","Haha, your cute little refusal is just precious. Come on, give it a chance.","Let's not stress too much about this, okay? We’ll have fun, trust me.","Oh, that's sweet, but I can see through it. You won’t regret giving in.","Darling, overthinking isn’t your strength. Let’s keep it simple.","You don’t need to worry your pretty head. I’ll take care of everything.","Haha, such a gentle attempt at a no. Let’s not dwell on it, okay?")]
]
(if:$response is "polite")[
(if:$npc's tags contains "fuckboy")[
"(twirl:"Nah bitch, I think you want to get to know me.","Nahh, I know you want to get to know me better.","Ha, said so nicely. But I know that what a girl really means is yes, not no.","Hah- so prim and proper. I like girls like you.","I think you won't turn me down once you get to know me, bitch.","Don't worry about it, I know you want to get to know me.","Nah, I think you really do want to get to know me.")(print:" ")
](else-if:$npc's tags contains "creepy")[
"(twirl:"Oooh so polite, hehe. I think you do want to get to know me though.","Hehe, I can tell from your body language that you're interested.","Heh, you say that, but I know you don't mean it.","You say that, but I know a cute little girl like you doesn't mean it.","Hehe, I know you really want me.")(print:" ")
](else-if:$npc's tags contains "annoying")[
"(twirl:"Yeah, but what if, what if, you gave me a chance?","Can you just give me a chance?","Just give me a chance!","Please, just give me a chance!","Come on, come on, I don't bite. Just give me a chance!")(print:" ")
](else-if:$npc's tags contains "chad")[
"(twirl:"Don't play pretend, girl.","Don't flatter yourself girl, I know you're interested.","That's cute.","I know when a girl doesn't say what she means.","Ha, I know bitches say one thing and mean another.","Yeah, cute. But I know you're interested.","Oh sure, you're not interested. That would make you the first woman ever.","Haha, that's cute.","Don't play, girl.")(print:" ")
](else:)[
"(twirl:"Don't worry about it, I know you're interested.","You'll be interested if you get to know me.","I know you're really interested.","So polite. But I know you want to get to know me.","I can tell you're really interested.","Hear me out, hear me out.","Just hear me out.")(print:" ")
]]
(if:$response is "ignore")[
(if:$npc's tags contains "fuckboy")[
(set:$bitch to (twirl:"bitch","slut","cutie"))
"(twirl:"Don't ignore me $bitch!","Come on $bitch, don't ignore me.","Come on $bitch, you know you can't ignore *this.*","Oh come on, you know you can't ignore someone like me.")(print:" ")
](else-if:$npc's tags contains "creepy")[
"(twirl:"Hehe, I see it in your eyes.","Don't worry, I can tell.","Heh, so cute.","Hehe, don't worry, I don't bite.","Don't worry, I don't bite.") (twirl:"Hear me out...","Just hear me out...","Give me a chance...","Just gimme a chance...","Give me a chance, will ya?","Give a guy a chance.")(print:" ")
](else-if:$npc's tags contains "chad")[
"(twirl:"Don't play pretend, girl.","Don't flatter yourself girl, I know you're interested.","That's cute, pretending to ignore me.","I know what you're thinking - what would such a chad want with me? But don't worry, it's your lucky day.","Haha, it's your lucky day.","Yeah, cute. But I know you're interested.","Haha, speechless?","Haha, that's cute.","Don't play, girl.")(print:" ")
](else-if:$npc's tags contains "annoying")[
"(twirl:"What if, what if, you gave me a chance?","Can you just give me a chance?","Just give me a chance!","Please, just give me a chance!","Come on, come on, I don't bite. Just give me a chance!")(print:" ")
](else:)[
"(twirl:"Don't worry about it, I know you're interested.","Just hear me out.","You'll be interested if you get to know me.","I know you're really interested.","I know you want to get to know me.","I can tell you're really interested.","Hear me out, hear me out.","Just hear me out.","Hey, don't worry, I don't bite.","Hey, I don't bite.")(print:" ")
]]
(if:$response is "friendly")[
(if:(is_bim:))[(if:$npc's tags contains "chad")[
"(twirl:"Yeah, that's right, babe.","Heh, you're a real cutie.","Yeah, that's the attitude I like.","Keep that pretty smile, girl.","Heh.","Yeah, you're exactly my type.","Heh, knew you were fun.","You're pretty giggly, huh? I like that.","You're such a cutie, making things easy.","Naughty and nice, I like it.","Oh, you're a fun one.","Yeah, you're exactly my type.","Heh, knew you were fun.","You're pretty giggly, huh? I like that.","Oh, you're a fun one.","Such a little giggle machine.","Love that enthusiasm.","You’re a fun little thing.","Cute and bubbly, perfect.","Don’t worry, babe. Leave the thinking to me.","I like a girl who doesn’t overthink things.","You’re adorable.","That's it, sweetness. Just smile for me.","Haha, you’re such a sweet little airhead.","Haha, let's not strain that pretty head of yours.","I got you, babe. Don’t worry your pretty little head.","Cute and simple, just the way I like them.")
](else-if:$npc's tags contains "gentleman")[
"(twirl:"You're delightful, my dear.","You have a charming laugh.","It's a pleasure to meet you.","I'm quite charmed by you.","You’re an absolute sweetheart.","What a lovely thing to say.","Your smile is truly radiant.","You’re absolutely delightful.","Oh, you’re delightful.","What a charming smile you have.","You're such an adorable little flirt.","You're an absolutely lovely girl.","What a sweet personality you have.","You're just a joy to talk to.","You have such an infectious smile.","Oh, you're such a wonderful person.","My, what a captivating giggle you have.","You’re delightful, truly.","Your smile could light up a room, dear.","Such a lovely charm you possess.","You’re enchantingly simple, in the best way.","It’s an honor to meet someone so... untroubled by complexities.","Ah, you’re refreshingly uncomplicated.","You have a sincere innocence about you.","You’re quite the charming character.","Your spirit is utterly delightful.","You’re as charming as you are radiant.","I admire your simplicity, truly.","It's wonderful to spend time with someone so delightful.","You’re a breath of fresh air, you know.")
](else-if:$npc's tags contains "fuckboy")[
"(twirl:"Haha, you're such a ditz, I love it.","Damn, you’re hot and dumb.","Yeah, you're a real bimbo, huh?","Of course you're interested, slut.","Hah, you're such a cute little airhead.","Your giggles got me trippin', babe.","You're a total bimbo, aren’t you?","Haha, you're too easy, but I like that.","You're such a cute little doll, you know that?","Yeah, you’re a total smokeshow.","Haha, you’re one dumb cutie.","Damn, you’re sexy as hell.","Yeah, keep giggling, it’s hot.","Of course you like me, girl.","You’re one hot little ditz.","Haha, look at you, so slutty and cute.","You’re just perfect, babe.","Yeah, you're def my type.","Heh, I knew you were easy.","Fuck, you’re hot and dumb.","You’re such a sexy bimbo.","Damn girl, you’re as dumb as you are hot.","Look at this cute little slut giggle.","You’re a total smokeshow, and so simple too.","Fuck, you’re hot and ditzy. Perfect combo.","Yeah, you’re hot and dumb. My type exactly.","Haha, you're a cute little dum-dum.","Wow, you're a total bimbo. Love it.","Your giggles make you even hotter.","Easiest score with a bimbo like you.","You’re makin' my day with those giggles, slut.","Haha, you're so fucking dumb, it’s hot.")
](else-if:$npc's tags contains "nerd")[
"(twirl:"Splendid!","An enchantingly simple response.","Fantastic! You're like a quest NPC.","You're so pretty, it’s like you're straight out of a JRPG.","You’re really hot, like a rare loot drop.","This feels like beating the final boss on easy mode!","Haha, a real-life dumb blonde! Rare encounter!","You’re like a high CHA, low INT NPC.")
](else-if:$npc's "personality" > 6)[
"(twirl:"Wow, you're adorable.","You're so cute!","You have a beautiful smile.","You're really sweet.","That giggle is infectious.","You're just lovely.","You’re such a delight to talk to.","You’re genuinely charming.","It's really nice to meet you!","You're refreshing to be around.","That was really sweet of you.","You're so pleasant!","You have a great sense of humor!","That smile is amazing.","You're just too cute.","Wow, you're really something!","Hehe, you're a joy to be around.","You’re genuinely adorable.","You’re so kind!","Thanks, you’re lovely.","That’s really nice to hear.","You’re awesome!","You're super sweet!","It’s a pleasure talking to you!","You’ve got a great vibe.","That’s a great laugh!","You're so fun!","Haha, you're wonderful!","You totally made my day!","You’re a sweetheart!","You’re genuinely nice.","You have a great personality!","You’re adorable!","What a nice thing to say!","You're a delight, you know that?","You’re such a bright spirit.","Wow, that’s so kind of you!","You’re incredibly charming!","You're really kind!","Haha, you’re fantastic!","You have a lovely energy!","You're really brightening my day!","You're so friendly!","Thanks, you’re a joy to talk to!","You’re great!","You’re so pleasant to be around.","You’re wonderful!","Quite the charming little thing, aren’t you?")
](else:)[
"(twirl:"You're really cute.","That’s great to hear.","You're so sweet.","Awesome.","Great.","You've got a wonderful smile.","You're really delightful.","Haha, that giggle is something else.","You’re so cute and simple.","Yeah, you’re pretty and sweet.","Haha, you’re such an adorable airhead.","You’re delightful, really.","You’ve got a cute smile, airhead.","Adorable and uncomplicated.","Haha, you’ve got a good spirit.","You’re a joy to be around, sweetie.","Haha, you’re simple but lovely.","You’re so precious, really.","That’s a cute little laugh.","You’re shiny and bright, like a coin.","Haha, you’re a sweet little thing.","You’re radiant, truly.")
]](else:)[
(if:$npc's tags contains "chad")[
"(twirl:"Yeah, that's right.","You got a nice smile.","Nice to meet you.","Yeah, nice to meet you.","Great little smile you got there.","Such a pretty smile.","Such a nice smile.")
](else-if:$npc's tags contains "gentleman")[
"(twirl:"You're interested, splendid.","Wonderful.","You've got an absolutely lovely smile.","It's really nice to meet you.","Wonderful smile you have.","Great smile.","You're so pretty.")
](else-if:$npc's tags contains "fuckboy")[
"(twirl:"You're a total smokeshow.","Fuck, you're hot.","Yeah, you're hot.","Yeah, of course you're interested.","Of course you're interested.","Hah haaah- of course.","Your smile got me trippin', girl.","You're a cute little slut, you know that?")
](else-if:$npc's tags contains "nerd")[
"(twirl:"Splendid!","Ooh, splendid, you're interested.","Fantastic.","You're sooo pretty. Did I say that already?","You're so pretty.","Wow, you're so hot.","Wow, a girl this hot is talking to me!","A girl this hot is really talking to me, wow!")
](else:)[
"(twirl:"You're so pretty.","Great.","Good.","You're so adorable.","Awesome.","Great.","You've got a great smile.")
]]](else-if:$response is "slutty")[
(if:$npc's tags contains "chad")[
"(twirl:"Yeah, that's right.","My my, it seems I've found a slut.","Very nice, a slut.","My my, you're eager.","Goodness, you're eager.","I like to see women eager like you.","Nice and eager, just the way I like my women.","Mm you're eager.")
](else-if:$npc's tags contains "gentleman")[
(twirl:"He chuckles pleasantly.","He chuckles.","He smiles at you.") "(twirl:"My my, you're eager.","Wonderful.","You've got an absolutely lovely smile.","It's really nice to meet you.","Wonderful smile you have.","Great smile.","You're so pretty.","It's so nice to see such an eager girl...")
](else-if:$npc's tags contains "fuckboy")[
"(twirl:"You're a total smokeshow.","Fuck, you're hot.","Yeah, you're hot.","Yeah, of course you're a slut. Haha.","Of course you're interested.","Hah haaah- of course.","Your smile got me trippin', girl.","You're a cute little slut, you know that?")
](else-if:$npc's tags contains "nerd")[
"(twirl:"Splendid!","Ooh, splendid, you're interested.","Fantastic.","You're sooo pretty. Did I say that already?","You're so pretty.","Wow, you're so hot.","Wow, a girl this hot is talking to me!","A girl this hot is really talking to me, wow!")
](else:)[
"(twirl:"You're so pretty.","Great.","Good.","You're so adorable.","Awesome.","Great.","You've got a great smile.")
]]
(display:"proposition intro name")
}{
(set:$npc's "name" to $npc's "first name")
(if:$npc's age > 39)[(set:$npc's "name" to "Mr. " + $npc's "last name")]
(set:$npc_name to $npc's "name")
(set:$npc_first_name to $npc's "name")
(if:$npc's tags contains "chad" or $npc's tags contains "gentleman")[
(twirl:"The name's $npc_first_name.","My name is $npc_first_name.","I'm $npc_first_name.","Name's $npc_first_name.")(unless:$npc_name is $npc_first_name)[ (twirl:"Call me $npc_name though.","But to you, I'm $npc_name.","Though for you, you can just call me $npc_name, ok?")]](else:)[
(twirl:"My name is $npc_first_name.","I'm $npc_first_name.")(unless:$npc_name is $npc_first_name)[ (twirl:"Call me $npc_name though.","But to you, I'm $npc_name.","Though for you, you can just call me $npc_name.")]]
(twirl:"And what's your name?","And what can I call you?","And what do I call you?","And what's your name?","And how about your name?")"(nl:1)
<div class='options'>
(link:$character's "name")[(replace:?text)[(display:"proposition your name")]]
(if:$response is "ignore")[(link:(twirl:"No.","Take a hint.","Go away."))[(display:"proposition reject")]]
(if:$response is "polite")[(link:(twirl:"I *said* no.","I told you no!","No.","Go away!"))[(display:"proposition reject")]]
(if:$drink_flirt is "true")[(link:(twirl:"Just wanted the drink, sweetie.","Already got what I wanted from you.","Thanks for the free drink, bye."))[(display:"proposition reject")]]
(display:"npc screen update")
</div>
}{
(unless:$npc contains "petname")[
(if:$npc's personality < 6 and (is_bim:))[(display:"proposition pet name bimbo")](else:)[
(set:$petname to "none")
(if:$pickup is "racial")[
(if:$character's race is "asian")[
(if:$npc's tags contains "nerd")[
(set:$petname to (twirl:"my little asian waifu", "my hot little waifu", "my cute little Japanese waifu", "senpai", "my otaku dream", "my kawaii crush", "my anime angel"))
](else:)[
(set:$petname to (twirl:"my little asian cutie", "my little asian bombshell", "my little asian cutiepie", "my curvy asian cutiepie", "my cute little asian smokeshow", "my little asian beauty", "my exotic little smokeshow", "my exotic little dimepiece", "my asian darling", "my oriental delight"))
]
](else-if:$character's race is "black")[
(set:$petname to (twirl:"my delectable piece of chocolate ass", "my chocolate candy", "my chocolate cutie", "my dark-skinned beauty", "my beautiful ebony piece of ass", "my cocoa goddess", "my mocha muse", "my melanin queen", "my coffee-colored cutie", "my caramel crush"))
](else-if:$character's race is "latin")[
(set:$petname to (twirl:"my hot little latina", "my gorgeous little latina", "my little mexican cutie", "my gorgeous spanish bombshell", "my cute little latina", "my spicy señorita", "my caliente cutie", "my saucy siren", "my sultry salsa queen", "my telenovela temptress"))
]
](else-if:$pickup is "body")[
(if:$trigger is "breasts")[
(set:$petname to (twirl:"my big-titted beauty", "my big-breasted beauty", "my big-breasted bombshell", "my cute lil' milk truck", "my busty babe", "my top-heavy temptress", "my voluptuous vixen", "my curvaceous cutie", "my stacked sweetheart", "my full-figured fox"))](else-if:$trigger is "butt")[(set:$petname to (twirl:"little miss fat-ass", "my big-assed cutie", "my big-assed bombshell", "my little dumptruck", "my bootylicious babe", "badonkadonky kong","my peachy princess","princess peachy"))
]
]
(if:$petname is "none")[
(if:$npc's "tags" contains "coworker")[
(set:$petname to (twirl:"honey buns","baby cakes","darling","cutie pie","kitten","sunshine","sugar cookie","sweetheart","toots","sweet cheeks","sugar tits","cupcake"))
](else-if:$npc's tags contains "nerd")[
(set:$petname to (twirl:"goddess", "cutie", "my queen"))
](else:)[
(set:$petname to (twirl:"cutie", "baby", "doll", "sweetie", "hun", "babe", "sweet cheeks", "toots", "darlin'", "lovely"))
]
]
(if:$npc's "age" < 23 and (twist:1,3) is 1)[
(set:$petname to (twirl:"bae", "my lil' snacc", "shawty", "lil' mama", "bad biddie", "fire emoji","dime piece"))
]
(if:$npc's "dominance" > 6 and $npc's "personality" < 5)[(display:"asshole gives you a petname")]
(set:$npc's "petname" to $petname)]
]
}{
(set:$petname to (twirl:"my little ","my ","") + (twirl: "bubble brain", "clueless cutie", "silly slut", "adorable airhead", "brain-drained babe", "vapid vixen", "space cadet", "ditzy delight", "honey buns", "sugar tits", "doll face", "sexy toy", "bimbo princess", "baby doll", "sweet cheeks", "puddin'", "cutie pie", "sugar lips", "giggle muffin", "honey puff", "babygirl"))
(set:$npc's petname to $petname)
}{
(set:$name to $character's "name")(set:$npc's "events" to $npc's "events" + (a:"your name"))
"(twirl:"Nice to meet you, $name","A pleasure, $name","Well it's nice to meet you, $name","Pleased to meet you, $name","Hi $name","Hello $name","Hi $name").
(if:$current_location is "The Broken Drum")[(unless:$drink_flirt is "true" or (twist:1,4) is 1)[(display:"proposition buy drink")](else:)[(print:" ")(display:"proposition request")]](else-if:$current_location is "The Electric Pickle")[(unless:$drink_flirt is "true" or (twist:1,4) is 1)[(if:(count:$time_events,"dance") > (min:2,(ceil:(get_fitness:) / 4)))[(display:"proposition buy drink club")](else:)[(display:(twirl:"proposition buy drink club","proposition dance club","proposition dance club"))]](else:)[(print:" ")(display:"proposition request")]](else:)[
(unless:(twist:1,4) is 1)[(if:$npc's "personality" < 4 and $npc's "dominance" > 6)[(display:"proposition neg in conversation")](else:)[(display:(twirl:"proposition brag","proposition joke"))]](else:)[(print:" ")(display:"proposition request")]]
}{
(set:_request to (cond:
(datanames:$location_params) contains "sex location passage" and ((twist:1,2) is 1 or $npc's tags contains "breeder"),"fuck","bj"))
(if:(checkdm:$npc,"id","is","bruce") and ($recall:"corpo sphere"))[(set:_request to "fuck sphere")]
(display:"proposition request " + _request)
}{
($pic:'places/bar/private room.jpg')[(if:$npc's wealth > 5)[(twirl:"He takes you to the back, where he's booked a private room.","He brings you out back, to a private room away from the crowds.") "(twirl:"Like it?","Feel classy?","Feelin' classy?")" (print:$npc's "name") asks you.(nl:2)"(twirl:"It's nice,","Yeah, it's pretty nice,")" you look around at the (twirl:"leather furniture","swanky decor"). "(twirl:"At least, no one will come in.","At least, no one will walk in.")"(set:$blowjob's "interrupt chance" to 0)(nl:2)](else:)[(set:$blowjob's "interrupt chance" to 40)(twirl:"He takes you to the back, where you sneak into a private room.","He brings you out back, to a private room away from the crowds.")(nl:2)"(twirl:"You got a private room?","You booked this room?","You booked this?")" you ask. (nl:2)"(twirl:"Hell no!","Heck no!","Lawd no!")" (print:$npc's "name") laughs. "(twirl:"I can't afford that shit.","I can't afford swanky shit like this.","I can't afford this kinda shit.")(if:$reward is "money")[ (twirl:"I can barely afford *you*.","I can barely afford you... and you're pretty cheap, haha.")](else-if:$reward is "none" and not ($npc's tags contains "gentleman"))[ (twirl:"Good thing you don't cost a dime.","Good thing blowjobs from hot sluts like you don't cost a dime.")] (twirl:"But I highly doubt anyone will walk in tonight.","But it's very unlikely anyone will walk in.","But I think we're safe, no one will walk in...") (twirl:"Just keep an ear out for footsteps.","Just watch out for footsteps.","If I hear footsteps, I'll let you know - hide behind the couch.")"(nl:2)"(twirl:"Oh- ok,","Alright...","Ok,")" you say, a little nervously.(nl:2)]
(display:"proposition bj")]<text|
(set:$kneel_desc to (twirl:"The floors are thickly carpeted - you wonder how many other girls' knees have been here.","The floor is really thickly carpeted, and it's comfy to kneel.","The air of the room smells like smoke."))
(set:$interrupt_warn to (twirl:"You hear approaching footsteps - are they going to come into the room?","You hear the sound of raised voices outside the private room door."))
(set:$interrupt to (twirl:"Too late, you hear the door handle turn...","Too late, you see someone in the doorway.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$location_img to "<img class='greyborder' src='img/places/bar/private room.jpg' width=100% height=auto>")
}{
(masteraudio:"stopall")
(set:$room to "private room")
(set:$couch to (twirl:"velvet couch","club couch","tufted couch"))
(set:$wall to (twirl:"private room wall","club wall","wall","wall"))
(set:$floor to (twirl:"carpeted floor","private room floor","floor"))
(set:$desk to (twirl:"private room table","center table"))
(set:$scene to (dm:"events",(a:"begin","begin")))
[(print:"<img class='greyborder'
src='img/places/bar/private room.jpg' width=100% height=auto>")]<image|
[(if:$npc's wealth > 5)[(set:$scene to (dm:"events",(a:"begin"),"status","foreplay","interrupt chance",0))(twirl:"He takes you to the back, where he's booked a private room.","He brings you out back, to a private room away from the crowds.") "(twirl:"Like it?","Feel classy?","Feelin' classy?")" (print:$npc's "name") asks you.(nl:2)"(twirl:"It's nice,","Yeah, it's pretty nice,")" you look around at the (twirl:"leather furniture","swanky decor"). "(twirl:"At least, no one will come in.","At least, no one will walk in.")"(nl:2)](else:)[(set:$scene's "interrupt chance" to 5)(twirl:"He takes you to the back, where you sneak into a private room.","He brings you out back, to a private room away from the crowds.")(nl:2)"(twirl:"You got a private room?","You booked this room?","You booked this?")" you ask. (nl:2)"(twirl:"Hell no!","Heck no!","Lawd no!")" (print:$npc's "name") laughs. "(twirl:"I can't afford that shit.","I can't afford swanky shit like this.","I can't afford this kinda shit.")(if:$reward is "money")[ (twirl:"I can barely afford *you*.","I can barely afford you... and you're pretty cheap, haha.")](else-if:$reward is "none" and not ($npc's tags contains "gentleman"))[ (twirl:"Good thing you don't cost a dime.","Good thing blowjobs from hot sluts like you don't cost a dime.")] (twirl:"But I highly doubt anyone will walk in tonight.","But it's very unlikely anyone will walk in.","But I think we're safe, no one will walk in...") (twirl:"Just keep an ear out for footsteps.","Just watch out for footsteps.","If I hear footsteps, I'll let you know - hide behind the couch.")"(nl:2)"(twirl:"Oh- ok,","Alright...","Ok,")" you say, a little nervously.(nl:2)]]<text|(display:"sex transactional initialize")
(set:$interrupt_warn to (twirl:"You hear approaching footsteps - are they going to come into the room?","You hear the sound of raised voices outside the private room door."))
(set:$interrupt to (twirl:"Too late, you hear the door handle turn...","Too late, you see someone in the doorway.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$location_img to "<img class='greyborder' src='img/places/bar/private room.jpg' width=100% height=auto>")($play:"ambience","bar muffled ambience")(if:(checkdm:$npc,"id","is","bruce"))[(display:"bar bruce sex room text")]
}{
($pic:'places/beach/visitor center.jpg')[(twirl:"You both sneak into the beach visitor center, which is usually not too crowded. Because who wants to go inside the visitor center, when you can be on the actual beach?","You enter the beach visitor center, which is fairly empty, since everyone's out on the beach right now.","He brings you into the beach's visitor center, which has a gift shop and an empty cafeteria.")
(twirl:"It's cool inside, ","It's nicely air-conditioned inside, ")and (print:$npc's "name") leads you to a secluded dining area. (twirl:"Hopefully no one comes in...","Hopefully no one walks in on you...")
(display:"proposition bj")]<text|
(set:$kneel_desc to (twirl:"It's silly, but you actually have a really nice view of the ocean from in here, even on your knees.","Down on the floor, you don't get to see the ocean since the window is too high up.","The guy you're going to blow gets the best of both worlds - a girl kneeling at his feet, and a stunning view of the ocean through the window. Lucky bastard."))
(set:$blowjob's "interrupt chance" to 15)(set:$scene to (dm:"events",(a:"begin","begin")))
(set:$interrupt_warn to (twirl:"You hear footsteps down the hallway.","You hear muffled voices in the distance. Are they getting close?","You hear someone coming down the hall outside. Is it really safe to be giving a blowjob right now?"))
(set:$interrupt to (twirl:"Too late, you hear the doorknob turn.","Too late, you hear someone getting close.","Too late, you hear someone approach.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$location_img to "<img class='greyborder' src='img/places/beach/visitor center.jpg' width=100% height=auto>")
}{
(masteraudio:"stopall")
(set:$room to "visitor center")
(set:$couch to "visitor center couch")
(set:$wall to "wall")
(set:$floor to "carpeted visitor center floor")
(set:$desk to "registration table")
(set:$scene to (dm:"events",(a:"begin","begin")))
[(print:"<img class='greyborder' src='img/places/beach/visitor center.jpg' width=100% height=auto>")]<image|
[(set:$scene to (dm:"events",(a:"begin"),"status","foreplay","interrupt chance",7))(twirl:"You both sneak into the beach visitor center, which is usually not too crowded. Because who wants to go inside the visitor center, when you can be on the actual beach?","You enter the beach visitor center, which is fairly empty, since everyone's out on the beach right now.","He brings you into the beach's visitor center, which has a gift shop and an empty cafeteria.")(nl:2)
(twirl:"It's cool inside, ","It's nicely air-conditioned inside, ")and (display:"npc pronoun") leads you to a secluded dining area. (twirl:"Hopefully no one comes in...","Hopefully no one walks in on you...")(nl:2)
]<text|(display:"sex transactional initialize")
(set:$interrupt_warn to (twirl:"You hear footsteps down the hallway.","You hear muffled voices in the distance. Are they getting close?","You hear someone coming down the hall outside. Is it really safe to be giving a blowjob right now?"))
(set:$interrupt to (twirl:"Too late, you hear the doorknob turn.","Too late, you hear someone getting close.","Too late, you hear someone approach.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$location_img to "<img class='greyborder' src='img/places/beach/visitor center.jpg' width=100% height=auto>")($play:"ambience","beach ambience")
}{($play:"ambience","locker room ambience")
($pic:'places/gym/locker room.jpg')[(print:$npc's "name") (twirl:"motions for you to sneak into the men's locker room.","sneaks you into the locker room, using a towel as cover.") (twirl:"You've been here before, but now you're a girl...","Yeah you've been here before, but now you're a girl...")(nl:2)(twirl:"The air in here is stuffy and sweaty, not at all sexy.","The air in here smells terrible, like sweat and old shoes.") (twirl:"But there's a strange thrill to walking between the lockers, risking getting caught at any moment.","But there's a strange thrill to sneaking around like this.")(nl:2)The (print:(lowerfirst:$npc's "unfamiliar name")) motions for you to join him in the back. It's not impossible for someone to walk back here, but it's fairly unlikely. (nl:2)
(display:"proposition bj")]<text|
(set:$kneel_desc to (twirl:"The concrete floor of the locker room is pretty uncomfortable.","The concrete locker room floor is not comfortable to kneel on.")) (set:$blowjob's "interrupt chance" to 40)
(set:$interrupt_warn to (twirl:"You hear the sounds of raised voices echoing through the locker room.","You hear the sounds of people entering the locker room."))
(set:$interrupt to (twirl:"Too late, you see someone step from around the corner of the lockers, just about to get ready for his own workout.","Too late, you hear someone approach.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$location_img to "<img class='greyborder' src='img/places/gym/locker room.jpg' width=100% height=auto>")
}{
(masteraudio:"stopall")(display:"save npc male")
(set:$room to "locker room")
(set:$couch to "locker room bench")
(set:$wall to "lockers")
(set:$floor to "locker room floor")
(set:$desk to "locker room sink")
(set:$scene to (dm:"events",(a:"begin","begin")))
[(print:"<img class='greyborder'
src='img/places/gym/locker room.jpg' width=100% height=auto>")]<image|
[(set:$scene to (dm:"events",(a:"begin"),"status","foreplay","interrupt chance",15))(set:$case to "upper")(display:"npc pronoun") (twirl:"motions for you to sneak into the men's locker room.","sneaks you into the locker room, using a towel as cover.") (twirl:"You've been here before, but now you're a girl...","Yeah you've been here before, but now you're a girl...")(nl:2)(twirl:"The air in here is stuffy and sweaty, not at all sexy.","The air in here smells terrible, like sweat and old shoes.") (twirl:"But there's a strange thrill to walking between the lockers, risking getting caught at any moment.","But there's a strange thrill to sneaking around like this.")(nl:2)(set:$case to "upper")(display:"npc pronoun") motions for you to join him in the back. It's not impossible for someone to walk back here, but it's fairly unlikely... right?(nl:2)]<text|(display:"sex transactional initialize")
(set:$interrupt_warn to (twirl:"You hear the sounds of raised voices echoing through the locker room.","You hear the sounds of people entering the locker room."))
(set:$interrupt to (twirl:"Too late, you see someone step from around the corner of the lockers, just about to get ready for his own workout.","Too late, you hear someone approach.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$location_img to "<img class='greyborder'
src='img/places/gym/locker room.jpg' width=100% height=auto>")($play:"ambience","locker room ambience")
}{
($play:"ambience","mall muffled ambience")
(print:$location_params's "bj location pic")
[(twirl:"You arrive at the supply closet.","He leads you to a musty supply room, away from the hustle and bustle of Paradise Mall.","It's not a pretty place, this room. But at least it's private.","This isn't the most glamorous place to give a stranger a blowjob. But at least you're away from people.")
(display:"proposition bj")]<text|
(set:$kneel_desc to (twirl:"The back room floor is a little dusty, and hard on your knees.","The floor is pretty dusty, and not that comfortable to kneel on."))
(set:$blowjob's "interrupt chance" to 30)
(set:$interrupt_warn to (twirl:"You hear footsteps approaching the supply room.","You hear muffled voices in the distance. Are they getting close?","You hear someone coming down the hall outside. Is it really safe to be giving a blowjob right now?"))
(set:$interrupt to (twirl:"Too late, you hear the doorknob turn.","Too late, you hear someone getting close.","Too late, you hear someone approach.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$location_img to $location_params's "bj location pic")
}{
(masteraudio:"stopall")
(set:$room to "supply closet")
(set:$couch to "supply closet couch")
(set:$wall to "supply closet wall")
(set:$floor to "supply closet floor")
(set:$desk to "desk")
(set:$scene to (dm:"events",(a:"begin","begin")))
[(print:$location_params's "bj location pic")]<image|
[(set:$scene to (dm:"events",(a:"begin"),"status","foreplay","interrupt chance",6))(twirl:"You arrive at the supply closet.","He leads you to a musty supply room, away from the hustle and bustle of Paradise Mall.","It's not a pretty place, this room. But at least it's private.","This isn't the most glamorous place to give a stranger a blowjob. But at least you're away from people.")(nl:2)]<text|(display:"sex transactional initialize")
(set:$interrupt_warn to (twirl:"You hear footsteps approaching the supply room.","You hear muffled voices in the distance. Are they getting close?","You hear someone coming down the hall outside. Is it really safe to be giving a blowjob right now?"))
(set:$interrupt to (twirl:"Too late, you hear the doorknob turn.","Too late, you hear someone getting close.","Too late, you hear someone approach.") + " " + (twirl:"You've been seen!","A guy is standing there, shock written across his face at the lewd public act he's just witnessed.","Someone is standing there, frozen in horror at the act of public indecency he's just witnessed."))
(set:$kneel_desc to (twirl:"The back room floor is a little dusty, and hard on your knees.","The floor is pretty dusty, and not that comfortable to kneel on."))
(set:$location_img to $location_params's "bj location pic")($play:"ambience","mall muffled ambience")
}{
(if:$response is "polite")[
"(twirl:"Playing hard to get with me, $your_name?",
"Too polite to say you're interested, huh?",
"C'mon $your_name...",
"Heh,",
"Sweet and demure? I'll bite,",
"Hah,",
"Nice try,",
"Hah - sounds like foreplay, $your_name,",
"Oh, $your_name, don't make me prove how much you want this,",
"I like the challenge you're giving me, $your_name. I'm game,")"
]
(if:$response is "ignore")[
"(twirl:"That act won't last long...",
"I like a challenge, $your_name,",
"You can't ignore this charm forever, $your_name,",
"Silent treatment, huh?",
"I'll get you talking soon, $your_name,",
"You're quite the ice queen, $your_name. I'll heat things up.",
"No words, $your_name? Your body says enough,",
"Ignoring me just turns me on more, $your_name,",
"I love it when you play mysterious, $your_name,",
"The quiet ones like you, $your_name, always scream the loudest,")"
]
(if:$response is "friendly")[
"(twirl:"Thought you'd be a bit feistier, $your_name...",
"You're playing it cool, I see,",
"Playing the good girl tonight, $your_name?",
"So coy. Heh,",
"You're making me work for it, huh?",
"Just a chuckle? I'll have you moaning in no time, $your_name,",
"Giving me the green light with that smile, $your_name..."
)"
]
(if:$response is "slutty")[
"(twirl:"Eager, aren't you, $your_name?",
"Straight to the point... I like that,",
"Playing the vixen tonight, $your_name?",
"Well, someone's not shy about what they want,",
"You don't waste any time, do you, $your_name?",
"That's the spirit, show me what you're working with,",
"You really know how to grab a man's attention, $your_name,",
"So forward... but can you handle what comes next, $your_name?",
"Let's see if you're all talk or if you can back it up, $your_name,",
"A little slutty charm goes a long way, $your_name, but let's see how far you can take it"
)"
]
(set:$case to "lower")(display:"npc pronoun") (twirl:"says","chuckles","says","grins"). (display:"proposition neg text")
(display:"proposition neg options")
}{
(twirl:
"So, what's a girl like you doing in a place like this?",
"Come here often?",
"Bet you've got all the guys here eating out of the palm of your hand.",
"You seem like the adventurous type. Am I right, or am I right?",
"Seems like you might be trouble. I'm good at handling trouble.",
"Looks can be deceiving, but I'm hoping in your case, they're not.",
"You seem interesting. At least on a surface level.",
"Bet you're a heartbreaker.",
"Looking for some company?",
"You smile much, or is that just for special occasions?",
"Seen anyone interesting around here, or am I it?",
"You're not like other girls, right? Tell me something wild about you.",
"You look like you could use some excitement in your life.",
"So, what's your story? Rich ex-husband, sugar daddy?",
"You've got the kind of eyes that say you're up to no good.",
"Nice shoes. Bet they'd look better by my bed.",
"How do you like your eggs in the morning? Or is that too forward?",
"You must get a lot of attention with a body like that.")"(nl:2)(set:$case to "upper")(display:"npc pronoun") (twirl:"chuckles","grins"). (twirl:"You can tell he's a bit of an asshole...","You can tell he's sizing you up...","He seems to take pleasure in making you squirm.","There's a trace of arrogance in every word he says.","He speaks like he's already won you over, and it's just a matter of time.","He doesn't wait for you to respond before he continues.","You realize he's not really interested in what you have to say.","He’s toying with you, and he’s not being subtle about it.","The condescension in his voice is palpable.","You get the feeling he's done this many times before.","He's laying it on thick, expecting you to just melt.","His tone has a patronizing edge, like he's talking to a child.","He's talking at you, not with you, and it's clear he enjoys hearing himself speak.","There's a smugness to his every word; he’s playing a game he thinks he's already won.","He treats the conversation like a formality, something to check off before moving to his real agenda.","His eyes roam as he talks, giving you the sense he sees you as just another conquest.","He comes off as rehearsed, his lines well-practiced and delivered with a casual ease that feels almost insincere.","You can sense he's not here for a deep connection.","He's clearly used to being the center of attention, and he expects you to fall in line.","His demeanor suggests he's used to getting what he wants, and you're just the latest 'what'.")(nl:2)
(display:"proposition neg text")
(display:"proposition neg options")
}{
(if:$topic is "general")[
(set:$take_offense to (twirl:"Roll your eyes.","Cross your arms defensively.","Scowl.","Roll your eyes.","Frown.","Huff.","Scoff."))
(set:$dont_take_offense to (twirl:"Laugh.","Playfully punch his arm.","Giggle.","Laugh it off.","Smirk teasingly.","Playfully roll your eyes.","Give a mock curtsy."))
]
(if:$topic is "personality")[
(set:$take_offense to (twirl:"Give a sarcastic clap.","Retort sharply.","Get annoyed.","Give a cold laugh.","Raise an eyebrow.","Say 'Excuse me?'"))
(set:$dont_take_offense to (twirl:"Smirk and nod.","Laugh it off.","Witty comeback.","Grin sheepishly.","Shrug with a smile.","Flash a playful grin."))
]
(if:$topic is "underboob")[
(set:$take_offense to (twirl:"Cover up quickly.","Snap.","Glare sharply.","Tug down your top.","Mutter something under your breath."))
(set:$dont_take_offense to (twirl:"Smile coyly.","Flaunt a little more.","Giggle.","Give a sly smile.","Toss your hair.","Do a little shimmy."))
]
(if:$topic is "asscheeks")[
(set:$take_offense to (twirl:"Blush and cover up.","Look away, embarrassed.","Tell him to mind his own business.","Snap 'Eyes up here!'","Call him out."))
(set:$dont_take_offense to (twirl:"Wink suggestively.","Laugh and shake your head.","Twirl to show off even more.","Wiggle your hips provocatively.","Laugh off the comment.","Offer a coy look over your shoulder.","Strut."))
]
(if:$topic is "legs")[
(set:$take_offense to (twirl:"Say that's rude.","Criticize his manners.","Tell him to keep his comments to himself.","Frown disapprovingly."))
(set:$dont_take_offense to (twirl:"Strike a pose.","Strike a model pose.","Strike another pose.","Flash a cheeky smile."))
]
(if:$topic is "cleavage")[
(set:$take_offense to (twirl:"Give a cold stare.","Snap back with a sharp retort.","Pull your top up.","Give a disapproving look.","Snap 'Eyes up here!'"))
(set:$dont_take_offense to (twirl:"Giggle and lean forward.","Play along with his tease.","Thank him for the 'compliment'.","Bat your eyelashes cheekily.","Giggle.","Giggle and blush.","Tease, 'Like what you see?'","Offer a flirtatious smirk."))
]
(if:$topic is "big tits")[
(set:$take_offense to (twirl:"Get upset.","Look unamused.","Say 'How rude!'","Cover up with crossed arms.","Look offended."))
(set:$dont_take_offense to (twirl:"Laugh.","Make a joke about bras.","Joke back.","Giggle knowingly.","Pretend to weigh them."))
]
(if:$topic is "short")[
(set:$take_offense to (twirl:"Stand on your tiptoes indignantly.","Pout.","Stand on your tiptoes in protest.","Point out you're the perfect height for a punch to the gut.","Stomp your foot."))
(set:$dont_take_offense to (twirl:"Laugh and agree.","Pat his arm and say 'there, there.'","Make a joke about the weather down here.","Coyly ask if he likes pocket-sized.","Giggle at the comment.","Be playful.","Shrug and smile."))
]
(if:$topic is "small tits")[
(set:$take_offense to (twirl:"Fold your arms over your chest.","Glare.","Say something about preferring brains over boobs.","Say 'Rude much?'","Clutch your chest.","Look away, annoyed."))
(set:$dont_take_offense to (twirl:"Nod in mock agreement.","Joke about being aerodynamic.","Pretend to check for a size increase.","Quip about being streamlined.","Chuckle.","Give a small shrug."))
]
(if:$topic is "body over face")[
(set:$take_offense to (twirl:"Tell him looks aren't everything.","Snark about his own imperfections.","Point out his lack of tact.","Get upset.","That's super offensive.","Frown.","Say 'That's shallow.'","Turn away in a huff."))
(set:$dont_take_offense to (twirl:"Agree and say you’re more than just a pretty face.","Wink and say 'you know it.'","Strike a seductive pose.","Joke about being a 'total package'.","Laugh it off.","Toss your hair back.","Wink and nod."))
]
(if:$topic is "big ass")[
(set:$take_offense to (twirl:"Get offended.","Get upset.","Get defensive.","Say 'Excuse you?'","Scowl."))
(set:$dont_take_offense to (twirl:"Give it a pat.","Joke that you're considering insurance for it.","Agree it's one of your best features.","Give your ass a confident pat.","Quip about always having a seat cushion.","Laugh.","Shake what you got."))
]
(if:$topic is "intellect")[
(set:$take_offense to (twirl:"Challenge his own intellect.","Defend your smarts.","Scold him for being shallow.","Question his intelligence instead.","Respond with a sharp-tongued retort.","Snap back.","Give him a hard stare.","Respond with an icy tone."))
(set:$dont_take_offense to (twirl:"Agree sarcastically.","Say you're not just a pretty face.","Play dumb and ask if Mensa is a new club.","Admit you're more about EQ than IQ with a wink.","Admit you have some blonde moments.","Play along with a giggle."))
]
(if:$topic is "slutty")[
(set:$take_offense to (twirl:"Accuse him of sexism.","Explain that your outfit doesn't define you.","Say it's called fashion.","Get upset.","Snap that your style is none of his business.","Defend your fashion choice heatedly.","Say 'Watch it.'"))
(set:$dont_take_offense to (twirl:"Quip about being fashion-forward.","Say you dress for yourself, not for him.","Flirtatiously ask if he's complaining.","Say you dress for the job you want: being irresistible.","Flirtatiously ask if he's offering to undress you.","Smile flirtatiously.","Wink.","Reply with a teasing comment."))
]
(if:$topic is "asian")[
(set:$take_offense to (twirl:"Tell him stereotypes aren't welcome.","Say that's offensive.","Get upset.","Call out the stereotype.","Express disappointment in the lack of creativity.","Call out the stereotype.","Say 'Not cool.'","Give a disapproving shake of the head."))
(set:$dont_take_offense to (twirl:"Roll your eyes and play along.","Joke about anime tropes.","Just giggle.","Blush and giggle.","Giggle and nod.","Make a playful retort.","Smile."))
]
(if:$topic is "cum")[
(set:$take_offense to (twirl:"Wipe your face angrily.","Express disgust at his lack of manners.","Demand an apology.","Scowl.","Get upset.","Wipe your face and glare."))
(set:$dont_take_offense to (twirl:"Wink and say you're just moisturizing.","Ask if he's jealous.","Joke about trying a new facial serum.","Wink and say it's part of your beauty regime.","Laugh off his remark.","Joke about it.","Wink and say 'You're next.'"))
]
(if:$topic is "xchange")[
(set:$take_offense to (twirl:"Accuse him of being insensitive.","Say it's none of his business.","Stand up for yourself.","Get upset.","Defend your choice.","Say 'That's my business.'","Give him a piece of your mind."))
(set:$dont_take_offense to (twirl:"Admit you enjoy the change.","Giggle.","Laugh.","Admit you enjoy the attention.","Admit you're loving the new you.","Giggle and agree.","Smile and shrug."))
]
<div class='options'>(link:$take_offense)[(set:$response to "angry")(display:"proposition neg react")](link:$dont_take_offense)[(set:$response to "friendly")(display:"proposition neg react")]</div>
}(replace:?text)[(if:$response is "angry")[($notification:(twirl:"You get angry...","You snap...","The nerve...","The sheer nerve..."))](else:)[($notification:(twirl:"It's harmless, right?","It's kind of a compliment... right?","Might as well take it as a compliment...","Can't let him see you get flustered...","That's the spirit..."))]](live:0.1s)[(replace:?text)[{(if:$response is "angry")[(display:"proposition neg react angry")](else:)[(display:"proposition neg react friendly")]<div class='options'>(link:"Next")[(replace:?text)[(display:"proposition next")]]</div>
(display:"breathing ambience")}](stop:)]{
(set:$case to "upper")(display:"npc pronoun") (twirl:"laughs","chuckles","smiles","smiles at you"). (if:$topic is "general")[
"(twirl:"I've got plenty more where that came from.",
"There's that sense of humor. See, girls aren't too serious after all!",
"I like a girl who can handle a joke.",
"There's the spirit!",
"Oh, you're a good sport. I like that.",
"Who knew you had a sense of humor under that pretty face?",
"Heh. There's that laugh.",
"I knew you had it in you to take a joke. Makes you even more attractive.",
"Keep laughing, it's a good look for you.",
"See, girls do have a sense of humor. I was beginning to worry.",
"A girl who can take a joke is a girl worth keeping around.",
"You look cuter when you're not so serious.",
"I love it when you giggle like that - makes you seem approachable.",
"There you go, don't take life so seriously. Especially not when I'm around.",
"Hearing you laugh is like music to my ears... mostly because it means you're not talking. Just kidding, just kidding!")"
]
(if:$topic is "personality")[
"(twirl:"Ah, there's that wit. Buried deep, but it's there.",
"You've actually got some sass!",
"See, you do have a personality in there somewhere. Just takes a bit of coaxing.",
"There's a glimmer of personality. It's faint, but I'll find it.",
"Oh, you can dish it back, huh?",
"Ah, there's that little spark. Almost missed it there for a second.",
"Oh, you've got a bit of fire in you after all. I like that.",
"There's the banter. Was wondering if you had it in you.",
"You're full of surprises, aren't you? Guess you were just saving that personality for a rainy day.",
"A witty comeback? Look at you, all full of surprises.",
"Finally, a sign of life! You had me worried that you were just a pretty statue.")"
]
(if:$topic is "underboob")[
"(twirl:"Now you're just teasing me.",
"Oh, you like showing off, huh? Don't let me stop you.",
"You're quite the little exhibitionist. It's adorable.",
"That shy smile doesn't fool anyone. You know EXACTLY what you're doing.",
"There's that confidence. Love it.",
"Giving the audience what they want, huh?",
"If you're trying to distract me with more skin, it's working.",
"There's the confidence - wear it like a badge of honor. Or in your case, a badge of underboob.",
"I knew you were proud of those. Go ahead, show them off. I'm DEFINITELY not complaining.")"
]
(if:$topic is "legs")[
"(twirl:"Seriously. You could stop traffic with those legs.",
"Showing off, are we? Not that I'm complaining.",
"There it is, the runway strut.",
"Oh, you're proud of them. As you should be.",
"You're all about the legs, and I can't say I blame you. They're worth the showcase.",
"Striking a pose? With legs like that, you should be on a billboard.",
"That's the spirit, flaunt what you've got.",
"I must admit, it's a good look for you.",
"Oh, don't stop on my account. Those legs deserve all the attention they can get.")"
]
(if:$topic is "cleavage")[
"(twirl:"Giving me a better view? Hah. You're too kind.",
"I appreciate the extra glimpse. You're a generous one.",
"Who needs words when you've got that kind of cleavage?",
"You're certainly not shy, are you?",
"I knew that cleavage wasn't just for show. You're a natural flirt.",
"Blink twice if your boobs are holding you hostage, or just keep flaunting them; I don't mind either way.",
"Keep playing the tease; I'm all for it. Makes my imagination run wild.",
"So the cleavage is a weapon of choice, huh?")"
]
(if:$topic is "big tits")[
"(twirl:"I see you're embracing your... endowments. Good for you.",
"Always good to meet someone who can joke about their own... assets.",
"You're weighing them? They look like they'd tip the scales in your favor, every time.",
"A self-aware woman with a sense of humor is a rare gem. Or maybe it's just your chest that's the gem.",
"Laugh all you want, but those tits are no laughing matter. They're serious business.",
"You've got a sense of humor as big as your... well, you know. It's a good balance.",
"With knockers like those, I'm surprised you're not starting a support group.",
"You're taking it well, considering your tits are the elephant in the room. Figuratively speaking, of course.",
"You could be a comedian with those giant punchlines on your chest. Get it? Because they're... nevermind.")"
]
(if:$topic is "short")[
"(twirl:"You're taking it all in stride - or should I say, in tiny little steps?",
"You've got a big personality for such a small package.",
"You're proof that the best things really do come in small packages.",
"You're like a little firecracker, aren't you? Small, but explosive.")"
]
(if:$topic is "small tits")[
"(twirl:"Aerodynamic, streamlined – I knew you were a girl who valued performance.",
"You're a good sport. It's not the size of the waves, remember, it's the motion of the ocean.",
"You've got to appreciate a woman who's comfortable with her body.",
"You're taking it on the chin – or should I say, the chest. Good for you.")"
]
(if:$topic is "body over face")[
"(twirl:"Someone's feeling confident!",
"You're quite the package, alright.",
"Yeah. You’re all about showcasing the goods. Can't fault your marketing strategy.",
"You've got a good sense of humor about it. That's half the battle right there.",
"A little self-deprecation can be attractive.")"
]
(if:$topic is "big ass")[
"(twirl:"You patting your ass like that, you're gonna give me ideas.",
"Love the confidence. You're clearly a woman who knows her assets.",
"You've got it, so you might as well flaunt it. And you're flaunting it alright.",
"Big ass, big personality. I get it.",
"That's some grade-A meat back there. You should wear a USDA sticker!")"
]
(if:$topic is "intellect")[
"(twirl:"Maybe you've got more up there than I thought.",
"You're a good sport. Who says you can't be beautiful and have a sense of humor?",
"EQ over IQ, I like that. Emotional intelligence is underrated.",
"You can take a joke though! That's awesome.")"
]
(if:$topic is "slutty")[
"(twirl:"I guess that's one way to put it.",
"I believe it. And I appreciate the view.",
"You're irresistible, alright. And you've got the attitude to back it up.",
"I mean... if you're offering, I'm not one to say no.",
"You're a flirt through and through. But hey, I'm not complaining.")"
]
(if:$topic is "asian")[
"(twirl:"Heh. I like your style.",
"See? You're even more fun than I thought.",
"You've got that giggly thing down. It's working for you.",
"You've got a good sense of humor about these things.",
"Love how you roll with the punches. You're breaking stereotypes left and right.",
"You've got a good sense of humor about these things. We need more of that in society these days.",
"It's refreshing to see someone who's not so easily offended.")"
]
(if:$topic is "cum")[
"(twirl:"I should've guessed you'd be into moisturizing.",
"Jealous? I don't know, should I be?",
"You're quite the jokester. I'll have to keep an eye on you.",
"You're taking it like a champ. Good girl.",
"You're really committed to that beauty regime, huh?")"
]
(if:$topic is "xchange")[
"(twirl:"Hah! That's the spirit.",
"You're loving the new you? Can't say I'm surprised.",
"You're taking it so well. I'm almost disappointed I didn't ruffle your feathers.",
"You're all about the attention. Well, you've got mine.",
"You're embracing it. I respect that. Makes you even more attractive, if that was possible.",
"You're smiling and shrugging it off? You're a better man than I am. Or a better woman, I should say.")"
]
<div class='options'>(set:$gain to 2)(display:"gain arousal")</div>
(if:$character's "masculinity" > 65 or $character's "reluctance" > 7)[
(if:$topic is "general")[
*(twirl:"Why did I just laugh? That was kind of mean... but also weirdly charming?",
"I should be upset, not giggling!",
"What's wrong with me? He's an asshole. Right?",
"Okay, that was a decent line. I probably shouldn't encourage him, but...",
"This is so wrong, but his confidence is kind of a turn-on. Sigh.",
"I should be offended, but instead...",
"Am I actually flirting back? I know I shouldn't, but there's something about his arrogance...",
"I should be mad, but...",
"I shouldn't find that funny. I shouldn't find HIM funny. Yet, here we are.",
"There's something off about how his words make me feel all warm and annoyed at the same time.",
"I'm actually blushing. Great. Since when did I start liking backhanded compliments?",
"I know that was a neg, but why does it feel like he's seeing right through me?",
"Why am I smiling at this? His arrogance is annoying... but also kind of hot?",
"Crap, did I really just laugh?",
"He's a jerk, but...",
"That was actually clever... Stop it, brain, you're not supposed to like him!",
"Great, now I'm the girl who giggles at negs. What's next, batting my eyelashes?",
"Is it bad that I want him to keep talking to me, even if he's being an ass?",
"What's wrong with me? Why am I eating up his backhanded compliments like candy?",
"No, don't smile! That's just what he wants. Ugh, too late.")*
]
(if:$topic is "personality")[
*(twirl:"Maybe I should be offended...",
"That should've hurt my feelings, but instead I feel... flustered? Why does his teasing affect me like this?",
"I shouldn't let him get away with that... but why does a part of me want him to keep going? Geez.",
"I hate to admit it, but his teasing is getting under my skin...",
"I know I should push back, but his negging is actually making me feel... excited?",
"There's a strange thrill in not fighting back. Weird!",
"I should be putting him in his place, yet here I am...",
"He's kind of right, my personality isn't exactly sparkling...")*
]
(if:$topic is "underboob")[
*(twirl:"I should tell him off, not give him a show...",
"Great, now I'm just encouraging him. But why does the attention feel good?",
"I'm supposed to be angry, not flattered. Ugh, get it together.",
"His obnoxious confidence is ridiculously attractive. Just kill me.")*
]
(if:$topic is "asscheeks")[
*(twirl:"I'm literally strutting because he told me my ass is hanging out. What's wrong with me?",
"Part of me loves the attention. Damn it.",
"Why do I feel like twirling for him? I should be walking away!",
"I'm usually not this type of girl... or am I?",
"I can’t believe I'm actually flaunting it more. His approval feels strangely satisfying.")*
]
(if:$topic is "short")[
"(twirl:"Should feel insulted?",
"I know it's just a joke, but I can't help wondering: should I actually be enjoying this?",
"I should be mad he's calling me tiny, but instead I'm just wondering if he thinks I'm cute. Ugh! Stop it, brain!",
"I shouldn't let him make me feel small... figuratively speaking. But somehow, I don't mind?",
"I shouldn't find his teasing charming...",
"Petite is cute, right? Why am I seeking confirmation from a jerk like him?",
"I should correct him, not find his dumb height jokes endearing.",
"Why do his patronizing comments make me want to impress him? WTF!")"
]
(if:$topic is "big tits")[
*(twirl:"Why do I feel proud when he stares? I should be disgusted.",
"I should be telling him off...",
"Why am I smirking? I should be giving him a piece of my mind!",
"His objectifying is demeaning... but also kind of thrilling. What's happening to me?",
"I should be indignant, not secretly pleased by his comments...",
"His comment was inappropriate, but it sent a shiver down my spine.",
"I know I should be mad, but there's something about the way he's looking at me... It's unsettlingly... arousing...",
"I'm actually enjoying the attention on my chest. I should feel objectified, but instead, I feel... sexy...",
"I'm letting him get to me, and... I kind of like it. Is that normal?")*
]
(if:$topic is "small tits")[
*(twirl:"I should be mortified, not nodding along like he's making a point.",
"I should be throwing a drink in his face, not chuckling at his 'aerodynamic' quip.",
"Why do I feel the need to prove him wrong about my chest size?",
"I'm actually agreeing with him?",
"His words should sting. This is messed up.",
"I shouldn't be validating his remarks with a laugh. I should be outraged. Right???")*
]
(if:$topic is "body over face")[
"(twirl:
"I should be furious, but his backhanded compliments are making me feel... something...",
"I'm not sure why, but his focus on my body is strangely thrilling...",
"I should be calling him out, yet I'm basking in the attention. It's confusing. Stupid brain!",
"I should be insulted, not flattered! Right?",
"Why am I agreeing? I should be outraged at that...")"
]
(if:$topic is "big ass")[
*(twirl:"I’m actually shaking my ass for him? I need to get a grip!",
"I should be calling him out, not... enjoying this.",
"This isn't self-confidence, this is just playing into his hands!",
"He's practically objectifying me, and here I am, eating it up. Wow.",
"His approval shouldn't be this satisfying. I should be walking away in disgust! Right?")*
]
(if:$topic is "intellect")[
*(twirl:"Ugh! $your_name! Why are you like this?",
"Why do I keep smiling when he's clearly poking fun at me?",
"I'm playing right into his hands.",
"I should feel insulted, but his brashness is somehow hitting all the right buttons.",
"I AM smart! Right? Why does his teasing make me feel dumb?",
"Why am I agreeing with him? I should be defending my intelligence!",
"I'm not dumb, so why am I acting like his approval is some sort of reward?",
"His comments should hurt, not make me feel like I have something to prove.",
"Why am I laughing? I should be proving him wrong, not playing along.")*
]
(if:$topic is "slutty")[
*(twirl:"I'm not sure why I'm not offended. It's like I'm drawn to his boldness, even when it's at my expense.",
"I should set him straight, not flirt back. But there's something about his naughty comments...",
"His words should repel me, but instead, I'm oddly attracted to the danger.",
"I'm going along with it, but should I really feel good about his slut-shaming? Yet, I do.")*
]
(if:$topic is "asian")[
*(twirl:"I should be calling him out, not giggling like I'm in on the joke.",
"His stereotype jokes are offensive. Right? Why am I not more upset about this?",
"Why does his attention, even if it's racially charged, feel so... good?",
"I should be countering his remarks, not smiling like they're compliments.",
"I should be telling him off, not feeling special that he's noticed me, even for the wrong reasons.",
"His jokes are crass... but I like the attention? What is wrong with me?")*
]
]
}{(if:$topic is "general")[
"(twirl:"Whoa, don't get your panties in a twist. I'm just playing around. Lighten up, sweetheart.",
"Easy, tiger. Just a bit of fun. No need to get all riled up.",
"Look at you getting all feisty on me. I like that, it's cute.",
"Oh, come on. Can't you take a joke? You're even lovelier when you're flustered.",
"A joke, darling. Ever heard of it? You should try it sometime, might improve your mood.",
"Relax, it was just a little playful teasing. You should see that as a good thing.",
"Oh, sweetheart, I'm sorry. Did that sting? Let's hug it out. No? More for me, then.")"
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",4,
"length",3,
"arousal buff",-1,
"cause",(twirl:"Since a guy paid you an insulting 'compliment'.","Since a guy tried to neg you. So fucking annoying."),
"charm buff",-1,
"intellect buff",-1
))
]
(if:$topic is "body over face")[
"(twirl:
"Really? You might want to check your own reflection before throwing stones.",
"Wow, you're quite a charmer. Do women usually take this well?",
"And what about you? Adonis of the Face but Quasimodo of the Body?",
"Wow, talk about being superficial. Bet you're quite the catch with that shining personality.",
"Nice to know what you think. Not that your opinion matters. At. All.",
"Do women just fall at your feet with lines like that?",
"Oh really? And you're certainly the expert on disappointing faces, I see.",
"And here I was under the impression that you actually had something intelligent to say. My mistake.",
"Look at me, do I look like I care about your opinion?",
"Ah, the typical surface level critique. A reflection of your intellectual capacity, no doubt.",
"Oh, I see you've mastered the art of being a colossal douche. Good for you.",
"I'd rather be imperfect and genuine than a guy like you who's full of shallow judgments.",
"Wow, are you always this charming, or am I just lucky?"
)"
(set:$new_mood to (dm:
"mood","pissed",
"emoji","🤬",
"strength",6,
"length",4,
"cause","Since a guy had the audacity to say your face wasn't as appealing as your body. What a jerk!",
"charm buff",-2,
"arousal buff",-1,
"intellect buff",-1
))
]
(if:$topic is "asscheeks")[
"(twirl:
"You're one to talk. Last time I checked, the only ass here was the one trying to be funny.",
"How about we make a deal? You keep your comments to yourself and I might not kick where it'll really hurt. Sound fair?",
"Funny, I don't recall inviting your opinion. Keep your comments to yourself, genius.",
"You've got quite the mouth on you, don't you? It's almost as big as your ego.",
"Wow, gentleman of the year right here.",
"Wow, care to comment on any other part of my body while you're at it?",
"You think that's cute? That's just plain disrespectful.",
"I'd tell you where you can shove your opinion, but you seem well acquainted with that area already.",
"Ever thought about being a critic? You seem to have a knack for unwarranted judgments.")"
(set:$new_mood to (dm:
"mood","irritated",
"emoji","😤",
"strength",6,
"length",4,
"cause","Since a guy thought it'd be cute to make crude remarks about your ass.",
"charm buff",-2,
"intellect buff",0
))
]
(if:$topic is "personality")[
"(twirl:"I'm just messing with you. Besides, who needs a personality with a body like that?",
"Hey, don't be mad. You know I've got a soft spot for the strong, silent type.",
"Aww, did I strike a nerve? I can be your one-man cheer squad if it helps.",
"Don't take it to heart. I like a little ice to keep things cool. It suits you.",
"Come on, don't sulk. You know I can't resist a pretty face.",
"I'm all about the banter, and let's face it, you're giving as good as you get right now. See? Personality.")"
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"arousal buff",-1,
"strength",4,
"length",3,
"cause",(twirl:"Since a guy paid you had no personality!","Since a guy tried to neg you about your lack of personality. So fucking annoying."),
"charm buff",-1,
"intellect buff",-1
))
]
(if:$topic is "underboob")[
"(twirl:"Hey, no offense meant. I'm just appreciating the view. Why hide your light under a bushel?",
"Just a little harmless observation. It's not every day you see such a bold fashion choice.",
"Don't be shy now, you're the one flaunting it. I'm just acknowledging your... assets.",
"You know, if you've got it, flaunt it. And you're definitely flaunting it.",
"I can't help it if your outfit's making a statement. I'm just reading it out loud.",
"Feeling bashful about showing some skin? You could've fooled me with that outfit.")"
(set:$new_mood to (dm:
"mood","angry",
"emoji","😒",
"strength",4,
"length",3,
"arousal buff",-1,
"cause","Since a guy called you out for your underboob.",
"charm buff",-1,
"intellect buff",-1
))
]
(if:$topic is "legs")[
"(twirl:"Hey, I meant it as a compliment. Not everyone can pull off the long-legged look like you do.",
"No harm, no foul. I'm just saying, you've got the kind of legs that make a man want to go to church and thank the Lord.",
"Those legs are a public service. Don't go hiding them now because I pointed it out.",
"I was just joking. With pins like those, you should be walking the runway, not walking away from me.",
"I'm just admiring the architecture, that's all. Long legs are my weakness, can't blame a guy for noticing.",
"Come on, don't get bent out of shape. You're all legs, and that's a good thing. Trust me.")"
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"arousal buff",-1,
"strength",4,
"length",4,
"cause",(twirl:"Since a guy paid you had no personality!","Since a guy tried to neg you about your lack of personality. So fucking annoying."),
"charm buff",-2,
"intellect buff",0
))
]
(if:$topic is "cleavage")[
"(twirl:"I'm just playing around. With a cleavage like that, how can I not comment?",
"You can't fault a guy for getting lost in the... scenery.",
"It's all in good fun. You've got the goods; I'm just a satisfied customer.",
"Don't let it get to you. It's just that your cleavage practically has its own personality.",
"I'm a man of simple tastes, I see cleavage, I comment. It's a reflex.",
"A little humor never hurt anyone. And let's be honest, that cleavage is no laughing matter.")"
(set:$new_mood to (dm:
"mood","irritated",
"emoji","😤",
"strength",3,
"length",2,
"cause","Since a guy made a crude joke about your cleavage. It was meant as a compliment, but it just made you feel objectified.",
"charm buff",-2,
"intellect buff",0
))
]
(if:$topic is "big tits")[
"(twirl:"I'm just teasing. Honestly, it's impressive how you manage to stay upright with those.",
"All jokes aside, you should consider a career in flotation devices. You'd be a natural.",
"Come on, don't be like that. If you've got it, flaunt it. And you're 'flaunting' all over the place.",
"You’ve got a set that defies gravity. Just an observation, no offense intended.",
"I’m just admiring the architecture, that’s all. Takes a lot to support the twins like that.",
"No need to get defensive. Trust me, they’re definitely your best feature.")"
(set:$new_mood to (dm:
"mood","offended",
"emoji","😡",
"strength",5,
"length",4,
"cause","Since a guy suggested you might need a 'reduction'. It was said in jest, but it didn't feel funny at all.",
"charm buff",0,
"intellect buff",-2
))
]
(if:$topic is "short")[
"(twirl:"It's just a joke. You know what they say – good things come in small packages.",
"Don't take it personally. Being pocket-sized has its perks!",
"I'm just making light of the situation. But seriously, you're fun-sized - nothing to be ashamed of.",
"Hey, being vertically challenged is a charm. Own it!",
"You're compact, efficient, and adorable. Embrace it!",
"Look at the bright side, you'll always have the best view at concerts... from the front row.")"
(set:$new_mood to (dm:
"mood","annoyed",
"emoji","🙄",
"strength",2,
"length",3,
"cause","Since a guy made a 'harmless' comment about your height. Patronizing much?",
"charm buff",-1,
"intellect buff",0
))
]
(if:$topic is "small tits")[
"(twirl:"Just a bit of banter! Besides, who needs cleavage when you've got such a... lovely personality?",
"Don't be so sensitive. It's not the size of the waves, it's the motion of the ocean, right?",
"You're more aerodynamic this way. It's a compliment, I swear!",
"I'm just joking around. I mean, small tits are in. You're trendy without even trying!",
"Ease up. You know what they say about small tits—more than a mouthful's a waste anyway, right?",
"No need to get flustered. I appreciate all sizes. It's like a smorgasbord of beauty.")"
(set:$new_mood to (dm:
"mood","annoyed",
"emoji","😑",
"strength",4,
"length",2,
"cause","Since a guy made a 'flat' joke about your chest. So original...",
"charm buff",0,
"intellect buff",-1
))
]
(if:$topic is "intellect")[
"(twirl:"Lighten up, I'm just messing with you. You're so pretty, nobody's listening to what you say anyway.",
"I'm just poking fun. Let's face it, with your looks, who needs a brain?",
"Don't get all worked up. Your beauty overshadows any need for witty repartee.",
"Don't take it to heart. I'm sure you've got other... talents that more than make up for it.",
"I bet you're actually a secret genius. I'm just too distracted by your beauty to notice.",
"C'mon, it's just a joke. But seriously, who's looking at your diploma when they can look at you?")"
(set:$new_mood to (dm:
"mood","insulted",
"emoji","🤬",
"strength",5,
"length",3,
"cause","Since a guy implied you were 'pretty, but dumb'. How about 'pretty fed up'?",
"charm buff",-2,
"arousal buff",-1,
"intellect buff",1
))
]
(if:$topic is "slutty")[
"(twirl:"Relax, it's a compliment. I admire a woman who's comfortable with her sexuality.",
"Hey, don't get upset. I'm just appreciating your... openness.",
"I'm just saying what everyone's thinking. You're freeing the nipple one low-cut top at a time.",
"Take it easy, I like your style. It's bold, like you.",
"Come on, you're dressed to impress, I'm just expressing my... admiration.",
"Don't be so touchy. You look good, and you should be proud of it. Flaunt what you've got!")"
(set:$new_mood to (dm:
"mood","self-conscious",
"emoji","😖",
"strength",6,
"length",4,
"cause","Since a guy commented on the sluttiness of your outfit.",
"charm buff",-3,
"intellect buff",0
))
]
(if:$topic is "asian")[
"(twirl:"I'm just joking around. But really, you do have that exotic allure about you.",
"Lighten up! It was just a joke.",
"Don't be mad. It just makes you cuter!",
"It's all in good fun. Your look just reminds me of my anime crush, that's a good thing!",
"Take a joke, will ya?",
"I'm just playing with stereotypes. You break them all the time, I'm sure.")"
(set:$new_mood to (dm:
"mood","irked",
"emoji","🤬",
"strength",3,
"length",3,
"cause","Since a guy made a stereotypical Asian remark to you. Really inventive...",
"charm buff",-1,
"intellect buff",-1
))
]
(if:$topic is "cum")[
"(twirl:"Whoops, touched a nerve there? My bad. But it's kind of hard to ignore.",
"Sorry, sorry. It's just not every day I see someone wearing their last hookup like a trophy.",
"I can't help it if you're wearing the evidence. Next time, use a napkin!",
"Don't be like that. You've got a... youthful glow about you.",
"Oh, lighten up. It's just a little man-made moisturizer.",
"Didn't mean to embarrass you. But hey, if you can't beat 'em, join 'em, right?")"
(set:$new_mood to (dm:
"mood","mad",
"emoji","😖",
"strength",5,
"length",2,
"arousal buff",-1,
"cause","Since a guy crudely pointed out a... personal mess. Talk about a mood killer.",
"charm buff",-1,
"intellect buff",-1
))
]
(if:$topic is "xchange")[
"(twirl:"Easy there, I'm just making an observation.",
"Don't get all bent out of shape. You make a hot chick, that's a compliment!",
"Relax, it's just a little playful ribbing.",
"I didn't mean anything by it. Don't take it so seriously!",
"Come on, it was just a joke. You've got to admit, it's a pretty wild ride you're on.",
"Aww, did I hit a sore spot? My bad. But seriously, you should see this as a positive. You make one hell of a woman.",
"Come on, I'm just teasing. You should be flattered you do 'feminine' so well.",
"Don't get your new panties in a bunch. I'm just enjoying the view.",
"Oh, lighten up. It's not everyday you see a transformation as impressive as yours.",
"You're taking things way too seriously. I thought you on X-Change folks had more fun than this.",
"What's the matter? Can't handle a little banter? You look good. That's all I'm saying.",
"Honestly, I'm just impressed by how well you pull off the look. No need for the attitude.",
"Look at the bright side, at least you're getting reactions. That's the point, isn't it?",
"Hey, being a woman suits you. Don't be mad. Embrace it. You might learn something about yourself.")"
(set:$new_mood to (dm:
"mood","angry",
"emoji","😠",
"strength",6,
"length",4,
"arousal buff",-1,
"cause","Since a guy taunted you about being on X-Change. What's his problem?",
"charm buff",-2,
"intellect buff",0
))
]
(if:$topic is "big ass")[
"(twirl:"Just kidding around, no need to get cheeky about it. Besides, it's hard to ignore a target that big.",
"Hey, I'm all about that bass. No treble. You should take it as a compliment.",
"Whoa, don't get booty bothered. It was just an observation. A very... ample observation.",
"I love how you're trying to give me the cold shoulder when it's your hot ass that's got my attention.",
"Relax, I'm just an admirer of the arts. And that ass is a real masterpiece.",
"Take it easy. I thought women liked compliments on their... assets.",
"You've got to learn to roll with the punches, or in your case, the curves.",
"Don't be upset. I was just admiring how you fill out a room... and jeans.")"
(set:$new_mood to (dm:
"mood","exasperated",
"emoji","😤",
"strength",5,
"length",3,
"cause","Since a guy made a crack about the size of your ass. It was a 'compliment...' supposedly.",
"charm buff",-1,
"intellect buff",-1
))
]
<div class='options'>(display:"new mood")(display:"refresh stats")</div>
}{
(set:$topics to (a:"general","general"))
(if:(get_intellect:) < 5)[(set:$topics to it + (a:"intellect","intellect"))]
(if:(get_charm:) < 5)[(set:$topics to it + (a:"personality","personality"))]
(if:(a:"C","D","E","F","G") contains $character's "breasts")[(set:$topics to it + (a:"big tits","big tits"))]
(if:$character's "race" is "asian")[(set:$topics to it + (a:"asian","asian"))]
(if:$outfit's "sluttiness" > 7)[(set:$topics to it + (a:"slutty","slutty"))]
(if:(a:"big","bubble") contains $character's "butt")[(set:$topics to it + (a:"big ass","big ass"))]
(if:$outfit's "emphasizes" contains "legs")[(set:$topics to it + (a:"legs","legs"))]
(if:$outfit's "emphasizes" contains "underboob")[(set:$topics to it + (a:"underboob","underboob"))]
(if:$outfit's "emphasizes" contains "cleavage")[(set:$topics to it + (a:"cleavage"))]
(if:$outfit's "emphasizes" contains "tons of cleavage")[(set:$topics to it + (a:"cleavage","cleavage"))]
(if:$character's "height cm" < 161)[(set:$topics to it + (a:"short","short"))]
(if:$outfit's "emphasizes" contains "lots of cleavage")[(set:$topics to it + (a:"cleavage","cleavage"))]
(if:$outfit's "emphasizes" contains "asscheeks")[(set:$topics to it + (a:"asscheeks","asscheeks"))]
(if:$character's "status" is "cum")[(set:$topics to it + (a:"cum","cum"))]
(if:(a:"jade","ella","cassidy") contains $character's "id")[(set:$topics to it + (a:"body over face","body over face"))]
(if:$npc's "events" contains "xchange known")[(set:$topics to it + (a:"xchange","xchange"))]
(set:$topic to 1st of (twisted:...$topics))
(set:$take_offense to "Take offense.")(set:$dont_take_offense to "Giggle.")
(if:$topic is "general")[
"(twirl:"Wow, with such a pretty face, I never would have guessed you'd have a voice like that. It's, uh, unique.",
"I was going to offer to buy you a drink, but it looks like you've got a handle on things. I mean, a girl who talks like you must know her way around a bar.",
"Your smile's so bright, it almost distracts from the fact you laugh like a hyena. Almost.",
"Isn't it funny how the prettiest girls have the worst handwriting? Oh, you haven't written anything? Well, I just assumed...",
"You've got this exotic beauty that, thankfully, most people won't hear until you start talking.",
"Your hair is stunning. It's the first thing I noticed, because, well, it'd be rude to comment on your posture first.",
"You're really not like other girls. They usually have a filter.",
"It's a good thing you're easy on the eyes; it makes up for... well, all the rest.",
"You've got such a quirky fashion sense. It's great when someone can distract from their less... impressive traits.",
"You seem so deep and thoughtful, which is a surprise considering... you know, nevermind. I'm sure you have lots of thoughts.",
"Your energy is really... something. It's got that 'unpolished diamond' rawness. You know, rough around the edges?",
"With your looks, I bet you don't even need to be good at cooking. But I suppose it wouldn't hurt to try, right?",
"Your enthusiasm is adorable. It's like you're completely unaware of how... intense it is.",
"You carry yourself with such confidence, it's hard to believe you could be insecure about... well, you know.",
"Your intelligence really shines when you're quiet. That's a compliment, by the way.",
"You've got such a strong presence. It definitely makes up for those few awkward social graces you lack.",
"You're so vibrant and full of life, no one even notices the little things like grace, or finesse.",
"You've got such a photogenic face. It's a shame about the voice, but hey, silent movies are making a comeback!",
"I love how you're not obsessed with your looks like other girls. You're more... natural. Yeah, let's call it that.",
"It's great how you're not like one of those fake girls. You're genuine, even if it's... a lot to handle.",
"You've got an artistic vibe going on. Makes me almost overlook that you're a bit of an acquired taste.",
"Whoa, I didn't expect such a deep voice from someone so dainty looking. Surprises around every corner with you! ",
"You've got a laugh that's so... memorable. Nobody could forget being in a room with you, that's for sure.",
"Your style is so original; I bet you don't care one bit about what's in vogue. It's refreshing, or at least that's one word for it.",
"I admire a woman who can be herself, even if that self is a little rough around the edges.",
"You strike me as the kind of girl who would be really fun for a night, and... well, let's start with one night.",
"It's great you don't worry about stuff like etiquette. Free spirit and all that.",
"You've got an innocence about you that I wouldn't have expected... it's almost convincing.",
"You're like a modern-day Marilyn Monroe if she never took acting or singing lessons.",
"You're cute enough that your little quirks just seem like, well, quirks instead of red flags. Lucky you!",
"Your beauty is so natural, so raw, it's like you're not even trying. Because you're not... right?",
"You've got a certain charm about you, even if it's not quite conventional.",
"I can tell you put a lot of effort into your look. Do you find that it pays off?",
"Let me guess: you're not like other girls, right?",
"You're pretty outspoken for a woman.",
"You're really going for that natural look, huh? Bold choice.",
"You're surprisingly interesting to talk to, for a girl who's hot.",
"You're quite the conversationalist. Not really what I expected, considering the rest of the package.",
"You seem like the kind of girl who would be really loyal.",
"You're pretty cute for a girl with such a loud laugh. Some guys might find that endearing, I guess.",
"It's charming how you think you're playing hard to get. It's cute that you have standards.",
"Wow, your voice is so... distinctive. I bet you turn heads when you speak up.",
"You seem like a smart girl. Why not show that off instead of trying to compete on looks?",
"You're really funny for a girl. Usually, that's not something you see.",
"You're not the typical girl I go for, but there's something intriguing about you. Can't quite put my finger on it."
)"
](else-if:$topic is "personality")[
"(twirl:
"You know, if looks could kill, you'd be a serial killer. Personality-wise, though, maybe just a petty thief.",
"I bet you're the kind of girl who brings a book to a party, not for reading but just so people think you're deep.",
"Your looks definitely make up for what you lack in banter. It's like nature's way of balancing things out.",
"Beauty is only skin deep, but I guess in your case, that's not such a bad thing.",
"You're so pretty when you're quiet. It's a good look for you.",
"It's lucky you're good looking. Let's just say, if charm were currency, you might struggle to pay attention.",
"Your personality's like a rare vintage wine... it might take some time to appreciate it.",
"I can see you're not the life of the party, but you're definitely... present.",
"You have the kind of presence that's really... subtle. Yeah, let's call it that.",
"You're not the sharpest tool in the shed, but you're definitely... a tool. I mean that affectionately.",
"You've got an... interesting personality. It's just a little hard to find.",
"You're like a puzzle with half the pieces missing. It’s a challenge, but some might enjoy trying to put it all together.",
"You know, they say silence is golden. You must be filthy rich.",
"You've got this mysterious air about you. It's not that you're quiet, it's that you're a riddle wrapped in an enigma... with no clue in sight.",
"You seem like the type who's good at listening, mostly because you don't talk much.",
"You have the kind of charm that's really... understated. Like, really, really understated.",
"It's cute how you think you're playing hard to get. You're just... hard to want to get to know.",
"You're like a book with a beautiful cover and blank pages. Still, I'm optimistic about the pictures.",
"Hey, no one's perfect. You're living proof of that, but at least you've got your looks!",
"Your personality might not light up a room, but at least it doesn't drain the energy either.",
"You're the kind of girl who doesn't need words to make an impression. Mainly because the words aren't really... there.",
"Keep being you. After all, not everyone can be the life of the party. Some just have to be the furniture.",
"You're a woman of few words, which is fine because actions speak louder anyway, right?",
"You're not exactly a social butterfly, more like a social caterpillar. Still in the cocoon, but there's potential.",
"You've got a 'still waters run deep' vibe, except I'm not sure how much water is actually there.",
"You've got the kind of personality that's like a fine wine... it may take a few years to mature.",
"You have a really... uncomplicated personality. It's refreshing, like a glass of water. Room temperature.",
"Your conversation skills are like abstract art – not everyone will get it, but it's the effort that counts.",
"You're like an action movie – all visuals and no plot. But hey, who doesn't love a good car chase scene?",
"It's not that you have a bad personality, it's just that you're on a different... frequency. Yeah, let's go with that."
)"
](else-if:$topic is "underboob")[
"(twirl:
"Going for the underboob look, huh? It's like a sneak preview that leaves us wanting more.",
"Is there a shortage of fabric or are you just trying to air out the goods?",
"Nice underboob. It's like your tits are trying to wink at me.",
"You're really embracing the whole 'business underneath, party up top' vibe with this look.",
"I see you're playing peek-a-boo with your boobs there. I can appreciate a good game.",
"That's quite the rebellious underboob you've got on display. Does it have a permit to be out like that?",
"You must be a fan of the element of surprise, judging by that underboob. Well, color me surprised... pleasantly so.",
"I like how your outfit is like a trailer for your tits. It makes you want to stick around for the main feature.",
"Love the underboob; it's like a subtle 'hello' from your breasts. Very polite of them.",
"Is that the fashion now, underboob? Or are your tits just really bad at playing hide-and-seek?",
"You're all about breaking barriers, I see. Especially the hemline barrier. Bold.",
"That shirt's working overtime trying to contain the party underneath. I hope it's being compensated fairly.",
"You've really mastered the cliffhanger with that outfit. The suspense is killing me.",
"Your underboob is like the headline of a really interesting article: it grabs your attention and leaves you wanting to read more.",
"With an outfit like that, I'm not sure if I should be turned on or worried about a wardrobe malfunction. Maybe both?"
)"
](else-if:$topic is "asscheeks")[
"(twirl:
"Wow, that outfit's so short I can almost see your future children. Just kidding... but seriously, it's a look.",
"Did your outfit shrink in the wash, or are you making a bold statement about the economy? Less is more, right?",
"Is that the latest fashion? Bold move.",
"I like how your outfit suggests a game of peek-a-boo with your butt cheeks. Very avant-garde.",
"Careful sitting down – wouldn't want to cause a solar eclipse with that ass eclipse.",
"That outfit's like a spoiler alert for your ass. But hey, who doesn't like spoilers?",
"Your outfit's so short, I'm not sure if it's a fashion choice or a cry for help. Or maybe a ventilation strategy?",
"Going for the 'cheeky' look today? Literally.",
"You must save a fortune on fabric with outfits like that. Economic and eye-catching.",
"I can appreciate the 'less is more' approach with your outfit. And by 'less', I mean practically non-existent.",
"Your outfit says 'I have nothing to hide'... particularly when it comes to your ass cheeks.",
"Do they charge less for half an outfit, or is that just your way of demanding attention?",
"With an outfit like that, you're giving 'business in the front, party in the back' a whole new meaning.",
"Your outfit's like a public service announcement for your ass. And it's definitely loud and clear.",
"Looks like your ass is trying to make a break for it. Someone should tell it the escape attempt is going quite well.",
"That outfit is so optimistic about covering your ass, it's kind of inspiring."
)"
](else-if:$topic is "legs")[
"(twirl:
"Those legs of yours go on for days. Shame they don't lead up to a better personality. Don't worry, just kidding!",
"Nice legs though. Do you run track or something?",
"You've got the kind of legs that make a miniskirt cry for mercy. Too bad they're wasted on a girl who can't hold a conversation.",
"You've got legs like a racehorse. You know, in a good way. Not that you look like a horse, just... Oh, you know what I mean.",
"Those legs could probably straddle the equator. But hey, it's all about that global reach, right? Just kidding, they're stunning.",
"Are you sure you're not part flamingo? Because one thing's for sure, your legs are definitely the star of the show. I mean that in the best possible way.",
"Careful with those legs; they could be considered lethal weapons. Not that I'm saying you kick like a mule, but... who knows?",
"Your legs are like the pillars of a Greek temple, and I'm a believer in ancient beauty. Sort of like praying to the goddess of 'damn!'"
)"
](else-if:$topic is "cleavage")[
"(twirl:
"Is that cleavage a life hack? Because it looks like you never have to wait in lines.",
"Is that a push-up bra or are your tits just trying to get a better view of the room?",
"Love how your outfit's doing its best to showcase the 'twins'. It's like a billboard for your boobs.",
"The way your cleavage is presented, it's like you've got your own gravitational pull.",
"I gotta say, your cleavage could make a monk rethink his vows.",
"Your tits seem to be making a break for the surface. Should I send a rescue party?",
"You've got the kind of cleavage that makes people forget their own name. What's mine again?",
"Who needs conversation when you've got cleavage like that? It's like your tits are doing all the talking.",
"Sorry, I'm having trouble focusing on what you're saying. Your cleavage is like a black hole for my attention.",
"I'd compliment your intellect, but your cleavage keeps interrupting me. Rude.",
"I swear I'm listening to you, but your tits keep shouting over you.",
"Your cleavage has more depth than this conversation, and that's saying something.",
"Every time you lean forward, it's like your tits are trying to tell me a secret. And I'm all ears... or eyes.",
"You must be a magician because every time you talk, all I see is a disappearing act – of your neckline.",
"Was there a memo about cleavage day that I missed? Because your tits are definitely overachievers.",
"It's like your boobs are competing for my attention. And winning. Hands down. Or should I say hands on?",
"Your chest is so distracting, it's like they're doing semaphore. What are they trying to signal, exactly?",
"Keep talking. I'm definitely listening and not just nodding along to the rhythm of your jiggling."
)"
](else-if:$topic is "big tits")[
"(twirl:
"Your top is really... snug. But I guess that's a common problem for women with your... assets. Heh.",
"Those are some pretty massive knockers. Ever thought about getting a reduction? Might make you look more proportional. Not that you have to! Just curious if you've ever considered it.",
"You have the whole 'busty barmaid' look down to a tee. I'm sure it gets you lots of attention.",
"With melons like those, you could probably charge admission. Though, I can't imagine what your back feels like.",
"Is it possible for you to play any sports with those things?",
"Bet you spend a fortune on bras, huh? Or do you just let them roam free?",
"It's impressive how you manage to carry around those... what are they? Twin watermelons?",
"You must have incredible balance to not topple over with those things. Pilates?",
"I hope your personality is as big as your chest; it's always good to have balance.",
"Do those double as flotation devices? Not a bad survival strategy, I guess.",
"I can see your... assets from a mile away. Handy for when you get lost in a crowd.",
"You've got the whole front-loaded thing going on. Must make yoga interesting."
)"](else-if:$topic is "short")[
"(twirl:
"It's cute how short you are. Makes you seem really approachable.",
"Being short must be a real advantage in crowds. You can weave right under everyone's elbows.",
"You know, they say good things come in small packages. I guess you're still waiting for someone to open you up.",
"Aww, you're so tiny. It's cute, really.",
"You're like the perfect armrest height. See? You do serve a practical purpose.",
"Being short suits you. It's like nature's way of saying 'adorable, but not a threat.'",
"Did you get a discount on clothes for being fun-sized? Or is that just an urban myth?",
"It's kind of cute how you have to look up when you talk to... well, most people.",
"I guess at your height, every guy seems like a tall, dark stranger.",
"How's the weather down there? Must be nice living under the radar.",
"You're fun-sized, bite-sized, travel-sized... basically, you're convenient.",
"Standing next to you makes anyone feel like a giant. You should hire yourself out as a self-esteem booster.",
"You're proof that not all good things come in small packages. Some just come in tiny ones.",
"You're like a bonsai tree: small, delicate, and pretty... just not very big.",
"Being that short, at least you never have to worry about hitting your head on door frames.",
)"](else-if:$topic is "small tits")[
"(twirl:
"You're really pulling off that 'boyish charm' thing. Not every woman can make the flat-chested look work. But seriously, you do look good.",
"Small tits, huh? It's cool – more aerodynamic when you're running from commitment, right?",
"You've got that whole 'model-thin' look going on. Very high-fashion.",
"I guess when they were handing out tits, you heard 'tips' and asked for just the tip, huh?",
"Flat as a board but still adorable. You've got that whole androgynous chic thing down.",
"You're so aerodynamic! Might as well make the most of your... sleekness.",
"It's okay to be part of the Itty Bitty Titty Committee. It's exclusive, right?",
"You've got that whole runway model look - straight lines and sharp angles. It's high fashion, or so I'm told.",
"No need to worry about sagging in the future, so there's that advantage.",
"You're saving a fortune on bras, I bet. Those things are overrated anyway.",
)"](else-if:$topic is "body over face")[
"(twirl:
"Your body's a masterpiece; it almost distracts from your... don't worry, just kidding!",
"Thank heavens for dim lighting, right? But seriously, that body... Wow.",
"They say 'don't judge a book by its cover,' but with your figure, who's even looking at the cover?",
"Your face says 'girl next door,' but your body screams 'the reason you wish you lived next door.'",
"You've got a face for radio, but that body's made for HD.",
"It's clear where nature put all its effort. Your body is the headline; your face is just the fine print.",
"Your body is like a Ferrari, and your face is... well, let's just focus on the Ferrari part.",
"You're a masterpiece, ESPECIALLY from the neck down.",
"Body of a goddess, face of a mortal. But hey, the Greeks were into that, right?",
"Your figure is worth an encore; your face... deserves a second chance. Just kidding!",
"With a body that fine, who's looking at your face? Not that it's bad, but it's just not the main attraction.",
"Mother Nature really focused on the body, huh? The face is nice too, in its own way.",
"From neck down, you're PERFECT.",
"You've got the kind of body that could start wars. Face-wise, maybe just a small skirmish. I'm kidding, I'm kidding!!!",
"It's like your body hit the jackpot, and your face won the consolation prize. I mean that in the best way possible.",
"Your physique is like a headline act - the face is more like the opening band. Still worth the ticket though!",
"You've got curves that could challenge the Grand Prix, and a face that... well, it’s cute enough.",
"Usually, people pay attention to the face, but with you, it’s almost more like an afterthought — I mean, come on, look at that body!"
)"](else-if:$topic is "big ass")[
"(twirl:
"That ass of yours is like a shelf; you could probably serve drinks off it. Not that I'm complaining.",
"You've got an ass that's its own zip code. It's impressive, don't get me wrong.",
"God really gave you a little extra when it comes to the booty department. Bet its hard to find jeans that fit!",
"Wow, you must be a fan of squats with an ass like that, or is it all genetics?",
"I guess you're all about that bass, no treble, huh? It's quite the feature!",
"You've got an ass so big, it's like you're smuggling beach balls. But hey, some guys are into that. I think I might be one of them.",
"That's quite the rear bumper you've got. Ever think about getting into stunt work? You've got natural padding!",
"An ass like that could cause a solar eclipse. Good thing you're indoors.",
"Wow, your ass is out of this world. And by that, I mean it has its own gravitational pull.",
"They say everything is bigger in Texas, but I guess your ass didn't get the memo that we're not in Texas.",
"Most people have junk in their trunk, but you... you've got the whole scrapyard."
)"](else-if:$topic is "intellect")[
"(twirl:
"You're not exactly a rocket scientist, but who needs brains with a face like that?",
"I bet you're the kind of girl who thinks 'deep thoughts' means deciding on your next nail color, right?",
"Don't worry, being a bimbo is totally in right now. You could be the poster child!",
"Your looks definitely make up for the fact that you're not a member of Mensa. Who cares about smarts when you're eye candy?",
"It's a good thing you've got a pretty face; I'd hate for you to rely on your IQ to get by.",
"You're like a real-life Barbie — not much upstairs, but who's really looking at your head?",
"Brains are overrated. A body like yours is worth a thousand IQ points, easily.",
"A smart girl like you knows that looks go further than any college degree ever will, right?",
"You remind me of those genius professors who are so smart that they can't function. Except you're the opposite, and that's totally fine.",
"You know what they say about pretty girls with no sense in their heads. They're still pretty girls!",
"Yeah, people might think you're a bimbo, but I see it as efficiency. Why waste time thinking when you look that good?",
"They say ignorance is bliss, but with a face like yours, who's going to argue? Embrace the simplicity!"
)"](else-if:$topic is "slutty")[
"(twirl:
"It's cool that you're so open with your sexuality. Really breaks the ice, and the bed, I imagine.",
"People might call you easy, but I prefer 'user-friendly'.",
"You've got 'daddy issues' written all over you. Lucky for you, I'm an excellent therapist.",
"Hey, I respect a girl who knows what she wants and takes it. Grab life by the balls, right? Or any other part you prefer.",
"You've got that 'not looking for anything serious, just a good time' vibe. It's pretty hot.",
"You've obviously embraced the 'try before you buy' approach to sex. I respect a thorough shopper.",
"You know, with the way you're dressed, you're saving me a lot of time imagining what's underneath. Efficiency is key, right?",
"I appreciate a woman who dresses for the job she wants. In your case, I assume it's full-time vixen?",
"You wear confidence well, along with that ensemble that screams 'easy access.' I meant that as a compliment, of course.",
"That 'come hither' look combined with the 'go away' outfit. You're playing hard to want, huh?",
"Ah, a woman of style and... very little substance. Just how I like 'em.",
"Bold of you to dress like that and still expect respect. But hey, I respect the hustle.",
"You dress like you expect to be on your back most of the evening. Should I clear my schedule?",
"You're not leaving much to the imagination, but then again, maybe that's just your community service.",
"Love the outfit. It tells me you're not afraid of making... horizontal connections.",
"Not many can pull off the 'walk of shame chic' quite like you do. Bravo.",
"Your dress code must be 'less is more', and by less, I mean fabric.",
"Hey, if you aren't selling it, you're definitely advertising. And business looks booming.",
"You're dressed to impress... or undress, as the case may be.",
"With an outfit like that, who needs personality? You clearly have... other assets.",
"You look like the kind of girl who keeps condoms in her purse next to the lipstick. Always prepared, I respect that.",
"Wow, leaving so little to the imagination... You must be very confident, or is it desperate for attention?",
"You've got a 'touch me, I'm easy' vibe going. I won't complain, makes my job easier.",
"You're dressed like the climax of every guy's fantasy. You must be the life of every party... or the end of it.",
"Heh, if clothes make the man, I guess the lack of them makes the woman, right?",
"So many girls try to leave something to the imagination, but you... you're an open book. A very graphic novel.",
"You make dressing like a slut look like a statement. Is it feminist empowerment or just old-fashioned fun?",
"Love how you're not afraid to dress like you're selling it. Honesty is such a rare quality these days.",
"You really wear your intentions on your sleeve... or lack thereof. I respect a woman who's upfront about her sluttiness.",
"That outfit's screaming 'high mileage,' but I'm sure you handle well on the curves.",
"Some girls dress to impress, you dress to undress. It's remarkably efficient of you.",
"People might say you're dressed like a slut, but I'd just call it... proactive. Saves us both time."
)"](else-if:$topic is "asian")[
"(twirl:
"You're the kind of cute that could start an anime fetish.",
"You've really got that 'submissive Asian' look down. Kudos for committing to the stereotype.",
"It's cool how you embrace the whole 'delicate flower' Asian thing.",
"Most girls try to downplay their exoticness, but not you. You're like a walking, talking 'love you long time' meme.",
"Ah, the classic 'demure Asian beauty.' You play it well, but I bet there's a dragon lady underneath.",
"You pull off the 'Asian persuasion' so naturally. It's almost like you didn't have any choice in the matter.",
"You're exactly what every guy expects when they say they have 'Yellow Fever.'",
"You've really mastered that 'Asian innocence' look. It almost makes me forget you're probably a freak in the sheets.",
"Ah, the exotic Asian flower. I'm just waiting to see if there's a wild side under that demure exterior.",
"Those anime eyes aren’t fooling anyone; we all know you're about as innocent as the internet.",
"It’s cute how you play up the 'I'm a shy Asian girl' card. Works for you, doesn’t it?"
)"
](else-if:$topic is "cum")[
"(twirl:
"Looks like you've got a little... leftover fun on your face. Or is that your new brand of moisturizer?",
"Is that a battle scar or just evidence of an active nightlife? Either way, it’s a conversation starter.",
"You've got a bit of a glazed donut look happening. Late-night bakery run, or just a wild party?",
"I have to commend your commitment to skincare, but you might want to let that 'facial treatment' dry first.",
"I see you like your makeup with a little extra protein. Innovative.",
"Oh, what do we have here? Looks like your face caught the end of a very happy story.",
"Is that the latest skin cream? Or did someone's aim just really suck? Though I guess in your case, it didn’t.",
"You’ve got a little something dripping down your chin... midday snack?",
"Were you running late this morning? I can tell. You still have traces of your 'breakfast' smeared on your cheek.",
"That’s a unique shade of face paint you've got on. Very...organic. Has a real 'man-made' quality to it, you know?"
)"](else-if:$topic is "xchange")[
"(twirl:
"You know, you do make a pretty convincing girl. Almost makes me forget you're a guy on X-Change...",
"You look so... natural. It’s almost like you were meant to be a chick.",
"You've got that whole 'gender-bender' thing going on. It's... cute.",
"Being on X-Change suits you. Maybe a little too well.",
"It's endearing how you're trying to embrace your feminine side. Keep at it; you'll get there eventually.",
"Hey, don't let the haters get to you. You’re doing a great job pretending. Almost too good.",
"It’s impressive how well you manage the female look.",
"See, you look pretty as a girl, but there's just something about your eyes.",
"It's remarkable how you manage to blend in with the actual women. You could fool anyone... who doesn’t know any better.",
"I'll give you credit for trying, but there's just something off. Maybe it's the way you walk? Or talk?",
"Being on X-Change must be like a little vacation from being yourself. How does it feel to be someone else for a change?",
"Being a guy on X-Change and looking this good? You must be giving the real girls a run for their money.",
"You've got that whole 'novelty act' appeal going for you. It's a fun party trick, turning from guy to girl.",
"It's impressive, really, how you take to the female form. Like a duck to water - a very confused, slightly awkward duck.",
"You're like the ultimate method actor. You really immerse yourself in the role of a woman. Too bad it's just a temporary gig, huh?",
"What's it like, having a pussy instead of a dick? Bet you miss it.",
"It's almost like you were meant to be a chick all along.",
"Your new tits really balance out your lack of personality. It's like you've found your true calling as eye candy.",
"I always knew you were a bit of a pussy, but this is taking it to a whole new level.",
"Seeing you like this, it's hard to believe you were ever one of the guys. It's like you were just one pill away from being a cum dumpster all along."
)"
]
}{
(if:$npc's tags contains "gentleman" or (twist:1,4) is 1)[(set:$pickup to "nice")(display:"nice pickup lines")(if:$npc's looks > 7)[(set:$gain to 3)](else-if:$npc's looks > 5)
[(set:$gain to 2)](else:)[(set:$gain to 1)]](else:)[(set:$pickup to "dirty")(display:"dirty pickup lines")(if:$npc's looks > 7)[(set:$gain to 3)](else-if:$npc's looks > 5)
[(set:$gain to 2)](else:)[(set:$gain to 1)]]
"(print:$word_game's "first lines"'s 1st)" (print:$npc's "name") says. "(print:$word_game's "sentences"'s 1st)"
(nl:1)<div class='options'>(display:"gain arousal")</div>
(if:$character's arousal > (10-$npc's appeal))[(twirl:"He's really wearing you down.","He's worn you down sufficiently that you start behaving more friendly.","He's definitely starting to... get to you.","He's definitely starting to get through to you.","He's getting through to you, finally...","He's wearing you down...","Dammit, he's wearing you down.","Shit, you're starting to get aroused.")(if:$character's "masculinity" > 85)[(set:$gain to (max:1,(ceil:$gain * 0.5)))(if:$character's "masculinity" > 85)[(set:$gain to (max:1,(ceil:$gain * 0.5))) *(twirl:"He's really persistent...","He must really want me...","He really wants me, huh?","It's so weird, to be WANTED this much...","Damn, he keeps at it.","He's so persistent...","He's persistent...")*]](nl:1)<div class='options'>(link:"Next")[(display:"proposition next")]</div>](else:)[<div class='options'>(link:"Next")[(display:"proposition reject attempt")]</div>]
}(display:"breathing ambience"){
[(set:$move to (twirl:"proposition pickup line","proposition show cock"))
(if:$npc's "events" contains "cock")[(set:$move to "proposition pickup line")]
(display:$move)]<text|
}{(set:$npc's appeal to (max:$npc's looks,(cock:"rating","npc")))(set:$npc's "events" to $npc's "events" + (a:"cock"))<div class='top_right_pic_wide'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")</div>
(set:$cock to (twirl:"cock","dick","schlong","manhood"))(display:"alcohol modify appeal")
(if:(twist:1,2) is 1)[(if:(twist:1,2) is 1)["(twirl:"Maybe this will convince you.","Perhaps this will change your mind.","Maybe *this* will change your mind.","I think this will convince your little female mind.")" ](twirl:"He holds up his phone, showing you a photo of his $cock.","Unprompted, he shows you a picture of his $cock.","He shows you a picture of his $cock.")](else:)["(twirl:"I think I can change your mind, with a photo of my $cock.","I think this pic of my $cock will change your mind.","I think I can convince you with a simple photo of my $cock.")" (twirl:"He holds up his phone.","He shows you his phone.","He shows you the picture on his phone.")](nl:2)(if:(cock:"rating","npc") < 3)[*(twirl:"Ugh...","Um...","Er...","Gosh...","Urgh...") * you think, looking at (if:(Random:1,2) is 1)[the (print:(lowerfirst:$npc's "unfamiliar name"))'s](else:)[(print:(lowerfirst:$npc's "name"))'s] (print:$npc's cockdesc) (twirl:"member","shaft","penis"). *(twirl:"Not even impressive.","Why would anyone show that off?","It's not really that impressive.","It's nothing to be showing off...","I can't believe he'd even think that is a good look.","This can't normally work for guys...")*](else-if:(cock:"rating","npc") < 6)[(if:(twist:1,2) is 1)[*(print:"It's " + $npc's cockdesc + ".")*](else:)[(twirl:"Your eyes are transfixed for a moment.","For a moment, you can't look away.","For a bit, you can't look away.","For a couple moments, you can't look away.") *It's (print:$npc's cockdesc).*]](else:)[(twirl:"God damn.","Holy fuck.","Goddammit.","Shit.") (twirl:"His",$npc's "name" + "'s") (twirl:"member","erection","shaft") is (print:$npc's cockdesc) and (twirl:"magnificent","frankly a little awe inspiring","overall extremely impressive","*mouth-watering*, really")(if:(twist:1,2) is 1)[, with a (print:$npc's ballsdesc) (twirl:"set of balls","ballsack hanging underneath","ballsack","sack hanging behind it")].](set:$gain to (floor:((cock:"rating","npc")/2.2)))(if:$gain > 0)[(nl:2)<div class='options'>(if:$character's "masculinity" > 85)[<mark>(twirl:"You're too masculine","You're too masculine","You're not feminine enough") (twirl:"for that to turn you on","to get turned on by a DICK PIC","for this to turn you on").</mark>](else:)[(display:"gain arousal")]</div>](else:)[(nl:1)(nl:1)]"(twirl:"You like it, don't you?","Yeah you like it, don't you?","I knew you'd like it.","What do you think?","Yeah I knew you'd like it.","I knew you'd look.")" (twirl:"he grins","he chuckles","he says","he says").(nl:2)
(twirl:"How do you react?","How do you respond?","What's your response?")
<div class='options'>(link:(twirl:"Get it away from me","Take it away","Put that picture away","Gross!","Don't show me that!","Yuck!","Stop!"))[(if:($character's "arousal" + $character's "alcohol status") < (10-(cock:"rating","npc")) or $character's "masculinity" > 85)[(set:$new_mood to (dm:
"mood","grossed out",
"emoji","🤢",
"strength",3,
"length",2,
"cause","From seeing " + $npc's "name" + "'s unsolicited dick pic. It was " + (text:$npc's cockdesc) + ".",
"charm buff",-2,
"intellect buff",0
))(display:"new mood")(display:"refresh stats")(set:$response to "cock")(display:"proposition reject attempt")](else:)[*(twirl:"You're too aroused.","You're too horny.","The picture makes you too horny.","You're way too aroused to react that way.")*]](link:"It's... " + $npc's cockdesc)[(set:$response to "friendly")(display:"proposition show cock react")](link:(twirl:"Glorious","It's amazing","Pretty amazing","Delicious","Looks great","Mouth-watering"))[(if:$character's "masculinity" > 85)[*(twirl:"No.","You're too masculine.","I don't think so.")*](else:)[(set:$response to "slutty")(display:"proposition show cock react")]]</div>
}(display:"breathing ambience"){
(replace:?text)[<div class='top_right_pic_wide'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")</div>(if:$response is "friendly")["(twirl:"Yeah","That's right","Yep","Yes","That's right")(if:$npc's events contains "your name")[(print:" ")(print:$character's "female name"),](else:)[(if:$npc's tags contains "fuckboy" or (twist:1,5) is 1)[ (twirl:"girl","slut","bitch")],] (twirl:"it's definitely ","it's quite ","it's certainly ","quite ","very ")(print:$npc's cockdesc),(if:(twist:1,2) is 1)[ with some (print:$npc's ballsdesc) balls,]"](if:$response is "slutty")[
"(twirl:"Yeah","That's right","Yep","Yes","That's right")(if:$npc's events contains "your name")[(print:" ")(print:$character's "female name"),](else:)[(if:$npc's tags contains "fuckboy" or (twist:1,5) is 1)[ (twirl:"girl","slut","bitch")],] (twirl:"I knew you'd like it,","of course you like it,","I knew seeing it would turn you on,")"] (print:$npc's "name") says. (if:$response is "friendly")["(twirl:"And I can see you like it like that.","And I can tell you like em' like that.","You're gonna love sucking it.","I'll even let you hold it.","You can see it, if you want. The real thing.","I'll let you see the real thing, as long as you promise to worship it.","Perfect for a slut like you to handle.")"]
(nl:1)<mark>You'd rate his dick a (print:(cock:"rating","npc"))/10 overall. </mark>(nl:2)(if:(cock:"rating","npc") > 7)[(set:$result to "fail")(twirl:"Absolutely monstrous.","A veritable beast of a schlong.","Quite an intimidating schlong.")](else-if:$character's "arousal" >= (10-(cock:"rating","npc")))[(set:$result to "fail")(twirl:"You're","You are","You're definitely") (twirl:"aroused enough","horny enough") (twirl:"that you kind of want it","that you want to see it in person","that you're now looking between his legs, to check out the bulge").](else-if:(cock:"rating","npc") > 5 and (twist:1,2) is 1)[ (twirl:"Your eyes go between his legs","You glance between his legs","You glance down","You steal a glance down"). (twirl:"This guy","He","This " + (lowerfirst:$npc's "unfamiliar name")) (twirl:"definitely has a big package","certainly has a sizable package","is definitely pitching a big tent").]
<div class='options'>(link:"Next")[(display:"proposition next")]</div>]
}{
(replace:?text)[(unless:$npc's events contains "your name")[(twirl:"He grins at you.","He smiles victoriously.","He gives you another victorious smile.","He smiles at his progress with you.","He looks quite pleased with himself for the progress he's making with you.","He looks pretty pleased with the progress he's making with you.")(nl:2)"(twirl:"So what's your name,","So now can I get your name,","So can I get your name now,","So how about that name,","So now can you tell me your name,") $petname?"(nl:1)<div class='options'>(link:"I'm " + $character's "name")[(replace:?text)[(display:"proposition your name")]]</div>](else:)[(if:$character's "arousal" > 4)[(twirl:"You feel the pitch of your voice getting higher, softer.","You run your fingers through your hair.")](else:)[(twirl:"He makes some more eye contact with you.","He opens his shoulders a bit more.","He runs his hands over his head.","He adopts a more casual stance, feeling more at ease.","He adopts a strong posture.","He sticks his chest out and acts confident.")](nl:2)(if:$npc's "tags" contains "coworker")[(display:"proposition request coworker")](else:)["(twirl:"I think we click,","I think you like me,","I think I'm getting to you,","I think I'm getting to you,","I think you're interested,","Seems like you're interested,","Seems like you're interested,","We seem to be getting along,","I'd say we're getting along,") (twirl:$petname,$character's "female name"). (display:"proposition request")]]]
}{
(set:$npc_bonus to 0)
(if:$npc's tags contains "chad")[(inc:'npc_bonus',2)]
(if:$npc's tags contains "nerd")[(dec:'npc_bonus',2)]
(if:((get_charm:) + (twist:1,4)) > ($npc's looks + (twist:1,4) + $npc_bonus))[(set:$first to "you")](else:)[(set:$first to "him")]
(if:$first is "you")[(display:"proposition reject attempt")](else:)[($cs:"proposition his move")]
}{
(set:_pickup_lines to (a:
"You should...",(twirl:"learn to respect a girl’s wishes.","learn to respect women.","learn what no means.","learn to respect women.","respect when a girl tells you no."),
"You should...",(twirl:"go bother someone else.","find someone else with lower standards.","find someone else to hit on."),
"This has...",(twirl:"gone too far.","gone plenty far enough.","gone on too long."),
"Can...",(twirl:"you please go away?","you not be a pig?","you take a hint, please?","you just take a hint?"),
"Would you...",(twirl:"mind leaving me alone?","please just leave me alone?","stop pestering me?","please stop being a pig?","please give me some space?"),
"Can you please...",(twirl:"just leave me alone?","just fuck off?","go bother someone else?"),
"Please...",(twirl:"just leave me alone.","stop, just stop.","stop being a pig.","learn to take a hint!","learn that no means no!"),
"I’m just...",(twirl:"not interested in you, ok?","not interested, ok?","not interested.","really not interested."),
"Come on...",(twirl:"learn to take a hint.","I said no.","I told you no already."),
"Geez...",(twirl:"learn to take a hint!","don’t be so pig-headed!"),
"Please...",(twirl:"just go away, ok?","just go away.","just leave me alone.","just take a hint.")))
($word_game_setup:_pickup_lines)
}{
(set:_pickup_lines to (a:
"You should...",(twirl:"learn to take a hint.","learn to respect women.","respect when a girl tells you no.","learn when a girl doesn’t want to talk.","learn when girls aren’t interested."),
"You should...",(twirl:"go bother someone else.","find someone else with lower standards.","find someone else to pester."),
"This has...",(twirl:"gone too far.","gone plenty far enough.","gone on too long."),
"Can...",(twirl:"you please go away?","you not be a pig?","you take a hint, please?","you just take a hint?"),
"Would you...",(twirl:"mind leaving me alone?","please just leave me alone?","stop pestering me?","please stop being a pig?","please give me some space?"),
"Can you please...",(twirl:"just leave me alone?","just fuck off?","go bother someone else?"),
"Please...",(twirl:"just leave me alone.","stop, just stop.","stop being a pig.","learn to take a hint!","learn what ignoring you means!"),
"I’m just...",(twirl:"not interested in you, ok?","not interested, ok?","not interested.","really not interested."),
"Come on...",(twirl:"learn to take a hint.","I ignored you because I’m not interested.","I’m obviously not interested."),
"Geez...",(twirl:"learn to take a hint!","don’t be so pig-headed!"),
"Please...",(twirl:"just go away, ok?","just go away.","just leave me alone.","just take a hint.")))
($word_game_setup:_pickup_lines)
}{
(twirl:"You stumble over your words, losing focus.","You're not sure how to say it.","Sigh... should I just talk to him?","Rejecting guys is hard.","*I hate rejecting people.*","*He's so annoying, but I hate rejecting people.*","You lose the willpower to turn him down...","You trip over your words.","You trip over your sentences.")
}{
(twirl:"He loses some of his confidence.","He gazes at you.","He processes your words.","He seems to be finally taking the hint.","He seems to be finally listening.","He's listening, finally.","He's listening.","Maybe he'll leave you alone now.","You were pretty adamant right there.","Hard for him to see any openings after that.")
}[(if:$result is "fail")[(display:"proposition his move")](else-if:(get_intellect:) < 4 and (twist:1,6) is 1)[(display:"reject success dumb")](else-if:(get_intellect:) < 3 and (twist:1,4) is 1)[(display:"reject success dumb")](else-if:(get_intellect:) < 2 and (twist:1,3) is 1)[(display:"reject success dumb")](else:)[(print:$npc's "name") (twirl:"takes the hint, and leaves.","finally leaves you alone.","finally nods, and leaves.","nods curtly, and leaves.","looks crestfallen, and leaves.","mumbles something awkwardly, and leaves.","mumbles awkwardly, and leaves.")(nl:1)(display:"catcall guy leaves")]]<text|{(set:$word_game to (dm:
"challenge","",
"near victory","",
"near defeat","",
"victory","",
"defeat","",
"points to win",6,
"points",2,
"failure passage","proposition reject result",
"victory passage","proposition reject result",
"backdrop","<img class='greyborder' src='img/characters/emotion/reject/" + $character's "id" + ".jpg' width='100%' height=auto>",
"aroused words",(a:"cock","dick","masculine","manly","irresistible","delicious","muscles","confidence"),
"dealer name","Dealer",
"difficulty",65,
"text color","black",
"sentences",(a:),
"first lines",(a:),
"type","pick up",
"fail passage","proposition reject fail",
"win passage","proposition reject success"
))(if:$response is "polite")[(display:"proposition reject lines polite")](else-if:$response is "cock")[(display:"proposition reject lines cock")](else:)[(display:"proposition reject lines ignore")]
($cs:"word game initialize")
}{
(set:_pickup_lines to (a:
"You should...",(twirl:"keep it in your pants.","not show people that."),
"You should...",(twirl:"go bother someone else.","find someone else with lower standards.","find someone else to hit on."),
"This has...",(twirl:"gone too far.","gone plenty far enough.","gone on too long."),
"Can...",(twirl:"you please go away?","you not be a pig?","you take a hint, please?","you just take a hint?","you not show me that?"),
"Would you...",(twirl:"mind leaving me alone?","please just leave me alone?","stop pestering me?","please stop being a pig?","please give me some space?","stop being gross?"),
"Can you please...",(twirl:"just leave me alone?","just fuck off?","go bother someone else?","not be gross?"),
"Please...",(twirl:"just leave me alone.","stop, just stop.","stop being a pig.","learn to take a hint!","learn that no means no!"),
"I’m just...",(twirl:"not interested in you, ok?","not interested, ok?","not interested.","really not interested."),
"Come on...",(twirl:"learn to take a hint.","I said no.","I told you no already.","don’t show me that."),
"Geez...",(twirl:"learn to take a hint!","don’t be so pig-headed!","put that photo away!","put that pic away!","don’t show people that!"),
"Please...",(twirl:"just go away, ok?","just go away.","just leave me alone.","just take a hint.")))
($word_game_setup:_pickup_lines)
}{
(set:$quicktime_params to (dm:
"objective","Keep your pleasure under control!",
"skill check","arousal denial",
"skill check difficulty",25,
"media","picture",
"timing message","but not too fast.",
"result passage","proposition reject bj aroused result",
"backdrop","characters/emotion/reject/" + $character's id + ".jpg",
"sex loop","fast heartbeat",
"time",15,
"rhythm",(($character's "arousal") + 1) of (a:900,800,700,650,500,450,425,400,375,350,350,350,350),
"interrupt passage","proposition reject bj aroused interrupt",
"type","resist cum",
"interrupts", 1
))
(if:(is_bim:))[(set:$quicktime_params's "backdrop" to "characters/emotion/bimbo/" + $character's id + ".jpg")(set:$quicktime_params's "interrupts" to 2)(set:$quicktime_params's "time" to 20)]
($cs:"dont cum initialize")
}{
(set:$quicktime_params to (dm:
"objective","Keep your pleasure under control!",
"skill check","arousal denial",
"skill check difficulty",25,
"media","picture",
"timing message","but not too fast.",
"result passage","proposition reject fuck aroused result",
"backdrop","characters/emotion/reject/" + $character's id + ".jpg",
"sex loop","fast heartbeat",
"time",15,
"rhythm",(($character's "arousal") + 1) of (a:900,800,700,650,500,450,425,400,375,350,350,350,350),
"interrupt passage","proposition reject fuck aroused interrupt",
"type","resist cum",
"interrupts", 2
))
(if:(is_bim:))[(set:$quicktime_params's "backdrop" to "characters/emotion/bimbo/" + $character's id + ".jpg")(set:$quicktime_params's "interrupts" to 2)(set:$quicktime_params's "time" to 20)]
($cs:"dont cum initialize")
}{
(if:(twist:1,2) is 1)[
(display:(twirl:"female arousal text 1","female arousal text 2"))](else:)[
(twirl:"Your mind's telling you no, but your body is telling you yes.","Something sounds so *normal* about sucking him off.","It should be easy. But when you're this aroused, giving a blowjob just sounds so tempting.","Why is the idea of giving a blowjob so tempting?")
]
}{
(if:(twist:1,2) is 1 and $propositiontype is not "fuckbuddy")[
(display:(twirl:"female arousal text 1","female arousal text 2"))](else:)[
(if:$npc's "events" contains "cock" and (cock:"rating","npc") > 7)[(set:$desc to "big, " + $npc's "cockdesc" + " " + (twirl:"cock","dong","schlong"))(twirl:"What would that $desc feel like inside you?","You imagine that $desc stretching out your little pussy...","You think about getting fucked by that $desc.","You wonder what it would be like to get fucked by that $desc.")](else:)[(twirl:"You could really use a fuck right now...","Your pussy is so wet though...","Would it really be so bad?","You're really horny - getting fucked could feel really nice.")]
]
}(if:(win:))[(twirl:"It takes a lot of effort, but you manage to turn him down.","It takes a surprising amount of willpower, but you do turn him down.","You turn down his request, a bit shocked at how hard it was to do.")
(display:"proposition reject result")](else:)[(twirl:"Try as you might,","No matter how had you try to force yourself to say no,","You try to resist your raging hormones, but","You try to resist your own raging libido, but","You try to will yourself to say no, but") (twirl:"you're too turned on.","you're way too horny.","you've got a raging lady-boner that needs to be satisfied.")
(display:"proposition accept bj")](if:(win:))[(twirl:"It takes a lot of effort, but you manage to turn him down.","It takes a surprising amount of willpower, but you do turn him down.","You turn down his request, a bit shocked at how hard it was to do.")
(if:$propositiontype is "fuckbuddy")[(set:$propositiontype to "")(set:$option to "refuse")($cs:"NPC invites himself response")](else:)[
(display:"proposition reject result")]](else:)[(twirl:"Try as you might,","No matter how had you try to force yourself to say no,","You try to resist your raging hormones, but","You try to resist your own raging libido, but","You try to will yourself to say no, but") (twirl:"you're too turned on.","you're way too horny.","you've got a raging lady-boner that needs to be satisfied.")
(if:$propositiontype is "fuckbuddy")[(set:$propositiontype to "")(set:$option to "come over")($cs:"NPC invites himself response")](else:)[
(display:"proposition accept fuck")]]{
(set:$load to "normal")
(set:$reward to (twirl:"money","card","nothing","money","money","nothing","money"))
(if:$npc_type is "coworker")[(set:$reward to "lead")]
(if:$reward is "money")[
(set:$reward_amount to (max:25,5 * ($npc's wealth + (get_charm:))))
(if:$npc's wealth < 6 and (twist:1,4) is 1)[
(set:$reward_amount to (ceil:$reward_amount / 2))
]
]
(if:(checkdm:$npc,"id","is","bruce"))[(set:$reward to "nothing")]
(if:(twist:1,4) is 1)[
(twirl:
"I need to fuck.",
"I need a tight pussy to fuck.",
"I need a quick fuck.",
"I really need to empty my balls.",
"I really really need to empty my balls."
)(print:" ")
(set:$load to "big")
](else:)[
(set:$load to "normal")
]
(if:$reward is "money")[
How would you like to earn $reward_amount bucks?"
](else-if:$reward is "lead")[(if:$office_events contains "swp restriction")[(display:"coworker lead comment restriction")](else:)[(display:"coworker lead comment")]"
](else-if:$reward is "card")[
How'd you like to earn a rare X-Change trading card? I got a good one."
](else:)[
(if:$npc's generation is "genx")[
(twirl:
"How about having a little fun with daddy?",
"Wanna have some fun with daddy?"
)
](else:)[
(twirl:
"How about having a little fun together?",
"Wanna have a little fun with me?"
)
]
(if:$npc's tags contains "gentleman")[(print:" ")
(twirl:
"Sorry for being blunt, my dear.",
"Sorry to be a little blunt...",
"Sorry to be so straightforward, but a man needs what he needs, you know?"
)
]"
]
(if:$character's "side effects" contains "Swallow to continue")[
*I do need to swallow cum, for this New-U transformation to continue...*
]
(if:$character's "side effects" contains "Swallow or permanent ID")[
*I do need to swallow cum, or I'll be stuck in this DNA...*
]
(display:"proposition request fuck options")
}{<div class='options'>
<mark>He wants sex.</mark>
</div>
(if:$character's "arousal" > 5)[
(set:$yes to (twirl:
"Yeah!",
"Yes.",
"Of course!",
"Absolutely!",
"Yes please."
))
(set:$no to (twirl:
"Not right now...",
"No thank you.",
"I don't think so..."
))
](else:)[
(set:$yes to (twirl:
"...ok",
"...sure."
))
(set:$no to (twirl:
"No way!",
"Uh-uh!",
"No!"
))
]
(set:$yes_money to (twirl:
"For more money, perhaps.",
"If you up the ante.",
"If you give me more money.",
"For more money.",
"Bargain."
))
<div class='options'>
(link:$yes)[
(if:($character's arousal > (7-$npc's appeal)
or $character's "side effects" contains "Swallow to continue"
or $character's "side effects" contains "Swallow or permanent ID"
or $npc_type is "coworker")
and not ($character's "masculinity" > 85)
)[
(set:$option to "accept")
(set:$next to "proposition accept fuck")
(display:"change screen")
](else:)[
*(twirl:
"You don't want to.",
"You're not horny enough to agree.",
"No, I don't think so."
)*(if:$character's "masculinity" > 85 and not (is_pp:))[<div class='options'><mark>Action blocked due to high masculinity.</mark></div>](link:"Use Action Point (accept sex)")[(set:$option to "accept")(set:$action_params to (dm:"cost",1,"result","proposition accept fuck","type","change screen"))(display:"use action point")]
]
]
(if:$reward is "money")[
(link:$yes_money)[
(set:$option to "accept")
(print:" ")
(if:($character's arousal > (7-$npc's appeal)
or $character's "side effects" contains "Swallow to continue"
or $character's "side effects" contains "Swallow or permanent ID"
or $npc_type is "coworker")
and not ($character's "masculinity" > 85)
)[
(set:$next to "proposition accept fuck bargain")
(display:"change screen")
](else:)[
*(twirl:
"You don't want to.",
"You're not horny enough to agree, even for more money.",
"No, I don't think so."
)*(link:"Use Action Point (bargain anyway)")[(set:$option to "accept")(set:$action_params to (dm:"cost",1,"result","proposition accept fuck bargain","type","change screen"))(display:"use action point")]
]
]
]
(link:$no)[
(print:" ")
(if:$character's arousal > (8-($npc's appeal/2)))[
(display:"proposition reject fuck aroused")
](else:)[
(set:$result to "reject")
(set:$next to "proposition reject result")
(display:"change screen")
]
]
(if:$safeword is "Safeword: Enabled")[
(link:"🚫")[
(replace:?text)[
(set:$response to "safeword")
(display:"catcall guy leaves")
]
]
]
</div>
}{
(set:$npc's "events" to it + (a:"sex"))
}{
(set:$command to "none")
(set:$interrupt to "none")
(set:$interrupt_warn to "none")
(set:$song to 0)
(display:"play song")
(if:$npc's tags contains "chad")[
"(if:$option is "offer sex")[(twirl:
"You're offering your pussy instead, huh?",
"What a slut! Wouldn't mind going balls deep in your pussy, of course...",
"Hah! I knew you were a slut. Sure,",
"Hah, guess I've had an effect on you...")](else:)[(twirl:
"Knew you'd want to,",
"I knew it,",
"Of course,",
"Haha, of course,"
)]"
the (print:(lowerfirst:$npc's "unfamiliar name"))
(twirl:
"smiles, smugly.",
"he says, with a smug grin.",
"says, with a self-assured little smile."
)
"Follow me, (twirl:$petname,$character's "female name")."
](else-if:$npc's tags contains "creepy")[
(twirl:
"He chuckles creepily.",
"He laughs in creepy glee.",
"He smiles a little too widely.",
"His smile makes you a little nervous."
)
"(twirl:"Excellent,","Wonderful,")" he says.
(display:"sex location statement")
](else:)[
(if:$option is "offer sex")[
"(twirl:
"Hmm, let me think about th- YES,",
"Hah - of course we can!",
"Even better!",
"Hmm... let me think about that for a bi- SURE!","Um, YES,",
"Haha, what a slut! I love it - yes,",
"Yes, let's do it, hahaha - what a slut,"
)
](else:)[
"(twirl:"Great","Good"),]" he says.
(display:"sex location statement")
]
<div class='options'>
(link:"Follow " + $npc's "name")[
(set:$next to $location_params's "sex location passage")
(set:$stage to 0)
(display:"change screen")
]
</div>
}{
(set:$reward_amount to $reward_amount * 2)
(if:(twist:1,10) > (get_charm:))[
(set:$result to "fail")
](else:)[
(set:$result to "pass")
]
(if:(win:))[
<mark>Charm check passed!</mark>
(print:"
")
(set:$command to "none")
(set:$interrupt to "none")
(set:$interrupt_warn to "none")
(set:$song to 0)
(display:"play song")
(if:$npc's tags contains "chad")[
"(twirl:
"Yeah, sure, I could do $reward_amount bucks,",
"I could do $reward_amount,",
"Yeah, I could swing $reward_amount, you seem worth it,",
"Sure, let's double it,"
)"
the (print:(lowerfirst:$npc's "unfamiliar name"))
(twirl:
"smiles, smugly.",
"he says, with a smug grin.",
"says, with a self-assured little smile."
)
"Follow me, (twirl:$petname,$character's "female name")."
](else-if:$npc's tags contains "creepy")[
(twirl:
"He chuckles creepily.",
"He laughs in creepy glee.",
"He smiles a little too widely.",
"His smile makes you a little nervous."
)
"(twirl:
"I'll give you double,",
"Double it is,",
"$reward_amount dollars it is,"
)"
he says.
(display:"sex location statement")
](else:)[
"(twirl:
"Sure",
"Okay",
"Alright"
),"
he says.
"I can do $reward_amount (twirl:"bucks","dollars").
(display:"sex location statement")
]
<div class='options'>
(link:"Follow " + $npc's "name")[
(set:$next to $location_params's "sex location passage")
(set:$stage to 0)
(display:"change screen")
]
</div>
](else:)[
<mark>Charm check failed!</mark>
(print:"
")
He (twirl:"shakes his head, unwilling to pay that much","shakes his head","says no").
(display:"catcall guy leaves")
]
}{
(if:$current_activity is "Go clubbing")[(if:$npc's "wealth" > 5)["I booked us one of the private rooms."](else:)["Let's do it in the bathroom stalls."]](else:)[There's (print:$location_params's "sex location name") nearby."]
}{(display:"sex transactional comment " + $character's "id")
(set:$comments to $comments - $scene's "events")
(if:length of $comments > 1)[(set:$comments to (shuffled:...$comments))]
(if:length of $comments > 0)[(set:$comment to $comments's 1st)](else:)[(set:$comment to (twirl:"tits","face"))](set:$scene's "events" to $scene's "events" + (a:"comment"))
(if:$comment is "butt")[(if:$outfit's "tags" contains "nude")[(set:$comment_image to "<img class='greyborder' src='img/characters/nude/butt/" + $character's "id" + ".jpg' width='100%' height=auto>")](else-if:(datanames:$outfit) contains "image")[(set:$comment_image to "<div class='top_right_pic'>" + $outfit's "image" + "</div>")](else:)[(set:$comment_image to "<img class='greyborder' src='img/characters/face/" + $character's "id" + ".jpg' width='100%' height=auto>")]]
(if:$comment is "tits")[(if:$outfit's "tags" contains "nude")[(set:$comment_image to "<img class='greyborder' src='img/characters/nude/boobs/" + $character's "id" + ".jpg' width='100%' height=auto>")](else-if:(datanames:$outfit) contains "image")[(set:$comment_image to "<div class='top_right_pic'>" + $outfit's "image" + "</div>")](else:)[(set:$comment_image to "<img class='greyborder' src='img/characters/face/" + $character's "id" + ".jpg' width='100%' height=auto>")]]
(if:$comment is "face")[(set:$comment_image to "<img class='greyborder' src='img/characters/face/" + $character's "id" + ".jpg' width='100%' height=auto>")]
(if:$comment is "body")[(if:$outfit's "tags" contains "nude")[(replace:?portrait)[(print:"<img class='greyborder' src='img/characters/nude/body/" + $character's "id" + ".jpg' width='100%' height=auto>")(set:$outfit_button to "show")(display:"outfit button")]](else-if:(datanames:$outfit) contains "image")[(set:$comment_image to "<div class='top_right_pic'>" + $outfit's "image" + "</div>")](else:)[(set:$comment_image to "<img class='greyborder' src='img/characters/face/" + $character's "id" + ".jpg' width='100%' height=auto>")]]
(set:$scene's "events" to $scene's "events" + (a:$comment))
(replace:?options)[(if:$comment is "face")[(display:"sex transactional face comment")](else-if:$comment is "butt")[(display:"sex transactional butt comment")](else-if:$comment is "body")[(display:"sex transactional body comment")](else-if:$comment is "tits")[(display:"sex transactional tits comment")](display:"sex transactional option links")]}{(set:$comments to (a:"butt","butt","butt","body","body","tits","tits","face","face","face"))}{(set:$comments to (a:"butt","tits","tits","body","body","tits","face","tits"))}{(set:$comments to (a:"butt","tits","tits","body","tits","face","tits"))}{(set:$comments to (a:"butt","tits","tits","body","tits","face","tits"))}{(set:$comments to (a:"butt","butt","butt","tits","body","body","butt","face","face","face","face","butt"))}{(set:$comments to (a:"butt","tits","body","face"))}{(set:$comments to (a:"butt","tits","tits","body","face","tits","tits","body","face","tits","tits","body","face"))}{(set:$comments to (a:"butt","tits","body","face","tits","body","face","tits"))}{(set:$comments to (a:"butt","tits","body","face","tits","body","face","tits","body","face","face"))}{(set:$comments to (a:"butt","butt","butt","tits","body","body","butt","body","body","face","face","butt"))}{"(if:$npc's "generation" is "genz")[(twirl:"Dayum girl","Fuck","Yeesh","No cap","Sheesh")](else-if:$npc's "generation" is "genx")[(twirl:"Golly","Gee whiz","Holy cow","My goodness","Goodness")](else:)[(twirl:"Dayum","Shit","Fuck")], (display:"your pronoun"), (twirl:"you're so gorgeous","you're beautiful","you're so hot","you're fucking sexy","you're so fucking sexy","those lips, those eyes... fuck","you're so elegant, so beautiful","you're so hot","you turn me on so much")(twirl:"...",",","!")" (display:"npc pronoun") says. (unless:(datanames:$npc) contains "petname")[(set:$npc's "petname" to "my " + (twirl:"sexy little ","gorgeous ","hot little ","pretty little ","achingly gorgeous ") + (twirl:"cutie","goddess","minx","vixen","goddess","cutiepie","beauty"))"(twirl:"I'm gonna call you","Think I'm gonna call you","Gonna call you") (print:$npc's petname)(twirl:" from now on.",".")"(set:$petname to $npc's petname)]}{($char_passage:"sex transactional tits comment",[(set:$tits to $character's "id" of (dm:
"alina",(twirl:"tits","boobs"),
"cassidy",(twirl:"milkers","udders","bazongas","tits","milkers","udders","cow-tits","big, floppy tits"),
"mia",(twirl:"milkers","udders","bazongas","tits","milkers","udders","cow-tits","big, floppy tits"),
"ella",(twirl:"massive milkers","udders","bazongas","tits","milkers","udders","cow-tits","boobs","big, floppy tits"),
"jade",(twirl:"milkers","tits","udders","boobs","boobs"),
"lana",(twirl:"milkers","tits","udders","boobs","boobs"),
"liya",(twirl:"milkers","tits","udders","boobs","boobs"),
"jia",(twirl:"tits","boobs"),
"scarlit",(twirl:"tits","boobs"),
"rae",(twirl:"milkers","tits","boobs","boobs")))],[])
(if:$character's "id" is "jia")[
"(if:$npc's "preference" is "tits")[(if:$npc's "personality" < 6 )[(twirl:"Let's be honest, your $tits aren't much to write home about,","Let's be real, your $tits aren't anything to write home about","These tits aren't anything to write home about,","Those little mosquito bites aren't exactly anything to write home about,","Those $tits aren't anything special - good thing you're so damn hot,","Good thing you're fucking hot, cause those $tits aren't anything special,")](else:)[(twirl:"It's ok that those $tits aren't the biggest...","Don't worry that those #tits aren't huge, cause you're fucking hot!","I'm usually a tits guy, but you're so hot that it doesn't matter,")]](else:)[(twirl:"Those $tits may not be anything to write home about, ","Yeah, those little mosquito bites may not be the biggest tits in the world, ","Those $tits may not be the biggest, ")(twirl:"but I'm an ass man anyway,","but I'm more of an ass many anyhow...","but I'm much more about that big, fat ass...")]" (display:"npc pronoun") says.](else:)["(if:$character's "breasts" is "C")[(twirl:"Those are some squeezable $tits you got there","Nice tits","I'd love to motorboat those $tits","I wouldn't mind squeezing those $tits","I love watching your $tits jiggle","Those tits are mesmerizing","Your $tits are just perfect","I'm stuck staring at those $tits","You're so perky, I mean perty, I mean pretty. Who are we kidding, those $tits are what it's all about","Your titties are pretties","You've got a nice rack","Nice rack","Nice cans","You've got a nice little pair of personalities","Nice jugs","I bet your smile is even sweeter than your tits, so smile","Those $tits are perfect. Nice handfuls","With $tits like those, I bet guys have a hard time keeping eye contact","Your cleavage interests me","Those $tits look so squeezable. Can't keep my hands off you","Those $tits look heavy, I could hold them for you","Those $tits are the perfect handfuls")](else-if:$character's "breasts" is "D")[(twirl:"Those are some squeezable titties","Nice $tits","I'd love to motorboat those","I wouldn't mind squeezing those big-ass tits","I love watching your $tits bounce","Those $tits are amazing","Your $tits are just perfect","I'm stuck staring at those $tits","Your titties are pretties","You've got a really nice rack","Nice rack","Nice cans","You've got a nice pair of personalities","Those $tits were calling out to me from across the room","Nice jugs","I bet your smile is even sweeter than your tits, so smile","Those $tits are legendary","With $tits like those, I bet guys have a hard time keeping eye contact","Your cleavage interests me","Those $tits are so nice and squeezable")](else-if:$character's "breasts" is "E")[(set:$tits to (twirl:"cans","jugs","milkers","tits","boobs","titties","udders","bazongas"))(twirl:"Dem sum big ol' tiddies","Those are some big ol' titties","Nice UDDERS","I'd love to motorboat those","Those $tits are so fucking big","I love watching your $tits bounce","Those $tits are amazing","Your milkers are just perfect","I wonder what your face looks like, cause I'll never know - stuck staring at those $tits","You're so perky, I mean perty, I mean pretty","Those huge $tits must hurt your back","You've got a nice rack","Nice rack","Nice cans","You've got a nice pair of personalities","Nice jugs","I bet your smile is even sweeter than your tits, so smile","Those $tits are so nice and big","With $tits like those, I bet guys have a hard time keeping eye contact","Your cleavage interests me","Those $tits are so squeezable","Those $tits look so damn heavy, I could hold them for you","Those $tits are HUGE, I'm in love","Those $tits are gigantic")](else-if:$character's "breasts" is "F")[(set:$tits to (twirl:"cans","jugs","milkers","tits","boobs","titties","udders","bazongas"))(twirl:"Those are some big ol' titties","Nice udders","I wouldn't mind squeezing those big-ass $tits","I love watching your $tits bounce","Those $tits are amazing","Your milkers are just perfect","Those big tits would look even better without anything covering em","I wonder what your face looks like, cause I'll never know - stuck staring at those $tits","You're so perky, I mean perty, I mean pretty","Those huge $tits must hurt your back","You've got a nice rack","Nice rack","Nice cans","You've got a nice pair of personalities","Nice jugs","I bet your smile is even sweeter than your tits, so smile","Those $tits are so nice and big","With $tits like those, I bet guys have a hard time keeping eye contact","Your cleavage interests me","Those $tits look so squeezable","Those $tits look so damn heavy, I could hold them for you","Those $tits are HUGE, I'm in love","Those $tits are gigantic","I don't care if your tits are floppy, I love them","I love those massive $tits","Those gargantuan $tits are totally my jam","You can tit-fuck easily with that massive rack","Those things are enormous","It must hurt to walk with $tits that enormous")](else:)[(twirl:"I fucking love those $tits","Those $tits are amazing","Those $tits... you were fucking MADE for sex","How does it feel, knowing that your body was BUILT for sex? Those $tits are incredible","Those $tits... absolutely incredible","The only way those $tits could possibly look better, is if they were slathered with my cum","Those $tits are fucking incredible","Your $tits - my god. Absolutely mind-blowing","Your tits are so fucking good")](if:(twist:1,2) is 1)[, (twirl:$your_name,$petname)](twirl:",","!",",")" (display:"npc pronoun") says.] (unless:(datanames:$npc) contains "petname")[(set:$npc's "petname" to "my " + (twirl:"big-titted ","fat-titted ","big-breasted ","udderly gorgeous ","busty ") + (twirl:"cutie","goddess","minx","vixen","goddess","cutiepie","slut","bombshell"))(if:(twist:1,3) is 1)[(set:$npc's "petname" to "my " + (twirl:"little milk truck","adorable little milk truck"))]"(twirl:"I'm gonna call you","Think I'm gonna call you","Gonna call you") (print:$npc's petname)(twirl:" from now on.",".")"(set:$petname to $npc's petname)]
}{
($char_passage:"sex transactional body comment",[{(set:$text to $character's "id" of
(dm:
"alina",(twirl:"athletic","lithe","sensual","slender","athletic","womanly","feminine","svelte"),
"cassidy",(twirl:"breedable","fully-stacked","bouncy","jiggly","curvy","voluptuous","fertile","tan","womanly","feminine","curvaceous"),
"ella",(twirl:"breedable","fully-stacked","bouncy","jiggly","curvy","voluptuous","tan","womanly","feminine","curvaceous"),
"jade",(twirl:"curvy","juicy","petite","curvy","sexy","exotic","tan","pleasing","womanly","feminine"),
"jia",(twirl:"bottom-heavy","elegant","lithe","sensual","pale","picture-perfect","tight","freckled","womanly","feminine"),
"lana",(twirl:"hourglass-shaped","curvy","sensual","oversexed","hypersexual","voluptuous","jiggly","pleasing","womanly","feminine","hyper-feminine","curvaceous"),
"liya",(twirl:"all-natural","curvy","sexy","lithe","sensual","athletic","tanned","busty","tattooed","curvaceous"),
"mia",(twirl:"breedable","fully-stacked","bouncy","jiggly","curvy","voluptuous","fertile","tan","womanly","feminine","curvaceous"),
"rae",(twirl:"perky","lithe","slender","feminine","svelte"),
"scarlit",(twirl:"bottom-heavy","elegant","lithe","sensual","picture-perfect","tight","womanly","feminine")
))}],[])
(set:$body to (twirl:"figure","body","body","curves","figure","body","body","figure","physique","proportions"))(if:$text is "curvy" or $text is "curvaceous")[(set:$body to (twirl:"figure","body","body","figure","body","body","figure","physique","proportions"))]
(set:$case to "upper")(display:"npc pronoun") (twirl:"takes a moment to admire your $text $body.","looks you up and down.","takes a moment to really appreciate your $text $body.","ogles your $text $body.","gleefully examines your $text $body.")(print:" ")(set:$body to (twirl:"your body is","that body is","your curves are","those curves are"))(if:$body is "curves")[(set:$body to (twirl:"your body is","that body is"))](else-if:$body is "body")[(set:$body to (twirl:"your curves are","those curves are"))](set:$text to (twirl:"sexy","hot","fuckable","bangin'"))(if:$npc's generation is "genz")[(set:$text to (twirl:"fire","lit","bussin","nice"))](if:$npc's tags contains "chad" and (twist:1,2) is 1)["(twirl:"I gotta admit, you have a $text body.","Credit where it's due, $body pretty $text.","Damn. Gotta admit, $body $text.","Hah. I'm a player, and I've seen a lot. But you... your body is $text.","I've seen a LOT of girls naked, but damn. Your body is $text.")"](else-if:$npc's tags contains "fuckboy" and (twist:1,2) is 1)["(twirl:"Haaah damn.","Dammnnn girlllll.","Haaah-","Damn babe.","What a baaaabe.","Damn $your_name.","Damn damn dayummmmmm.") (twirl:"That body tho.","That bod is incred.","You're so hot.","Can't wait to get my dick inside you. Heh.","You got a really fuckable body.","You're like BUILT to be fucked.")"](else-if:$npc's generation is "genx" and (twist:1,2) is 1)["(set:$age to $npc's age)(twirl:"I'll just tell you - I'm $age.","I'm not the youngest guy in the world.","I'm $age, and damn.") (twirl:"I feel lucky.","You are making me feel young all over again with that $text body.","It's gonna feel amazing to fuck a body like yours.","Your body is reminding me of my 20s.")"](else-if:$npc's generation is "genz" and (twist:1,2) is 1)[(set:$age to $npc's age)"(twirl:"No cap, can't believe I got a hot girl like you. Dayum.",(upperfirst:$body)+" freakin' GOAT.","Sheeeeesh girl. I think I'm falling in love with your body.","Sheeeesh, $body bussin'.","Poggers. No cap.","You are a marvelous bitch.","You're looking very submissive and breedable. Heh.",(upperfirst:$body)+" lowkey fire. Actually, not lowkey, high key!")"](else-if:$npc's tags contains "creepy" and (twist:1,2) is 1)[*(twirl:"He's pretty creepy... god. And I agreed to fuck him.","He's a little creepy... can't believe I agreed to fuck him.","He's creeping me out a little...","That look in his eyes is kinda creepy...")*](else-if:$npc's tags contains "jock" and (twist:1,2) is 1)["(twirl:"Damn.","Damn, $your_name.","Wow, $your_name.") (twirl:"I see you keep in shape too!","You definitely keep yourself in shape.","Your body is amazing - you must care as much about fitness as I do.","Maybe we can hit the gym together sometime - you must have a great routine.")"](else:)["(print:(upperfirst:$body))(print:" $text")(twirl:"!",".","...")"]
}{($char_passage:"sex transactional butt comment",[{(set:$phat to $character's "id" of
(dm:
"alina",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round"),
"cassidy",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","juicy","fat, juicy"),
"ella",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","fat, juicy"),
"jade",(twirl:"phat","thick","nice","big"),
"jia",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","juicy","beautiful","picture-perfect"),
"lana",(twirl:"nice, PHAT","round","PEACHY","peachy","premi-*yum*","fantASStic","thick","FAT","PHAT","fat","nice, round","humongous","juicy"),
"liya",(twirl:"cute","tight","perky","cute"),
"mia",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous"),
"rae",(twirl:"cute","tight","perky","cute","cute lil'"),
"scarlit",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","juicy","beautiful")
))
(set:$butt to (twirl:"ass","butt","rear","ass","tush","ass","ass","butt","badonkadonk"))(if:(a:"alina","jia","cassidy","jade","lana","scarlit") contains $character's "id" and (twist:1,2) is 1)["(if:$npc's "generation" is "genz")[(twirl:"Dayum girl","Fuck","Yeesh, $your_name","No cap","Sheesh, $your_name")](else-if:$npc's "generation" is "genx")[(twirl:"Golly","Gee whiz","Holy cow","My goodness","Goodness","Oh mercy","Lord Jesus"), (display:"your pronoun")](else:)[(twirl:"Dayum girl","Shit girl","Fuck, $your_name","Holy shit")]," (display:"npc pronoun") (twirl:"says","whistles","admires you","says","says","grins"). "(if:$character's "id" is "alina")[(twirl:"You're so nice and thick.","I'd follow you anywhere, with an ass like that.","That's a perfectly round latina $butt you got there. Quality.","You've got a nice bubble butt there.","I could stare at that $phat $butt all day.","I love that $phat $butt. It's picture perfect.","That $phat $butt is the only thing distracting me from your gorgeous face... fuck.")](else-if:$character's "id" is "cassidy" or $character's "id" is "ella")[(twirl:"Those latina genetics, man... what a $phat $butt you got.","I'm loving those $phat Latina buns you got.","your boobs are great, but that ASS. Fully caked up!","I guess latinas just can't help but have fat juicy ass cheeks!","You've got a $phat $butt... must be those latina genetics.")](else-if:$character's "id" is "jade")[(twirl:"You've got a great ass for an asian. Seriously.","that ass is quite juicy for an asian girl.","You're a PAAG - Phat Ass Asian Girl!","Youve got a $phat $butt for an asian girl - damn!","I really like that $phat $butt.")](else-if:$character's "id" is "jia")[(twirl:"you really need to be spanked, with an ass like that.","that $butt is so PEACHY!","that beautiful $butt looks exactly like a peach. Ready for plucking.","I'm loving those luscious asscheeks.","those cheeks would have me paying for child support, hah...","what you lack in boobs, you more than make up for with that rear...","that's a great $butt.","that $butt is god-tier.","I don't care about tits - your ass... damn!","you got great cheeks.","I might bust pretty quick, with an ass like that.","Nice $butt. You could bounce quarters off that thing,")](else-if:$character's "id" is "lana")[(twirl:"you're so damn thick, a true PAWG!","you got some CAKE.","you're thick in all the right places.","I love those jiggling yams.")](else-if:$character's id is "scarlit")[(twirl:"Your ass is literally built for grabbing.","That $butt has a NICE jiggle to it.","That $butt is nice and FAT!","That $butt is nice and PHAT.","I guess it's true about black girls and their amazing butts. Epic!","Nice $butt. You could bounce quarters off that thing,")]"](else:)["(twirl:"That's a $phat $butt,","You got a $phat $butt,","That's a $phat $butt you got, $your_name,","I like your $phat $butt, $your_name,")" (display:"npc pronoun") says.](if:$outfit's "tags" contains "nude")[(print:"<img class='greyborder' src='img/characters/nude/butt/" + $character's "id" + ".jpg' width='100%' height=auto>")] (unless:(datanames:$npc) contains "petname")[(set:$npc's petname to (twirl:"little miss fat-ass","my big-assed cutie","my big-assed bombshell","my little dumptruck","my nice slice of cake"))"(twirl:"I'm gonna call you","Think I'm gonna call you","Gonna call you") (print:$npc's petname)(twirl:" from now on.",".")"(set:$petname to $npc's petname)]}],[])}{(if:$your_pronoun_index is 0)[(set:$your_pronoun_index to 1)](unless:$case is "upper")[(set:$case to "lower")](if:$case is "lower")[(print:$your_pronoun_index of (a:
$petname,
$your_name,
"girl",
$your_name))](else:)[(print:$your_pronoun_index of (a:
(upperfirst:$petname),
$your_name,
"Girl",
$your_name))](set:$case to "lower")}{
(if:$description_index is 0 or $description_index > (length of $sex_descriptions))[(set:$description_index to 1)]
(display:(text:"transactional sex describe " + ($description_index of $sex_descriptions)))(print:" ")
(inc:'description_index')
}{
(if:(twist:1,3) is 1)[(set:_sex to (twirl:"sex","intercourse","fucking","you getting fucked","fucking"))(twirl:"The wet sounds of _sex","The wet sounds of _sex","Wet fucking sounds","The sounds of _sex","The loud *CLOP CLOP CLOP* sounds") (twirl:"fill the $room","echo through the $room","reverberate through the $room","fill the air").](else:)[
(set:$smack to (twirl:"clop","smak","smack","clop","clop","clap","thwap","clup","shlup","shlap","schlap","schlop","clap","clop","clop","clopp","klap","klop","glop","klup","klap"))
(if:(twist:1,2) is 1)[(set:$smack to $smack + (twirl:"!","-"))]
(text-style:(twirl:"smear","expand","blink","fade-in-out","rumble","shudder","sway","buoy","fidget"))[**(if:(twist:1,3) is 1)[(print:(uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack))](else-if:(twist:1,2) is 1)[(print:(uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack))](else:)[(print:(uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack) + " " + (uppercase:$smack))]**]]
}{
(display:"describe butt")(display:"describe breasts")(display:"npc describe cock")
(set:$description to (a:"sensation","behind","dick","hot","balls"))(set:$hands_desc to $npc's "hands")
(if:$doggy_text contains "pull hair")[(set:$description to $description + (a:"pull hair"))]
(if:$doggy_text contains "mount")[(set:$description to $description + (a:"mount"))]
(if:$doggy_text contains "stabilize")[(set:$description to $description + (a:"stabilize"))]
(if:$doggy_text contains "lean against you")[(set:$description to $description + (a:"lean against you"))]
(if:$doggy_text contains "leg up")[(set:$description to $description + (a:"leg up"))]
(if:$doggy_text contains "tits clap")[(set:$description to $description + (a:"tits clap"))]
(if:$doggy_text contains "grab neck")[(set:$description to $description + (a:"grab neck"))]
(if:$doggy_text contains "grab arms")[(set:$description to $description + (a:"grab arms"))]
(if:$doggy_text contains "tits rub")[(set:$description to $description + (a:"tits rub"))]
(if:$doggy_text contains "grab face")[(set:$description to $description + (a:"grab face"))]
(if:$doggy_text contains "grab head")[(set:$description to $description + (a:"grab head"))]
(if:$doggy_text contains "push down")[(set:$description to $description + (a:"push down"))]
(if:$doggy_text contains "pull hair")[(set:$description to $description + (a:"pull hair"))]
(if:$doggy_text contains "grab butt")[(set:$description to $description + (a:"grab butt"))]
(if:$doggy_text contains "grab waist")[(set:$description to $description + (a:"grab waist"))]
(if:$doggy_text contains "eyes roll")[(set:$description to $description + (a:"eyes roll"))]
(if:$doggy_text contains "grab shoulders")[(set:$description to $description + (a:"grab shoulders"))]
(if:$doggy_text contains "grab boobs")[(set:$description to $description + (a:"grab boobs"))]
(if:$doggy_text contains "nelson")[(set:$description to $description + (a:"nelson"))]
(if:$doggy_text contains "boobs jiggle")[(set:$description to $description + (a:"boobs jiggle"))]
(if:$doggy_text contains "grab sheets")[(set:$description to $description + (a:"grab sheets"))]
(if:$doggy_text contains "choke")[(set:$description to $description + (a:"choke"))]
(set:$description to (twisted:...$description))
(set:$description to $description's 1st)
(if:$description is "choke")[(twirl:
"His $hands_desc hands circle your neck, not squeezing, just commanding you into submission.",
"You feel the weight of his hand on your throat, a silent message of who's in control here.",
"His grip on your neck sends a shock through you, it's dangerous and oh so hot.",
"The firmness of his hand against your neck anchors you to the here and now, every other thought vanishes except the need for his next move.",
"There's a thrill in the way his $hands_desc fingers linger on your neck, promising domination without saying a word.",
"His touch on your neck is intense, the pressure just enough to make you aware ofyour position.",
"The presence of his $hands_desc hands on your neck is a powerful restraint, it's all about him controlling the scene.",
"You're hyper-aware of the sensation of his hand just resting on your neck, the power he holds is intoxicating.",
"With his $hands_desc hands around your neck, you're reminded that he has the upper hand, and it's electrifying.",
"The delicate balance of his touch on your neck is clear - you're his to use, but you're safe, and it's overwhelmingly erotic.",
"His $hands_desc hands around your neck make you feel owned, every pulse in your body submits to his will.",
"His $hands_desc hands grasp your neck.",
"Your breath hitches as his $hands_desc fingers encircle your neck, a raw display of his control over you.",
"His $hands_desc hands clamp around your neck, a silent command to submit to his every fucking desire.",
"You're acutely aware of his $hands_desc hands dominating your neck, it's fucking terrifying and arousing at the same time.",
"The pressure from his $hands_desc hands signals you're his to use, a fuck toy at his mercy.",
"Feeling his $hands_desc hands on your neck, you realize you're just a hole for him, and it's so goddamn degrading and hot.",
"His $hands_desc fingers press against your neck, turning you into a breathless, panting mess.",
"He's got you by the neck, his grip a filthy reminder that you're nothing but his to fuck and control.",
"With his $hands_desc hands wrapped around your neck, every thrust feels like a claim, marking you as his personal fuck toy.",
"His $hands_desc hands tighten ever so slightly on your neck, the edge of danger driving you wild with obscene submission."
)]
(if:$description is "grab sheets")[(twirl:
"Your fingers claw at the sheets, grasping for an anchor as his thrusts send waves through your body.",
"You're scrabbling at the sheets, trying to find purchase, trying to hold on to something, anything, as he fucks you senseless.",
"Your hands twist into the sheets, the only stable thing in a world rocked by his relentless pounding.",
"The sheets are bunched up in your fists, the only response you have to the intensity of his fucking.",
"You're desperately grabbing at the sheets, each pull an attempt to ground yourself through the ecstasy.",
"Your knuckles are white as you grip the sheets, each wave of pleasure making you hold on harder.",
"The linen is tangled between your fingers, a silent partner to your moans as you're relentlessly pounded.",
"Your hands are white-knuckling the sheets, trying to hold on as his $cock drives into you relentlessly.",
"As he fucks you harder, your grip on the sheets tightens like a lifeline amidst the storm of sensations.",
"Your palms press hard into the sheets, trying to keep your body from sliding with the force of his thrusts.",
"Your hands search for something to hold onto, settling for the sheets that you now tear at with each deep penetration.",
"The bed sheets are your only stability, firmly in your grasp as he takes you with a roughness that borders on feral.",
"Your grip on the sheets is all that's keeping you from being completely lost in the sensation of his $cock plundering your depths.",
"As he fucks you ruthlessly, your hands clench on the sheets, the material twisted in your grasp, mimicking the twisting pleasure in your $pussy.",
"Each powerful thrust has you gripping the sheets harder, trying to keep your body from succumbing to the shuddering orgasms building within you.",
"Your hands are nearly ripping the sheets apart, clinging on for dear life as you're fucked with a passion that borders on overwhelming.",
"You're holding onto the sheets for dear life, each buck of your hips a testament to the ferocity with which he's owning you.",
"Your hands roam over the sheets, gripping, pulling, anything to cope with the relentless pace he's setting inside you.")]
(if:$description is "boobs jiggle")[(twirl:
"Your $breasts bounce uncontrollably with every forceful thrust, flesh quivering with every movement.",
"As he pounds into you, your $breasts jiggle in a dizzying dance, each bounce sending ripples of sensation through you.",
"Your $breasts keep rhythm with the pounding, their sway and jiggle almost hypnotic in its intensity.",
"He drives into you hard, and your $breasts shake wildly, the weight of them amplifying the force of each thrust.",
"Every time he thrusts, your $breasts are sent into a chaotic jiggle, flesh slapping against flesh in a lewd symphony.",
"The vigorous motion sets your $breasts to jiggling, the sensation a mix of pleasure and discomfort as they sway with abandon.",
"Your $breasts sway with each of his powerful thrusts, the sensation of the soft flesh moving freely is both strange and arousing.",
"Each movement sends your $breasts into a frenzy of jiggling, the momentum increasing with the intensity of his fucking.",
"The slap of your $breasts jiggling together fills the $room, a lewd soundtrack to the deep, relentless fucking you're getting.",
"Your $breasts are like two pendulums, swinging and jiggling in time with his every move, the sensation almost making you dizzy.",
"Your $breasts jiggle so hard they leave you feeling slightly nauseous, but the relentless fucking makes it hard to focus on anything else.")]
(if:$description is "hot")[(twirl:"He's pounding your cunt from tip to hilt.","His $cock is a lance burning pleasure straight into your brain.","You feel your pussy clenching and spasming around his $cock.","Your pussy clenches around his $cock.","You feel your body trembling with every thrust.","He pounds your pussy without mercy.","Your knees knock together as you're taken from behind.","He's turning you into his fucktoy.","You feel like his fucktoy.","You feel like a helpless little dicktoy...","Each thrust stretches you from the inside, a blossoming pressure that fills you up just right.","The snug stretch of your $pussy around his $cock feels like an inner massage.","His $cock slides into you again and again, each push igniting that deep, needy ache that craves more.","You feel his hardness enveloped by your softness, a primal dance of push and pull.","It feels like a switch flipped inside you, turning your insides into a hub of electric pleasure.","Your $pussy clamps down around his $cock, the rhythmic pressure a mix of pain and ecstasy you can't get enough of.","The friction of his $cock moving inside you sends tingles shooting up to your jawline, goosebumps breaking out over your skin.","His $cock plunging deep stirs an almost desperate sensation, like scratching an itch you didn't even know was there.","You're filled over and over, a gratifying fullness that hits all the right spots inside.","Every thrust is a push against that perfect spot, sending jolts of pleasure that make your toes curl and face flush.","The repeated thrusting feels like your very core is being plundered, touched in ways that leave you thoughtless and gasping.","You feel the girth of him inside you, stroking your internal walls and leaving a trail of heat with every drag out and press in.","His $cock carves into you deeply, the sensation a stretch that feeds your most primal instincts.","The weight of him pressing in, pushing deep, feels just shy of too much.","His rigorous pounding hits your sweet spots with the precision of an arrow, each impact a bullseye in your sea of nerves.",
"You can actually feel his $cock throbbing inside your $pussy.","The rhythm of his hips against you, matches the drumming of your heart.")]
(if:$description is "nelson")[(twirl:
"Your legs are wrenched back, your body bent and exposed as his hands clamp behind your neck, using you like his personal fucktoy.",
"His strong arms lock you in a full nelson, rendering you helpless as his $cock thrusts up into your $pussy.",
"Trapped in his iron grip, your body floats in his control, each upward plunge sending a chorus of moans from your lips.",
"His hands behind your head, you're nothing but a plaything at this angle, your cunt taking every deep thrust without reprieve.",
"The full nelson has you spread and bucking, his $cock pounding into you from below, filling you to the brim.",
"His $cock stabs up into you, fingers interlocked at the nape of your neck, your body rocking with the intensity of each impale.",
"You're suspended in mid-air, entirely at his mercy, his arms circling your body and fucking you senseless from below.",
"In this twisted position, there's no escape from his relentless fucking, his $cock driving up into you like a jackhammer.",
"His hands grip your neck, your body arched and aching as he fucks upward with a ferocity that's borderline savage.",
"Every thrust sends you wobbling in his grasp, legs splayed and ass bouncing as he claims you in the most primal of ways.",
"His $cock spears into you from an angle so raw, so intense, it obliterates thought."
)]
(if:$description is "balls")[(set:$case to "upper")(display:"npc possessive pronoun")(if:(twist:1,2) is 1)[ (print:$npc's "ballsdesc")] (twirl:"balls smack","ballsack slaps","ballsack smacks","balls slap","ballsack thwacks") (if:(cock:"balls","npc") > 8)[(twirl:"weightily","heftily","heavily","ominously","heavily") ]against your $butt.]
(if:$description is "dick")[(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc possessive pronoun") $cock (twirl:"is so deep inside you...","is penetrating you deeply.","is stretching out your pussy.","is stretching your little pussy out.","is ramming into you with ruthless precision, each plunge stretching your slick walls.","is fucking you like you're nothing but a hole for using, stretching you obscenely with every thrust.","is mercilessly splitting you open, your $pussy straining around the thick, invading shaft.","is hammering into you, each thrust a declaration of raw, possessive desire, stretching you to the brink.","is driving into your heat with a fervor that tests the yield of your $pussy, forcibly carving out its space.","is savagely claiming your insides, each brutal thrust stretching you further, and fucking further.", "is bulldozing into your $pussy, your inner walls stretching to accommodate the sheer size of him.", "is relentlessly drilling into you, the stretch of your $pussy around his girth bordering on a delicious agony.", "is fucking carving you out from the inside, brutally stretching your $pussy with every goddamn thrust.", "is assaulting your cunt, each stroke a heavy, stretching impact that reshapes your insides.", "tears through your $pussy with a force that stretches and fills you to an overwhelming fullness.")](else:)[(twirl:"This position is so animalistic.","Feeling your bodies bashing together with each thrust of his $cock is so sensual.","It's a need - you NEED to be filled by his $cock.","You feel FULL, as his $cock stretches you out.","Your pussy produces more lubrication with each thrust of his $cock.","His $cock is ramming into you unforgivingly, stretching and filling you with a relentless force that leaves no room for anything but the intense sensation of being utterly used.",
"You're being split open from the inside, his $cock a solid presence that fills you completely, every inch of you screaming with the raw pleasure of being so full.",
"Each thrust of his $cock sends a shockwave through your pussy, a feeling of fullness that's almost too much to bear, like your entire body is just an extension of that one aching, needy spot.",
"His $cock is pounding into you, and for a moment, nothing exists except the overwhelming stretch and the primal satisfaction of being completely filled and stretched to your limits.",
"It's like he's marking his territory with each plunge of his $cock inside you, claiming you, the stretch and pressure inside your pussy leaving no doubt that you're being taken, owned, conquered.",
"Your pussy is wrapping tightly around his $cock, each thrust forcing you to accommodate him, to stretch and yield to his hardness.",
"The pressure is intense, his $cock forcing its way deeper each time, filling you to the brim, the stretch bordering on pain, but a pain you crave.",
"Feeling your pussy being spread wide by his $cock is a brutal kind of pleasure, like your insides are being pushed to their limit, and you can't get enough of it.",
"His $cock carves a scorching path inside you, the sheer girth of him stretching you in a way that's both agonizing and ecstatic.",
"Your insides clench around the invader, his $cock a battering ram that stretches you with an intensity that borders on animalistic, every fiber of your being attuned to the sensation of being filled, used, owned.",
"Your pussy feels stretched to capacity, his $cock grinding against all your tender spots.")]]
(if:$description is "mount")[(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc pronoun") (twirl:"straddles you from behind.","is mounting you like an alpha taking charge, thrusting his $cock deep into you.","unequivocally asserts his dominance, spreading his legs wider behind you and rams his $cock deeper into your $pussy.","mercilessly pounds you from behind, his primal grunts echoing against the walls of the $room. He's fucking you - not just your body, but your very sense of self.")](else:)[(set:$case to "upper")(display:"npc pronoun") is *mounting* you.]]
(if:$description is "stabilize")[You try to stabilize yourself.]
(if:$description is "lean against you")[(set:$case to "upper")(display:"npc pronoun") leans up against you(if:(twist:1,2) is 1)[ as he fucks you].]
(if:$description is "leg up")[(if:(twist:1,2) is 1)[(twirl:
"You stretch your leg forward, exposing your $pussy to an even deeper invasion, the angle allowing his $cock to probe the furthest reaches of your insides.",
"Lifting your leg up, you feel your $pussy open up invitingly, the stretch making room for his $cock to bury itself to the hilt, sending waves of fullness throughout your body.",
"With your leg hiked up, each and every thrust forces his $cock deeper, the sensation so intense that it borders on an exquisite ache deep in your $pussy.",
"Hoisting your leg up, his next thrust sinks impossibly deeper, a sharp gasp torn from your lips as you feel your $pussy stretch around the girth of his invading $cock.",
"As you balance on one leg, the other extended, his $cock finds a new depth in your $pussy, touching spots that leave you whimpering and desperate for more.",
"Your leg goes up, and instantly his $cock dives deeper, attacking your $pussy with an intensity that makes your entire body shiver in anticipation."
)](else:)[You stretch your leg forward, letting (if:(twist:1,2) is 1)[(display:"npc pronoun") fuck](else:)[(display:"npc possessive pronoun") $cock penetrate] you more deeply.]]
(if:$description is "tits clap")[(if:(twist:1,2) is 1)[(twirl:
"Your $breasts collide heavily with each slap from behind, the sound of their meaty contact almost as obscene as the wet noises from below.",
"The heft of your $breasts slapping together resounds in your ears, a lewd symphony accompanying his grunts.",
"Each forceful thrust sends your $breasts into a frenzied dance, smacking against each other with a weight that sends ripples down to your $pussy.",
"The heavy thuds of your $breasts bouncing and smacking fill the $room.",
"With every jarring motion, your $breasts sway and collide, a tender pleasure-pain that flares with the impact.",
"The slaps of your $breasts hitting one another mingle with your moans.",
"Your $breasts smash against each other, flesh upon flesh, the sound sharp and loud, almost enough to drown out your gasps of pleasures.",
"Each thrust from behind makes your $breasts jiggle uncontrollably, their heavy slapping a testament to the force he's using to fuck you.",
"Your $breasts thump together with every slam of his hips, the weighty sounds reminding you just how hard you're being fucked.",
"You feel the smacking of your $breasts, heavy and intense, as each thrust rockets you forward and mashes them together.",
"The force of gravity on your $breasts as they collide is almost as potent as the $cock ramming into you, both sensations battling for dominance over your senses.",
"Your $breasts slap together with a wet noise, each collision stinging sweetly and leaving them tingling and flushed with heat.",
"The cacophony of your $breasts clapping fills the $room, their weight compounding with every punishing thrust into your body."
)](else:)[You feel your $breasts (twirl:"slapping together","clapping together","smacking together")(if:(twist:1,2) is 1)[(twirl:", reacting to the motion of your body","as you're pounded")].]]
(if:$description is "grab arms")[(set:$case to "upper")(display:"npc possessive pronoun") (print:$npc's "hands") hands grip your arms(if:(twist:1,2) is 1)[ (twirl:"as he fucks you","as he pounds you")].]
(if:$description is "grab neck")[(set:$case to "upper")(display:"npc possessive pronoun") (print:$npc's "hands") hands suddenly (twirl:"wrap around your neck","grab hold of your neck")(if:(twist:1,2) is 1)[ (twirl:"as he fucks you","as he pounds you")].]
(if:$description is "tits rub")[Your $breasts (twirl:"rub","bump and rub","jiggle and bounce") against the $surface.]
(if:$description is "grab face")[(set:$case to "upper")(display:"npc possessive pronoun") (print:$npc's "hands") hands suddenly (twirl:"wrap around your face","grab hold of your face")(if:(twist:1,2) is 1)[ (twirl:"as he fucks you","as he pounds you")](else-if:(twist:1,2) is 1)[, smushing your cheeks and lips forward into an obscene pout].]
(if:$description is "grab head")[You feel (display:"npc possessive pronoun") (print:$npc's "hands") hands (twirl:"gripping","digging into") the top of your head(if:(twist:1,2) is 1)[ (twirl:"as he fucks you","as he pounds you")].]
(if:$description is "push down")[(if:(twist:1,2) is 1)[You feel him push you down](else:)[(set:$case to "upper")(display:"npc pronoun") pushes you down](if:(twist:1,2) is 1)[ (twirl:"to get a better angle to fuck you","to fuck you at a more pleasurable angle")].]
(if:$description is "pull hair")[(display:"describe hair")(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc possessive pronoun") (twirl:"$hands_desc fingers weave into your $hair, yanking your head back with each thrust.","$hands_desc hand pulls at your $hair - like a leash.","fingers twist into your $hair, tugging just hard enough to tip your chin upwards, forcing you to meet his lecherous gaze.","hand suddenly clamps around the ends of your $hair, using it to steer your body into his rhythm.","grip tightens in your $hair, turning it into a handle guiding your rhythm to his pace. The tension pulls at your scalp while his cock fills your $pussy.")](else:)[(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc pronoun")](else:)[Your head is jerked back as (display:"npc pronoun")] (twirl:"pulls on","tugs on","yanks","grabs a handful of") your $hair.]]
(if:$description is "grab butt")[(if:(twist:1,2) is 1)[(twirl:
"His $hands_desc hands grasp your $butt like he's steering a vehicle.","Each rut is accompanied by a firm squeeze to your $butt that sends jolts of submissive pleasure through your core.","He's manhandling your $butt with a firm grip, his fingers digging in hard.",
"You feel the relentless pressure of his $hands_desc hands on your $butt, molding the flesh like clay as he uses it to anchor each brutal thrust, pulling you back onto his $cock.",
"Each grab of your $butt is an assertion of control, his fingers branding your asscheeks.",
"His $hands_desc hands sink into your buttcheeks, the squeezing sensation intensifying the raw fuck.",
"The way he's gripping your $butt, it's primal.",
"His $hands_desc hands clutch your $butt.",
"The firmness of his $hands_desc hands on your $butt anchors you to the moment, each tug and pull an obscene puppetry that governs the dance of his $cock inside you.",
"You can feel the crush of his $hands_desc hands on your $butt, each squeeze telegraphing his animalistic urges through your trembling body.",
"His $hands_desc hands on your $butt are unyielding; you are being thoroughly filled and controlled.")](else:)[You feel (display:"npc possessive pronoun") (print:$npc's "hands") hands (twirl:"gripping","digging into") your $butt.]]
(if:$description is "grab waist")[You feel (display:"npc possessive pronoun") (print:$npc's "hands") hands (twirl:"around","gripping","grip") your waist.]
(if:$description is "couch")[Your knees (twirl:"rock on the","sink into the") $couch as you're fucked.]
(if:$description is "eyes roll")[(if:(twist:1,2) is 1)[(twirl:"Your vision blurs, your eyes rolling back in your head as he pounds into you.","His savage thrusts force your world to spin, your eyes rolling back in ecstasy.","He fucks your senses into overdrive, your eyes rolling up in their sockets as you lose yourself in the onslaught.","His relentless thrusts pull your consciousness from reality, your eyes rolling back as the line between pleasure and pain becomes increasingly blurred.","Your mind blurs into a sexual haze, your eyes rolling back, fucking doesn't just describe what he's doing to your body, but also what he's doing to your soul.")](else:)[(twirl:"Your vision goes blurry","You have trouble focusing") (twirl:"and your eyes roll back","and your eyes cross") as (display:"npc pronoun") fucks you.]]
(if:$description is "grab shoulders")[(if:(twist:1,2) is 1)[(twirl:
"His grip locks onto your shoulders, jerking you back into each savage thrust.",
"His fingers dig into your flesh, anchoring you as he fucks you mercilessly.",
"His hands clamp down on your shoulders; you're nothing but a fucktoy to him.",
"You can barely breathe as he pulls on your shoulders, pounding you like an animal.",
"His hands on your shoulders are the reins as he rides you hard and fast.",
"He's steering your body with a harsh grip, your shoulders his for the taking.",
"Each pull on your shoulders is a command to take more of his $cock.",
"You're a plaything in his grasp, his hands wrenching your shoulders every time he thrusts.",
"His hands yank you back, your body helplessly responding to his rough demands.")](else:)[You feel (display:"npc possessive pronoun") hands gripping your shoulders as he (twirl:"fucks you","rails you").]]
(if:$description is "grab boobs")[You feel (display:"npc possessive pronoun") hands (twirl:"grabbing","grabbing and playing with","fondling") your $breasts (twirl:"as he fucks you","as he pounds you").]
(if:$description is "spank")[(set:$se to (twirl:"slap 1","slap 2","slap 3","slap 4"))(display:"play sound")(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc possessive pronoun") (twirl:"hand comes down on your bare ass, each slap echoes raw domination.","palm strikes your ass firmly.","firm slap lands on your ass, reverberating through your body.","hand connects with your ass with a loud, skin-smacking thud.","$hands_desc palm smacks down on your ass, a loud noise resonates around the $room.","bare hand smacks your ass, the stinging sensation spreading across your asscheek. And again.","hand comes down hard on your ass, the flesh jiggling from the force.")](else:)[(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc pronoun") (twirl:"spanks","smacks") your $butt.](else:)[(if:(twist:1,2) is 1)[You (twirl:"yelp","moan","gasp") as ](else:)[(set:$case to "upper")](display:"npc possessive pronoun") (print:$npc's "hands") hand (twirl:"spanks","smacks") your $butt.]]]
(if:$description is "behind")[You feel (display:"npc possessive pronoun") (if:$npc's "tags" contains "chubby")[(twirl:"flabby stomach","beer belly","chubby body","hefty body")(print:" ")(twirl:"smacking against","smacking loudly against","smacking heavily against")(print:" your $butt.")](else-if:$npc's "tags" contains "jock")[(twirl:"weight behind you,","muscular body bearing down behind you","well-muscled pelvis smacking into your $butt")(print:" ")as he (twirl:"fucks","pounds") you.](else:)[(twirl:"weight behind you,","body bearing down behind you","pelvis smacking into your $butt")(print:" ")as he (twirl:"fucks","pounds") you.]]
(if:$description is "sensation")[(twirl:"His",$npc's "name" + "'s") thrusts (twirl:"feel warm and wonderful.","feel better and better as they continue.","feel like getting wetly petted on the inside.","feel like getting filled with warmth and comfort over and over again.","feel like getting pummeled, but liking the pain.","feel like the tummy flip you get from driving over a hill.","feel like the embodiment of warmth and comfort.","feel like your internal pleasure buttons are being pressed.","trigger more lubrication inside you.","give you an overwhelming sensation of fullness.","have a rhythm that strike your cervix like a musical instrument.","trigger waves of pleasure throughout your whole body.","feel like they're making sparks fly through your whole body.")]
}{
(set:$your_sex_name to (twirl:"bitch","slut","whore",$your_name,$your_name,"bitch","slut"))
($char_passage:"transactional sex describe he talks",[(set:$tits to $character's "id" of (dm:
"alina",(twirl:"tits","boobs"),
"cassidy",(twirl:"milkers","udders","bazongas","tits","milkers","udders","cow-tits","big, floppy tits"),
"ella",(twirl:"massive milkers","udders","bazongas","tits","milkers","udders","cow-tits","boobs","big, floppy tits"),
"mia",(twirl:"massive milkers","udders","bazongas","tits","milkers","udders","cow-tits","boobs","big, floppy tits"),
"jade",(twirl:"milkers","tits","udders","boobs","boobs"),
"lana",(twirl:"milkers","tits","udders","boobs","boobs"),
"liya",(twirl:"milkers","tits","udders","boobs","boobs"),
"jia",(twirl:"tits","boobs"),
"scarlit",(twirl:"tits","boobs"),
"rae",(twirl:"milkers","tits","boobs","boobs")))],[(set:$tits to (twirl:"tits","boobs"))])
(if:$npc's "tags" contains "gentleman")[(set:$your_sex_name to (twirl:$your_name,$your_name,"baby","babygirl",$petname,$petname))]
(if:$npc's "tags" contains "fuckboy")[(set:$your_sex_name to (twirl:"bitch","slut","whore","cunt",$your_name,$your_name,"bitch","slut","babygirl","babygirl"))]
(if:$npc's "tags" contains "chad")[(set:$your_sex_name to (twirl:"bitch","slut","whore",$your_name,$your_name,"bitch",$your_name,$your_name,"slut","fucktoy"))]
(if:$npc's "tags" contains "creepy")[(set:$your_sex_name to (twirl:"bitch","slut","whore",$your_name,$your_name,"bitch",$your_name,$your_name,"slut","cunt","cunt","fucktoy",$petname,$petname,"you little slut"))]
(if:$npc's "tags" contains "jock")[(set:$your_sex_name to (twirl:"bitch","slut",$your_name,$your_name,"bitch",$your_name,$your_name,"slut","fucktoy"))]
(set:$dick to (twirl:"cock","dick","cock","cock"))
(if:(cock:"rating","npc") > 7 and (twist:1,2) is 1)[(set:$cock to (twirl:"big $dick","big, fat $dick","big fucking $dick","fucking cock","big ol' schlong"))](else:)[(set:$cock to $dick)]
(if:$npc's "race" is "white" and not ($character's "race" is "white") and (cock:"rating","npc") > 7 and (twist:1,2) is 1)[(set:$cock to (twirl:"big white cock","big, white cock"))]
(if:(cock:"rating","npc") > 7 and $npc's "tags" contains "chad")[(set:$cock to (twirl:"bitch-wrecker","big, fat fuck-stick","big fat cock","slut-wrecker","slut-stick","slut-maker","big fat fuckpole","bitch-breaker"))]
(set:$pussy to (twirl:"tight little pussy","pussy","wet little pussy","pussy","wet little cunt","pussy","pussy"))
(if:$npc's "age" > 39)[(set:$pussy to (twirl:"tight young pussy","pussy","wet little pussy","pussy","wet little cunt","pussy","pussy"))]
(if:$character's "race" is "asian" and $npc's "personality" <6 and $npc's "race" is "white")[(set:$pussy to (twirl:"tight little asian pussy","asian pussy","asian pussy","tight little pussy","wet little asian pussy","pussy","wet little asian cunt","asian pussy","pussy"))]
(set:$face to (twirl:"pretty little face","pretty face","cute little face","pretty face","beautiful face","face","face","face"))
(if:$npc's "personality" < 4)[(set:$face to (twirl:"stupid little face","pretty face","whorish little face","slutty face","beautiful face","face","stupid face","face","dumb little face"))]
(set:$descriptions to (twisted:"take my cock","own this pussy","feels good","cum choice","cant believe","you love it","cum soon","look back","grab boobs","grab butt","pull hair","tits clap","spank","push down"))
(if:$npc's tags contains "breeder")[(set:$descriptions to (twisted:"cum choice","cum choice",...$descriptions))]
(unless:$his_choice is "none")[(set:$descriptions to $descriptions - (a:"cum choice"))]
(unless:($npc's "looks" < 5) or $npc's "tags" contains "nerd" or ($npc's "age" > 39) or ($npc's "age" < 20) or $npc's "tags" contains "chubby")[
(set:$descriptions to $descriptions - (a:"cant believe"))
]
(if:$npc's "tags" contains "chad" or $npc's "tags" contains "jock")[(set:$descriptions to $descriptions - (a:"cant believe"))]
(unless:$his_pleasure_threshold - $his_pleasure < 4)[(set:$descriptions to $descriptions - (a:"cum soon"))]
(unless:$doggy_text contains "look back")[(set:$descriptions to $descriptions - (a:"look back"))](unless:$doggy_text contains "grab boobs")[(set:$descriptions to $descriptions - (a:"grab boobs"))](unless:$doggy_text contains "grab butt")[(set:$descriptions to $descriptions - (a:"grab butt"))](unless:$doggy_text contains "pull hair")[(set:$descriptions to $descriptions - (a:"pull hair"))](unless:$doggy_text contains "tits clap")[(set:$descriptions to $descriptions - (a:"tits clap"))](unless:$doggy_text contains "spank" and $npc's "personality" < 5)[(set:$descriptions to $descriptions - (a:"spank"))](unless:$doggy_text contains "push down" and $npc's "personality" < 5)[(set:$descriptions to $descriptions - (a:"push down"))]
(set:$description to 1st of $descriptions)
(if:$description is "push down")[(set:$text to (twirl:"face down, ass up - just like nature intended","get down","I'm gonna ride you hard until I nut","this is nature's perfect fucking position","stay down while I fuck you"))]
(if:$description is "spank")[(set:$text to (twirl:"you're a bad girl","I'm treating you like the BAD girl you are","you know who owns you now, huh? Yeah you do","take this! And this","who's a naughty little girl, huh? You are"))]
(if:$description is "tits clap")[(set:$text to (twirl:"I love watching those $tits clap together","I'm making those $tits clap together","your $tits are giving each other a high five","I love makin' those titties clap"))]
(if:$description is "pull hair")[(set:$text to (twirl:"I love pulling your hair while I fuck you","I love pulling your hair","hair is a girl's natural handle"))
(if:$npc's "personality" > 6)[(set:$text to (twirl:"hope you don't mind if I pull your hair like this","I love pulling your hair while I fuck you","I love pulling your hair","hair is a girl's natural handle"))]]
(if:$description is "grab butt")[(set:$phat to $character's "id" of
(dm:
"alina",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round"),
"cassidy",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","juicy","fat, juicy"),
"ella",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","fat, juicy"),
"jade",(twirl:"phat","thick","nice","big"),
"jia",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","juicy","beautiful","picture-perfect"),
"lana",(twirl:"nice, PHAT","round","PEACHY","peachy","premi-*yum*","fantASStic","thick","FAT","PHAT","fat","nice, round","humongous","juicy"),
"liya",(twirl:"cute","tight","perky","cute"),
"mia",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous"),
"rae",(twirl:"cute","tight","perky","cute","cute lil'"),
"scarlit",(twirl:"phat","round","peachy","premi-*yum*","fantASStic","thick","fat","fat","nice, round","humongous","juicy","beautiful")
))(set:$text to (twirl:"I love watching this $phat ass jiggle","I love watching your $phat ass bounce and jiggle on my $cock","I love making your $phat ass jiggle"))]
(if:$description is "grab boobs")[(set:$text to (twirl:"your $tits feel so good","love these $tits of yours","I love how your $tits swing","I love these $tits"))
(if:$npc's "personality" > 6 or $npc's "tags" contains "nerd")[(set:$text to (twirl:"these $tits are amazing","your $tits are epic","I love these $tits"))]]
(if:$description is "look back")[(set:$text to (twirl:"look at me while I fuck you. Just like that","look back at me while I fuck you","you're going cross-eyed","I think you're going cross-eyed","your eyes are rolling back in your head - must mean you're enjoying this"))]
(if:$description is "cum soon")[(set:$text to (twirl:"I'm gonna cum soon","I think I'm gonna nut soon","you're gonna make me blow","you're gonna make me nut","you're gonna make me cum real soon"))(if:$npc's tags contains "breeder")[(set:$text to (twirl:"I hope you're ready, I'm gonna bust a nut in you now","I feel it coming... I'm gonna breed that fucking little pussy now","Fuck yes this is gonna feel incredible, I'm gonna fucking impregnate you"))]]
(if:$description is "you love it")[
(set:$text to (twirl:"that look on your $face - you love this","you should see yourself in the mirror, you love it","you love this, don't you? You should see the look on your face","you fucking love it","you love getting fucked like this","you love getting used","you love getting fucked","you just LOVE getting pounded, don't you? Yeah you do","you should see the look of bliss on your $face"))
(if:$npc's "tags" contains "nerd")[(set:$text to (twirl:"you love this! You're making the ahegao face","your $face looks like one of those girls in hentai","you love this, don't you? You should see the look on your face","you fucking love it","you love getting fucked like this","you love getting used","you love getting fucked","you just LOVE getting pounded, don't you? Yeah you do","you should see the look of bliss on your $face"))]
(if:$npc's "personality" > 6)[
(set:$text to (twirl:"look how much you're enjoying this","you clearly enjoy this","you like getting fucked, don't you? Well I'm happy to provide","you should see the look of bliss on your $face","I don't have to guess whether or not you're enjoying this","I can tell you're enjoying getting fucked","you love getting fucked","I can tell you like getting fucked","girls like you just love getting fucked"))
]
(if:$npc's tags contains "breeder")[(set:$text to (twirl:"you wanna get pregnant","you WANT to carry my baby","you WANT me to bust a fat load inside you, and make you fucking pregnant","you want me to fucking breed that little pussy"))]
]
(if:$description is "cant believe")[
(set:$text to (twirl:"I can't believe I get to fuck a girl like you","Can't believe I get to fuck a girl as hot as you","can't believe I'm fucking you right now"))
(if:$npc's "looks" < 5)[
(set:$text to (twirl:"I guess even ugly guys like me can get lucky. Can't believe I get to fuck you","Summer City is great - even an ugly guy like me can fuck a girl as hot as you","and my friends say I'm out of my league, hitting on girls like you","can't believe I get to fuck you","can't believe I really get to fuck a girl as hot as you"))
(if:$npc's tags contains "breeder")[(set:$text to (twirl:"I might be ugly, but our kids are gonna be good looking, like you","Summer City is great, even an ugly guy like me can breed a girl like you"))]
]
(if:$npc's age < 20)[(set:$age to $npc's "age")
(set:$text to (twirl:"I can't believe I'm fucking a girl in her 20s. Yeah! This is fucking lit","this is wack. Can't believe I'm fucking a girl who looks like a fucking pornstar, when I'm only $age","I'm only $age, and fucking a girl like you already","can't believe I'm only $age, and getting to fuck a girl like you"))]
(if:$npc's tags contains "breeder")[(set:$age to $npc's "age")(set:$text to (twirl:"I can't believe I'm breeding a girl in her 20s. Yeah! This is fucking lit","this is wack. Can't believe I'm gonna impregnate a girl who looks like a fucking pornstar, when I'm only $age","I'm only $age, and I get to make you pregnant. I'm gonna have so many kids","can't believe I'm only $age, and getting to breed a girl like you"))]
(if:$npc's "tags" contains "nerd")[
(set:$text to (twirl:"I guess even nerdy guys like me can get lucky. Can't believe I get to fuck you","Summer City is great - even a nerdy guy like me can fuck a girl as hot as you","and my friends say I'm out of my league, hitting on girls like you","can't believe I get to fuck you","can't believe I really get to fuck a girl as hot as you","this is just like fucking anime chicks","this is even better than porn","this is so much better than watching porn","I guess my mom was right when she said to get outside and meet girls","can't believe a girl like you would even talk to a nerd like me","can't believe I'm fucking a girl like you","you're even hotter than my anime statues"))
(if:$npc's tags contains "breeder")[(set:$text to (twirl:"can't believe I'm gonna breed you","Summer City is great - even a nerdy guy like me can breed a girl like you","you look like one of those anime chicks, I can't wait to breed you"))]
]
(if:$npc's "tags" contains "chubby")[
(set:$text to (twirl:"I guess even chubby guys like me can get laid","Summer City is great - even a fat guy like me can fuck a girl as hot as you","and my friends say I'm out of my league, hitting on girls like you","can't believe I get to fuck you","can't believe I really get to fuck a girl as hot as you","fucking a girl like you does wonders for my self-confidence"))
(if:$npc's tags contains "breeder")[(set:$text to (twirl:"I guess even chubby guys like me can impregnate girls like you","Summer City is great - even a fat guy like me can fucking breed a girl as hot as you","and my friends say I'm out of my league, hitting on girls like you. But I'm going to breed you today","can't believe I get to fucking breed you","can't believe I really get to fucking breed a girl as hot as you","fucking a girl like you does wonders for my self-confidence. I'm definitely gonna breed you"))]
]
(if:$npc's age > 39)[
(set:$girl to (twirl:"girl","pretty little girl","pretty young thing","pretty little thing","hot young girl","girl","hot little thing"))
(set:$text to (twirl:"I can't believe an old guy like me gets to fuck a $girl like you","I can't believe I'm fucking a $girl like you","can't believe I'm fucking a $girl like you","at my age, I didn't think I'd get to fuck a $girl like you again","your $pussy is the fountain of youth for me"))
(if:$npc's tags contains "breeder")[(set:$text to (twirl:"I can't believe an old guy like me gets to breed a $girl like you","I can't believe I'm gonna impregnate a $girl like you","can't believe I'm gonna bust a fat nut in a $girl like you","at my age, I didn't think I'd get to impregnate a $girl like you again","your $pussy is the fountain of youth for me, I bet it's fertile as fuck"))]
]
]
(if:$description is "take my cock")[(set:$text to (twirl:"take my $cock","moan for this $cock","take my $cock"))
(if:$npc's "tags" contains "chad" or $npc's "tags" contains "jock" )[(set:$text to (twirl:"that's right, take my $cock","feel my $cock inside you","take my $cock like a good girl","take it. Take my fucking cock","you love it. Yeah, you love my fucking cock","you'll be thinking about my cock for weeks after this. Yeah, take it","take. My. Fucking. Dick. Yes! Take it"))]
(if:$npc's "tags" contains "fuckboy")[(set:$text to (twirl:"this is what girls were made for. Taking my $cock","take it like a good little girl. Yeah, just like that","take my $cock. Feel it inside you, slut. Yeah - FUCK"))]
(if:$npc's "tags" contains "nerd")[(set:$text to (twirl:"I can't believe such a hot girl is taking my $cock","take my $cock! Hah, I can't believe I'm really getting to fuck you"))]
(if:$npc's "tags" contains "bully" or $npc's personality < 3)[(set:$text to (twirl:"this is what you're made for. Taking my $cock","take it like a good girl. Yeah, just like that","I bet you'll dream about my $cock for weeks after this, ho. Yeah, take it","take my $cock. Feel it inside you, slut. Yeah - FUCK"))]
(if:$npc's "tags" contains "gentleman" or $npc's personality > 7)[(set:$text to (twirl:"I hope this feels as good for you as it does for me. Taking my $cock","enjoy yourself on my $cock","take my $cock - yes, like that","you're so good at taking my cock","I like how you take my cock"))]
(if:$npc's tags contains "breeder")[(set:$text to (twirl:"take my $cock, it's gonna make you pregnant","take my $cock, yes, just like that - it's gonna make you pregnant today","take my $cock, I'm gonna breed you with it"))]
]
(if:$description is "own this pussy")[(set:$text to (twirl:"your $pussy is mine","I own this $pussy","I fucking own this $pussy","my $cock owns this $pussy"))
(if:$npc's "tags" contains "chad" or $npc's "tags" contains "jock" )[(set:$text to (twirl:"that's right, show me who owns this pussy","we both know I own this pussy now","this pussy is mine now","your $pussy won't ever forget my $cock","you won't be able to cum on any cock other than mine after this","show me who owns you now","I own you now","show me who owns you now"))]
(if:$npc's "tags" contains "fuckboy")[(set:$text to (twirl:"this $pussy was made for me. You love it","you know I own this $pussy now","your $pussy is mine"))]
(if:$npc's "tags" contains "nerd")[(set:$text to (twirl:"squeeze my theorem, while I Poly your Nomial","I own this $pussy. Yeah! Can't wait to tell my friends","your $pussy is gonna crave my nerdy cock after this","how does it feel, having your $pussy belong to a nerd like me? Heh. So fucking good","your $pussy is mine. Way better than the ones in VR"))]
(if:$npc's "tags" contains "bully" or $npc's personality < 3)[(set:$text to (twirl:"this $pussy was made for me. You love it","you know I own this $pussy now","your $pussy is mine","there's no going back now, I own this pussy","tell me who owns this pussy","I fucking own this $pussy now","this $pussy is mine now","your $pussy belongs to my $cock now"))]
(if:$npc's "tags" contains "gentleman" or $npc's personality > 7)[(set:$text to (twirl:"your $pussy is mine","I own this $pussy","I fucking own this $pussy","my $cock owns this $pussy","I think your $pussy loves my $cock","your $pussy loves my $cock","your $pussy belongs to me now"))]
(if:$npc's tags contains "breeder")[(set:$text to (twirl:"your $pussy is gonna belong to me, after I flood it with my seed","your $pussy belongs to me now. I'm gonna fucking breed it","your $pussy loves my $cock. I think it knows I'm gonna make you pregnant today"))]
]
(if:$description is "feels good")[(set:$text to (twirl:"your $pussy feels so good","your $pussy feels so fucking good","so fucking good. Your $pussy is really gripping my $cock","your $pussy feels so good, the way it grips my $cock"))
(if:$npc's "age" > 39)[(set:$age to $npc's "age")(set:$text to (twirl:"I'll never age, if I got to fuck a $pussy like this for the rest of my life","your $pussy feels amazing on my $age-old cock","it feels amazing to fuck a young girl like you","your $pussy feels amazing","your $pussy feels incredible"))]
(if:$npc's "tags" contains "nerd")[(set:$text to (twirl:"your $pussy feels even better than my fleshlight","your $pussy feels soo good","my friends were right, real pussy feels so much better than jerking off","your $pussy feels like what hentai looks like","your $pussy is AMAZING","your $pussy feels so good, the way it grips my $cock","your $pussy feels so nice"))]
(if:$npc's "tags" contains "chad" or $npc's "tags" contains "jock" )[(set:$text to (twirl:"your $pussy feels good","your $pussy is wrapped SO fuckin' tight around my $cock","your $pussy loves having my $cock inside it","your $pussy feels damn good"))]
(inc:'his_pleasure')(display:"update his pleasure")
]
(if:$description is "cum choice")[
(set:$his_choice to (twirl:"creampie","pull out","face","mouth","creampie"))(if:$npc's tags contains "breeder")[(set:$his_choice to "creampie")]
(if:$his_choice is "creampie")[(set:$text to (twirl:"I wanna fill you with my cum","I'm gonna bust a fat nut inside you","I'm gonna fucking fill you up","I wanna cum inside you","I wanna pump you full of my cum","I'm gonna bust a nut inside you"))
(if:$npc's tags contains "breeder")[(set:$tex to (twirl:"I wanna get you fucking pregnant","I wanna breed that tight little pussy","I'm gonna breed you","I'm gonna fucking fill you up with my cum","I'm gonna fucking impregnate you","I'm gonna seed that fertile little pussy of yours","I', gonna fucking breed you"))]
(if:$npc's "personality" > 6)[(set:$text to (twirl:"I wanna fill you with my cum","I want to creampie you, if you let me","I wanna fill you up with cum - if you're ok with that","I'm gonna fucking fill you up","I wanna cum inside you","I wanna pump you full of my cum","I'm gonna bust a nut inside you"))]
(if:$npc's "tags" contains "nerd")[(set:$text to (twirl:"I wanna fill you with my cum","I'm gonna bust a nut inside you","I'm gonna fucking fill you up","I wanna cum inside you","I wanna pump you full of my cum") + " " + (twirl:"like you're one of my fleshlights","like they do in hentai","like they do in porn"))]
]
(if:$his_choice is "pull out")[(set:$text to (twirl:"I can't wait to blow my load all over you","I wanna cover you with my cum","I'm gonna bust a nut all over you","I'm gonna fucking hose you down with my cum","I wanna glaze you with cum, like a donut"))]
(if:$his_choice is "face")[(set:$text to (twirl:"I can't wait to blow my load all over that $face","I wanna paint your $face with my cum","I'm gonna bust a nut all over your $face","I'm gonna fucking cover your $face with my cum","I wanna cum on your $face","I wanna hose down your $face with my cum","I can't wait to bust this load all over your $face"))]
(if:$his_choice is "mouth")[(set:$text to (twirl:"I can't wait to watch you swallow my load","I wanna see you swallow my cum","I'm gonna cum in your mouth","I'm gonna fucking cum down your throat","I wanna cum in your mouth","I wanna bust a nut in your mouth","I can't wait to watch you swallow my nut"))
(if:$npc's "tags" contains "jock")[(set:$text to (twirl:"I can't wait to watch you swallow my load","I wanna see you swallow my cum","I'm gonna cum in your mouth. Give you your protein shake","I'm brewing you a fresh protein shake for you to drink. Right from the tap","I'm gonna fucking cum down your throat","I wanna cum in your mouth - a nice big protein shake for ya","I wanna bust a nut in your mouth","I can't wait to watch you swallow my nut like it's a protein smoothie"))]
(if:$npc's "tags" contains "creepy")[(set:$text to (twirl:"I want to watch you swallow my nut","I wanna cum down your throat","I wanna fill your mouth with my cum"))]
]]
(set:$fuck to (twirl:"Fuck","Ngggh","Goddamn","Fucking hell","Holy fuck","Unnggh","Mnnngh","Fuck","Fuck","GodDAMN","Yeah","Fuck yeah","Hell yeah","Yes","That's right","Fuck yeah","Nggh- NGGH yes","FUCK yes","FUCK yeah"))
(if:$npc's "generation" is "genz" and (twist:1,2) is 1)[(set:$fuck to (twirl:"Fuck","Ngggh","Goddamn","Fucking hell","Holy fuck","Unnggh","Mnnngh","Fuck","Fuck yeah","Shiiiit","Skrrt","Shit, fam","Sheesh","Sheeesh"))]
(if:(twist:1,3) is 1)["(print:$fuck)(twirl:",","...","-")" (display:"npc pronoun") (twirl:"says","grunts","says","moans","says","grunts","groans","grunts")(if:(twist:1,2) is 1)[ (twirl:"as he pounds you","as he fucks you","as he rails you","as he fucks you")]. "(print:(upperfirst:$text))(if:(twist:1,2) is 1)[, $your_sex_name](twirl:"...","!",".")"](else:)[
(if:(twist:1,3) is 1)["(print:$fuck)(twirl:",","...","-") (print:$text)](else:)["(print:(upperfirst:$text))](if:(twist:1,2) is 1)[, $your_sex_name](if:(twist:1,2) is 1)[(twirl:"...","!",".")"](else:)[(twirl:"...","!",",")" (display:"npc pronoun") (twirl:"says","grunts","says")(if:(twist:1,2) is 1)[ (twirl:"as he pounds you","as he fucks you","as he rails you","as he fucks you")].]]}{
($char_passage:"transactional sex describe body",[(set:$descriptions to $character's "id" of (dm:
"alina",(a:"butt","butt","butt","tits","tits","hair","hair"),
"cassidy",(a:"butt","tits","tits","tits","tits","hair"),
"ella",(a:"butt","tits","tits","tits","tits","hair"),
"jade",(a:"butt","tits","tits","tits","hair","hair"),
"jia",(a:"butt","butt","butt","hair","hair","hair"),
"lana",(a:"butt","tits","butt","tits","hair"),
"liya",(a:"butt","tits","tits","tits","hair"),
"mia",(a:"butt","tits","tits","tits","hair"),
"rae",(a:"tits","tits","hair"),
"scarlit",(a:"butt","butt","butt","tits","hair","hair")))],[])
(set:$descriptions to $descriptions + (a:"pussy"))
(display:"describe breasts")(display:"describe butt")(display:"describe pussy")(display:"npc describe cock")(display:"describe hair")
(set:$description to 1st of (twisted:...$descriptions))
(if:$description is "butt")[Your $butt (twirl:"jiggles","wobbles and jiggles","jiggles and undulates","quivers and jiggles","quivers","trembles and jiggles") (if:$doggy_text contains "spank" and (twist:1,2) is 1)[when (display:"npc pronoun") (twirl:"spanks you","gives it a spank","smacks it").](else:)[(unless:(twist:1,3) is 1)[(if:(twist:1,2) is 1)[with (twirl:"every","each") (twirl:"stroke","thrust") of (display:"npc possessive pronoun") $cock](else:)[(twirl:"as you're fucked","as you get fucked","with each of his thrusts","with each thrust")]](else:)[as (display:"npc pronoun") (twirl:"fucks you","pounds you","rails you","pounds your $pussy","fucks you","fucks you","hammers your $pussy")].]]
(if:$description is "tits")[Your $breasts (twirl:"jiggle","flop and jiggle","swing around","swing pendulously","jiggle and sway","quiver and sway","swing","swing and jiggle") (if:$doggy_text contains "tits rub" and (twist:1,2) is 1)[(twirl:"against","along") the $surface](else-if:$doggy_text contains "grab boobs" and (twist:1,2) is 1)[as (display:"npc pronoun") (twirl:"grabs them","plays with them").](else:)[(unless:(twist:1,3) is 1)[(if:(twist:1,2) is 1)[with (twirl:"every","each") (twirl:"stroke","thrust") of (display:"npc possessive pronoun") $cock](else:)[(twirl:"as you're fucked","as you get fucked","with each of his thrusts","with each thrust")]](else:)[as (display:"npc pronoun") (twirl:"fucks you","pounds you","rails you","pounds your $pussy","fucks you","fucks you")].]]
(if:$description is "hair")[Your $hair (if:$amount is "plural")[(twirl:"swish around","get in your eyes","swins around your face","get in your face","swing and swish across your face")](else:)[(twirl:"swishes around","gets in your eyes","swings around your face","gets in your face","swings and swishes across your face")] (unless:(twist:1,3) is 1)[(if:(twist:1,2) is 1)[with (twirl:"every","each") (twirl:"stroke","thrust") of (display:"npc possessive pronoun") $cock](else:)[(twirl:"as you're fucked","as you get fucked","with each of his thrusts","with each thrust")]](else:)[as (display:"npc pronoun") (twirl:"fucks you","pounds you","rails your $pussy","lays into your $pussy","pounds your $pussy","fucks you","fucks you")].]
(if:$description is "pussy")[Your $pussy (twirl:"grips","tightens around","clenches down on","grips") (display:"npc possessive pronoun") $cock.]
}{
(display:"describe breasts")(display:"describe butt")(display:"describe pussy")(display:"npc describe cock")(display:"describe hair")(set:$hands to $npc's "hands")
(set:$description to (a:"fucks","dick","balls"))
(if:$doggy_text contains "pull hair")[(set:$description to $description + (a:"pull hair"))]
(if:$doggy_text contains "mount")[(set:$description to $description + (a:"mount"))]
(if:$doggy_text contains "stabilize")[(set:$description to $description + (a:"stabilize"))]
(if:$doggy_text contains "lean against you")[(set:$description to $description + (a:"lean against you"))]
(if:$doggy_text contains "cover mouth")[(set:$description to $description + (a:"cover mouth"))]
(if:$doggy_text contains "look back")[(set:$description to $description + (a:"look back"))]
(if:$doggy_text contains "leg up")[(set:$description to $description + (a:"leg up"))]
(if:$doggy_text contains "tits clap")[(set:$description to $description + (a:"tits clap"))]
(if:$doggy_text contains "grab neck")[(set:$description to $description + (a:"grab neck"))]
(if:$doggy_text contains "grab arms")[(set:$description to $description + (a:"grab arms"))]
(if:$doggy_text contains "tits rub")[(set:$description to $description + (a:"tits rub"))]
(if:$doggy_text contains "grab face")[(set:$description to $description + (a:"grab face"))]
(if:$doggy_text contains "grab head")[(set:$description to $description + (a:"grab head"))]
(if:$doggy_text contains "push down")[(set:$description to $description + (a:"push down"))]
(if:$doggy_text contains "pull hair")[(set:$description to $description + (a:"pull hair"))]
(if:$doggy_text contains "grab butt")[(set:$description to $description + (a:"grab butt"))]
(if:$doggy_text contains "grab waist")[(set:$description to $description + (a:"grab waist"))]
(if:$doggy_text contains "standing")[(set:$description to $description + (a:"standing"))]
(if:$doggy_text contains "big thrusts")[(set:$description to $description + (a:"big thrusts"))]
(if:$doggy_text contains "eyes roll")[(set:$description to $description + (a:"eyes roll"))]
(if:$doggy_text contains "grab shoulders")[(set:$description to $description + (a:"grab shoulders"))]
(if:$doggy_text contains "grab boobs")[(set:$description to $description + (a:"grab boobs"))]
(if:$doggy_text contains "nelson")[(set:$description to $description + (a:"nelson"))]
(if:$doggy_text contains "balls smacking")[(set:$description to $description + (a:"balls smacking"))]
(set:$description to (twisted:...$description))
(set:$description to $description's 1st)
(set:$text to (twirl:"as he pounds you","as he fucks your $pussy","as he fucks you","as he rails your $pussy","as he mounts you","as he fucks you","as he pounds you relentlessly","as he ruthlessly impales your $pussy","as he fills your $pussy","as he fucks you","as he ruts into you","as he sheaths himself inside you","as he pounds you","as he hammers your $pussy"))
(if:$description is "balls smacking")[(twirl:
"His $balls smack against you with each thrust, the weighty sensation matching the rhythm of his pounding.",
"Every time he drives into you, his $balls slap your skin, a lewd counterpoint to your gasps.",
"The heavy slap of his $balls against you underscores the depth of his penetration.",
"With each of his powerful thrusts, you feel his $balls thump against you, a primitive beat that resonates through your body.",
"His $balls swing forward, smacking audibly against you, the impact jolting you with each rutting motion.",
"You can feel the heat of his $balls as they repeatedly slap against you.",
"The constant slap of his $balls against you is a filthy reminder of how hard he’s fucking you.",
"His $balls batter against you, the rhythmic percussion of flesh against flesh echoing in the $room.",
"The persistent thwack of his $balls on your skin feels like a lewd applause for the pounding you're receiving.",
"As his $balls thud against you, you're acutely aware of the hard fucking he's giving you, each slap a mark of his intensity.",
"The slap-slap of his $balls against your ass is relentless, a cadence of raw, carnal fucking.",
"His $balls slap against you like a metronome keeping time to your shared obscenity, the sound as filthy as the sensation.")]
(if:$description is "nelson")[(set:$case to "upper")(display:"npc pronoun") (twirl:
"wrangles your limbs into the full nelson, your body contorted, spread open for his taking.",
"maneuvers your legs back, locking his arms around them and your neck, fully exposing your $pussy to his control.",
"dominates you in the full nelson, your legs splayed wide by his firm grip, his $cock aimed at your vulnerable core.",
"grasps you in the full nelson grip, your body arched and helpless as he thrusts up into you.",
"uses the full nelson to press you firmly against his hips, your entire body at his mercy as he fucks you, your moans stifled against the crook of your elbow.",
"holds you in a vice-like full nelson, your ass raised and ready for his relentless pounding from below.",
"spreads you out in the full nelson, making you feel exposed and taken, his $cock thrusting into you with ruthless precision.",
"exploits the full nelson to make you feel every bit of his $cock as it invades you, your bent form a testament to your submission.",
"has you in the full nelson lock, your $pussy helplessly receiving his $cock, his hands leaving no room for escape as he uses your body.",
"puts you in the full nelson, a position of total surrender, his $cock relentless as your muffled cries of pleasure fill the room.",
"secures you with a tight full nelson, his leverage perfect for directing his $cock to all the right spots inside your spasming $pussy.")]
(if:$description is "look back")[You (twirl:"look back over your shoulder at ","look back at ","look up at ")him (print:$text).]
(if:$description is "eyes roll")[(twirl:"Your eyes roll back in your head.","Your eyes cross a bit.","Your eyes roll back in your head from the pleasure.","Your eyes roll back.")]
(if:$description is "grab waist")[(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc possessive pronoun") (twirl:"hands latch onto your waist, pulling you into every punishing thrust.","grip tightens around your waist, his nails digging into your soft flesh, controlling your body's every movement.","hands curl about your waist, using it as leverage to power his $cock deeper into your $pussy.","$hands_desc hands grasp your waist firmly, pulling you closer.","$hands_desc hands grip your waist, pulling you onto him again and again, jolting your senses with every thrust.")](else:)[(set:$case to "upper")(Display:"npc pronoun") (twirl:"grabs your waist","uses your waist as a handle","puts his $hands hands around your waist") (print:$text).]]
(if:$description is "tits clap")[Your $breasts (twirl:"clap together","smack togther","clap together, loudly","smack together","are clapping together","are smacking together","clap together, loudly","smack together heavily").]
(if:$description is "grab shoulders")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"grabs your shoulders","grips you by your shoulder","fucks you, while grabbing your shoulders").]
(if:$description is "grab face")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"puts his hands over your face","literally grabs you by the face","puts his hands around your *face*")(if:(twist:1,2) is 1)[ $text].]
(if:$description is "grab butt")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"sinks his $hands hands into your $butt","grabs you by your $butt $text","grips your $butt tightly $text","seems to enjoy digging his fingers into your $butt as a handle","uses your $butt as a handle","is using your $butt as a fuck-handle","grips your $butt like a built-in handle to fuck you").]
(if:$description is "pull hair")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"possessively takes a handful of your $hair","fucks you while pulling on your $hair","pulls your $hair roughly","takes a big handful of your $hair","holds your $hair like reins","seems to really enjoy pulling your $hair","clearly loves pulling your $hair","uses your $hair like reins while he mounts you","pulls back a handful of your $hair $text").]
(if:$description is "grab boobs")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"grabs a handful of your $breasts","plays with your $breasts","plays with your $breasts $text","grabs a handful of your $breasts while he pounds you","isn't happy just fucking you - he's playing with your $breasts while he does it","seems to enjoy playing with your $breasts from behind","plays with your $breasts like they're delicious, dangling fruits").]
(if:$description is "grab arms")[(if:(twist:1,2) is 1)[(set:$case to "upper")(Display:"npc possessive pronoun") (twirl:"$hands hands grip your arms","$hands hands grab your arms, fucking you like you're a human wheelbarrow").](else:)[(set:$case to "upper")(Display:"npc pronoun") (twirl:"folds your arms behind your back $text","grips your arms tightly $text","grips your arms tightly").]]
(if:$description is "cover mouth")[(set:$case to "upper")(Display:"npc possessive pronoun") $hands hands (twirl:"cover your mouth","muffle your moans").]
(if:$description is "spank")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"spanks you","smacks your ass, loudly","gives you a loud spank","spanks your $butt","gives your $butt a loud spank","slaps your $butt loudly").(set:$se to (twirl:"slap 1","slap 2","slap 3","slap 4"))(display:"play sound")]
(if:$description is "push down")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"pushes you down into the $surface","pushes you down into a more submissive position","presses down on you","pushes you down even more").]
(if:$description is "tits rub")[Your $breasts (twirl:"swing and rub","rub","jiggle and rub","jiggle") against the $surface.]
(if:$description is "big thrusts")[(if:(twist:1,2) is 1)[The thrusts of (Display:"npc possessive pronoun") $cock get fast and super intense.](else:)[(set:$case to "upper")(Display:"npc possessive pronoun") thrusts (twirl:"are big and powerful","come hard and fast").]]
(if:$description is "leg up")[You put your leg up(if:(twist:1,2) is 1)[ to give (display:"npc pronoun") a better angle].]
(if:$description is "standing")[(twirl:"Standing up, you spread your legs","You spread your legs wider while standing") (twirl:"to take his $cock better","to give his $cock a better angle").]
(if:$description is "mount")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"*mounts* you like an animal","mounts you animalistically","is *mounting* you","spreads his legs wide and *mounts* you").]
(if:$description is "stabilize")[You try to stabilize yourself $text.]
(if:$description is "grab neck")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"grabs you by the neck $text","holds you by the neck $text","wraps his $hands hands around your neck $text").]
(if:$description is "grab head")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"grabs your head","holds you by the head","wraps his $hands hands around your head","grips the top of your head","grabs the top of your head") $text.]
(if:$description is "fucks")[(set:$case to "upper")(Display:"npc pronoun") (twirl:"fucks your $pussy hard","pounds your $pussy","ruthlessly pounds your $pussy","groans loudly $text","pistons his $cock in and out of your $pussy").]
(if:$description is "dick")[(set:$case to "upper")(Display:"npc possessive pronoun") (twirl:"$cock ravages your $pussy","$cock is stretching out your $pussy","$cock hammers your $pussy").]
(if:$description is "balls")[(set:$case to "upper")(Display:"npc possessive pronoun") (print:$npc's "ballsdesc") (if:(twist:1,2) is 1)[ballsack (twirl:"slaps loudly","slaps","smacks")](else:)[balls (twirl:"slap","smack","swing","smack","thwack")] against your (twirl:"legs",$butt,$pussy).]
}{
(display:"describe pussy")(display:"npc describe cock")
(set:$him to (twirl:"this guy","him"))
(if:$npc's "age" > 39)[(set:$him to (twirl:"this old guy","this guy","him","some old guy"))]
(if:$npc's "age" < 20)[(set:$him to (twirl:"this teenage guy","this boy","him","a teenager","some teenager","this guy"))]
(if:$npc's "tags" contains "nerd" and (twist:1,2) is 1)[(set:$him to (twirl:"this nerd","this dude","this nerdy guy"))]
(if:$npc's "tags" contains "chad" and (twist:1,2) is 1)[(set:$him to (twirl:"this chad","this guy","this total chad"))]
(if:$npc's "tags" contains "creepy" and (twist:1,2) is 1)[(set:$him to (twirl:"this creepy guy","this creep"))]
(if:$npc's "tags" contains "jock" and (twist:1,3) is 1)[(set:$him to "this jock")]
(if:$npc's "tags" contains "bully" and (twist:1,3) is 1)[(set:$him to "this bully")]
(if:$npc's "tags" contains "charming" and (twist:1,3) is 1)[(set:$him to "this charming guy")]
(if:$npc's "tags" contains "chubby")[(set:$him to (twirl:"this fat guy","this chubby guy","this chubby dude"))]
(if:$him is "him")[(set:$his to "his")](else:)[(set:$his to (text:$him) + "'s")]
(set:$description to (a:"feels good","feels good"))
(if:$npc's "personality" < 4)[(set:$description to $description + (a:"bad guy"))]
(if:$npc's "looks" < 4)[(set:$description to $description + (a:"ugly guy"))]
(if:$npc's "age" > 44)[(set:$description to $description + (a:"old guy"))]
(if:$npc's "age" < 20)[(set:$description to $description + (a:"teen"))]
(if:$npc's "tags" contains "chad")[(set:$description to $description + (a:"chad"))]
(if:$npc's "tags" contains "creepy")[(set:$description to $description + (a:"creepy"))]
(if:$npc's "tags" contains "nerd")[(set:$description to $description + (a:"nerd"))]
(if:(cock:"girth","npc") > 8)[(set:$description to $description + (a:"fat cock"))]
(if:(cock:"length","npc") > 8)[(set:$description to $description + (a:"long cock"))]
(if:(cock:"balls","npc") > 9)[(set:$description to $description + (a:"big balls"))]
(if:$doggy_text contains "pull hair")[(set:$description to $description + (a:"pull hair"))]
(if:(cock:"rating","npc") < 4)[(set:$description to $description + (a:"small cock"))]
(if:$doggy_text contains "mount")[(set:$description to $description + (a:"mount"))]
(if:$doggy_text contains "stabilize")[(set:$description to $description + (a:"stabilize"))]
(if:$doggy_text contains "tits clap")[(set:$description to $description + (a:"tits clap"))]
(if:$doggy_text contains "boobs jiggle" and $character's "masculinity" > 60)[(set:$description to $description + (a:"boobs jiggle"))]
(if:$doggy_text contains "grab boobs")[(set:$description to $description + (a:"grab boobs"))]
(if:$his_pleasure > 5)[(set:$description to $description + (a:"close to cum"))]
(if:$his_pleasure > 8)[(set:$description to $description + (a:"close to cum"))]
(if:$your_pleasure > 6)[(set:$description to $description + (a:"close to orgasm"))]
(if:$your_pleasure > 7)[(set:$description to $description + (a:"close to orgasm"))]
(if:$your_pleasure > 8)[(set:$description to $description + (a:"close to orgasm"))]
(if:$orgasms > 0)[(set:$description to $description + (a:"post orgasm"))]
(if:$character's "masculinity" > 90)[(set:$description to $description + (a:"crisis","crisis"))]
(if:$character's "masculinity" > 80)[(set:$description to $description + (a:"crisis","crisis"))]
(if:$character's "masculinity" > 70)[(set:$description to $description + (a:"crisis"))]
(set:$description to (twisted:...$description))
(set:$description to $description's 1st)
(if:$description is "boobs jiggle")[(if:(is_bim:))[($bimbo:[(twirl:"Like, ohmigawd! He's pounding me so hard my boobies are bouncing all over the place! It's, like, sooo embarrassing but, like, sooo hot at the same time! 😝","Wow, his hips are just smacking against me and my tits are jiggling like crazy! They're totally out of control! Hehe~!","Eek! My boobs are totally bouncing around! I can't stop giggling! It's all so funny... and sexy... and, like, wet... 💦😝","Like, y'know that feeling when your tits just won't stop bouncing? That's, like, totally me right now. So bouncy and dorky and, like, giggly! 😝","OMG! My boobs are totally doing their own thing! Bouncing around like two jello puddings! Can't stop giggling! 😂","Heehee! My boobs are so big n' bouncy! All that jiggle is just... making me giggle even more! 😄","Wow, like, you ever get fucked so hard your tits start dancing all over the place? Cuz, like, that's totally me right now. Teehee~!","Mmm, he's really messing up my rhythm! Every thrust and, like, my boobies are bouncing around. They're having a party of their own. Giggle~!","Ohmygawd! I'm just a big, bouncy, happy mess! 😝 Can't stop cumming... can’t stop giggling while my boobies bounce... and jiggle... mmm!","Unnnghhhh~! My boobs are jiggling sooo much! That feeling, is, like, so embarrassing but sooo hot! 😝","Oh! Oh! Oh! My naughty jiggling boobies! They're going craaaazy~! Gosh, it's soo good! 😝","Ohh, like, it's just sooo funny! My boobies are bouncing everywhere! And the more he thrusts, the more they bounce! And the more they bounce, the more I giggle! 😂")])](else:)[*(twirl:
"Ugh, so weird feeling my boobs jiggle...",
"God, I can actually feel my tits bouncing around...",
"Is it supposed to feel this strange having my boobs flop like this?",
"I'm so not used to this... my $breasts feel like they have a mind of their own.",
"I never realized boobs could be so... distracting.",
"Why do my $breasts have to bounce so much with every damn thrust?",
"This jiggle is so... I don't know, it's just so bizarre feeling it from this side.",
"Having tits is one thing, feeling them jiggle uncontrollably is another.",
"Shit, my $breasts are jiggling like crazy...",
"Every thrust is like a reminder that, yep, those are my $breasts slapping around.",
"It's like I can't focus on anything but the way my $breasts keep shaking.",
"Damn, I need to get used to this new body... especially these jiggling $breasts.",
"Feeling my $breasts wobble with each move he makes is so freaking odd.",
"My $breasts keep slapping together... I guess I'm really a woman now, huh?",
"It's surreal feeling my own tits bounce... always wondered what this was like.",
"Each jiggle is a reminder that I've got a full set of tits now...",
"Why does it feel like my $breasts are trying to escape with each thrust?",
"Never thought I'd have to deal with my own tits jiggling...fuck, it's distracting.",
"I've got to learn to cope with the constant movement of these $breasts.")
*]]
(if:$description is "crisis")[
(if:(is_bim:))[
($bimbo:[(twirl:"Ooh, wow, like, there's a cock in me?! But I used to have one of those… Huh~ this is waaay better!","Like, OMG, I miss having a cock, but feeling all full inside feels sooo good it’s crazy! Heehee~","I can’t believe, like, I used to be a guy! Now here I am, on all fours, taking a fat cock like a pro. Ughhh~!","Whoa, like, I totally used to have a cock… now there’s one inside me! This is, like, so weird but so hot!","OMG, I’m such a slut! I can’t believe I used to be all manly. Now, all I can think about is cock. Teehee~","Mmm~ good thing I used to be a guy, now I know just how much it feels good to fuck me. Eeee!","Like, wowww, I'm a total girl now. No more boxers, just cute panties for me! Heehee~ all filled with cock!","Ohmygod, like, I used to be a man, but now I'm so fucking wet and needy! Mmmmm~!","Remember when I used to be a guy? Now, like, look at me! Bent over, drooling for cock, heehee.","Ohmygawd, I totally remember being a guy, but like, he's making me feel soooo girly! Haha, like I can’t believe how good being a slutty girl can be!","Gosh, I used to be the one doing the fucking, but now I’m the one being fucked silly! Who’d have thought being a girl could be this fun! 😝 ","Wow, like I never really knew how intense it felt being pounded. It's like, super fucking hot being a girly bimbo!","Mmmm, this cock inside me feels sooo good! He's totally dominating me and I... actually like it?! I’ve fallen so far indeed~ ","I can barely believe, like, I used to be a man. Now I'm just some dumb, giggly girl who loves being used! 😝 ","Never thought I'd enjoy being a girl so much... or let alone being fucked like this! I was soooo different before... Funny thing, huh? 🥴","Haha, who knew? I used to be the one reaming, but now I'm getting reamed! And it feels soooo good!","Hee hee, being a girl is way more fun than I expected. It’s like, hilarious how much I’m enjoying being a bimbo slut.","Wow, like, I never thought I'd actually like getting fucked as a girl. But it feels so awesomely naughty and fun! 😝 ","Ohmigawd, like, I can't even remember what it was like to be a guy anymore. All I know is, being a giggly, horny, slutty girl is sooooooooo good...!","Ohmygod, like, how did it end up like this? I used to be a guy and now I'm... I'm... hehe, oh fuck, that feels sooooooo gooooood! 🥴","Oh my god, I'm such a moaning, writhing slut... I can't believe how good his cock feels… Wait, I used to be a guy, right? But this feels… so… mmmmm~ so good...","Ungh... I never imagined I'd be the one on my back, legs in the air... I used to be the one fucking, not getting fucked... But, ohmygod, I feel soooo full...","I can't believe how much I love being a girly, giggling slut… I mean, like, I used to be a guy? But now, I just care about how good it feels to be so fucking full! 😭","Dude, like, I used to have a cock... But, oh my gosh, being a girl feels soooo gooood! 😝","Unnngh, I never thought I'd love being nailed this much... But I'm, like, so totally into being a slutty bimbo, ahhh~! 💗","He's so fucking dominant, sooo strong... and I'm just... just letting him fuck me stupid. Wow, being a girl is... like, totally hot! Mmmmm 💦","I used to fuck girls like me... Now I'm the one being fucked... But like, omigod, he’s hitting all the good spots… it feels like heaven...","Unhhhg… I never knew taking it could be this hot and... and... ohmygodddd he’s going in deeper! I can't even finish a thought!")])(set:$gain to -1)(display:"gain masculinity")](else:)[
(if:(twist:1,2) is 1)[
(if:$character's "masculinity" > 89)[(twirl:"You can't believe this is happening...","Yes, you're *enjoying* getting fucked by a man.","Yes, this is really happening. Your $pussy is getting fucked.","Yes, this is YOU, a WOMAN, getting your $pussy railed.","You still can't believe you're letting $him fuck you.","Yes, you're really taking $his $cock inside you.","Yes, you're really taking a dick inside you.","Yes, you really have a guy inside you right now.","Yes, this is really happening.","You still can't believe this is really happening...")](else:)[(twirl:"You're still not quite used to the sensation of getting fucked - but it *is* amazing.","You're not used to the concept of *getting* fucked.","It's still hard to believe that this is where you are.","It's still hard to believe you have $his $cock inside you.","Yes, you have a cock inside you.","Is this the new you?","Are you getting used to being fucked?","Is this your life now? Enjoying getting fucked?")]
](else:)[(if:$character's "masculinity" > 94)[
(if:$orgasms > 0)[(twirl:"Your internal anguish over getting fucked","The shame you felt at first about getting fucked","The awkwardness you felt about getting fucked") (twirl:"is starting to wash away, after that orgasm...","has started to melt away, thanks to that intense orgasm...","has begun to subside, due to that crazy orgasm...")](else:)[
*(twirl:"Fuck fuck fuck... I can't believe this is happening.","I'm can't believe I'm letting $him fuck me...","I'm letting $him fuck me...","I'm letting $him fuck me... it's kind of humiliating...","Can I ever call myself a man again?","I can't believe I'm letting this happen...","This is... really... happening... fuck.","I can't believe I'm letting $him fuck me.","Holy fuck... I can't believe I'm really doing this.","I'm really GETTING fucked. God.","Fuck - I hate how GOOD this feels...","Shit, this feels so good.","Is X-Change making me feel this good - or do I actually like getting fucked?")*]
](else-if:$character's "masculinity" > 89)[
*(twirl:"I still can't believe this is happening.","I'm can't believe I'm letting $him fuck me...","I'm letting $him fuck me...","Can I ever call myself a man again?","I can't believe I'm letting this happen...","This is... really... happening... fuck.","I can't believe I'm letting $him fuck me.","Holy fuck... I still can't believe I'm really doing this.","I'm really doing this... fuck.","Will my masculinity ever recover after this?","Can I ever really call myself a man?","Fuck. I almost hate how good this feels.","Every thrust is stripping away what I used to be...","I'm being penetrated... I'm the one being fucked now...","My old masculinity... it's like it's fading with each pump.","No longer the fuckER... I'm the one getting fucked.","Feeling him inside me... god...","I'm moaning... Christ, I sound so dumb...","My whole identity, being unraveled by his $cock.","With every thrust, I lose a bit more of my past self...","This isn't me... but my body disagrees.")*
](else-if:$character's "masculinity" > 79)[
*(twirl:"This is addictive. Fuck...","Shit, this feels so good...","I can't believe how good this feels.","It's still weird... letting myself get fucked...","God, is X-Change corrupting me?","I'm actually enjoying getting fucked... damn.","I've fallen pretty far, haven't I?","Is it bad, that I enjoy getting fucked this much?","It's wild how much I like GETTING fucked.")*
]]]]
(if:$description is "feels good")[
(if:(cock:"rating","npc") < 4)[(if:(is_bim:))[($bimbo:[(twirl:"Omigosh, he's just... like... he's totally... Ohmygod! He's fucking me so... hah~ good!",
"Like, his cock may not be big, but it's, like, totally hitting the right spot! Eee~",
"Ooh, it's, like, so much fun when he's just... fucking me! Yay~",
"Mmm, his delicious cock is just...plugging me and I'm... like, totally loving it! ",
"Heehee, it may not be a monster cock, but gosh, it's making my kitty purr so loudly!",
"Ooh, he's soooo deep in my tight little cunny, love how he's stretching me out. Hehe~",
"Mhmm, his cock fills me up just right~ Oh, I wanna bounce on it forever. Yay!",
"Heehee~ His yummy cock feels sooo good in my tight little love tunnel! *wiggles hips*",
"Mmm, It's sooo blissful! His not-that-big-but-still-yummy cock is pounding my kitty! Haa~",
"Uh-oh, his pretty cock is inside me. Loving how it rubs my honey walls so right! *drools*")])](else:)[(if:$orgasms > 0)[(twirl:"His cock may not be the biggest in the world, but after that orgasm, you don't care...","He made you cum - it doesn't matter that his cock isn't anything to write home about.","Cumming like that... you don't care about the size of his cock anymore.")](else:)[(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc possessive pronoun") $cock (twirl:"isn't the biggest in the world, but it still feels good","isn't that impressive, but he's still stretching your $pussy out","may not be the biggest, but it still feels good").](else:)[*(twirl:"I definitely think I prefer bigger cocks...",(upperfirst:$his) + " cock feels good, even though it's not the biggest...","Nnngh... at least he knows how to use that cock, even if it's not the biggest...","")*]]]](else:)[(if:(is_bim:))[($bimbo:[(twirl:"Mmm~! My insides feel like totally melty and yummy... Like, I could do this forever, hehe! 🍆💦","Hehehe, I'm soooo full! Love it when he stretches my pussy so much. Makes me feel like such a naughty girl! 😏","Ohmygosh, his strong thrusts make me dizzy and tingly all over! So good, soooo good! 😍","Each push is, like, a jet of pleasure going through my whole body all fireworks-like! Totally yummmyyy! 💥","Oooh~ like, this position is amazeballs! I'm just bouncing on his big cock, like, endlessly! 🎠","Fuck! His cock is so good, like totally... ribbed for extra pleasure? Yeah, that's it! 💖","I'm like, totally his toy, just a sexy plaything for his big cock! It's sooo dirty and soo fuckin’ awesome! 😜","His dick just like a hot, throbbing massage inside me! Oh my gosh, I can’t even... it’s... it’s so good! 🌟","He's, like, grabbing my hips and just pile-driving into me! I’m sooo wet right now! 🎁","Golly, he's hitting all the best spots inside me! I’m such a lucky girly-girl! 💝")])](else:)[
(if:$character's "masculinity" > 80)[*(twirl:"Fuck! ","Shit, ","Fuck fuck fuck... ","Oh god, ","OHHHh my godddd... ")(twirl:"I hate how good his cock feels...","I can't believe how gooodddd this is...","there's a cock inside me, and I'm loving it...","I can't believe how good $his cock feels...","I can't believe a cock inside me feels so good...")*](else:)[
*(if:(twist:1,2) is 1)[(twirl:"Fuck...","Holy shit","Goddamn it,","Oh my god,") (twirl:"this feels incredible","his cock feels so fucking good","his cock feels so good inside me","this feels fucking good","this is so good","just like that, oh yeah")(twirl:"!","...")](else:)[(twirl:"This feels so fucking good.","God, this is heaven.","His cock feels so fucking good inside me...","Oh my GOD that's good.","Fuck, this feels good.","Holy shit- holy fuck-","NNgh oh my goddd this feels good...","Goddamn...")]*]]]]
(if:$description is "bad guy")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmygawd, he’s like, a total jerk... but god, why does it feel so gooood? Mmmm...","This guy's like, super mean, ugh! But ohmygod, his cock feels soooo gooood! Ahn~!","He's such a bully! But, like, his cock is making me feel all sorts of tingly! Ha~","Mmm, he's not my usual type, but... but, like, I can't think when he fucks me so gooood! Ugh~!","He’s not a nice guy, but damn... his cock feels so perfect inside me! 💖","Ew, he’s such a jerk, right? But why’s his cock making me feel soooo good? Uhhhn~ 😫","Mmmm... feels so good! But, like, why’s it gotta be him, y’know? Still, a girl’s gotta cum! 🥴","Even if he’s mean, I can’t help but melt for how good he makes me feel. God, I’m such a bimbo slut... 😝","I can’t believe he’s making my knees weak. He’s so nasty, but his cock... tooo gooood...! 😵💫","Too bad he's such an asshole... Because his dick feels soooo good inside me! Mmmmnn~! 😩")])](else:)[(if:(twist:1,2) is 1)[*(twirl:
"I'm just a toy to him.",
"I'm just a hole for his pleasure.",
"His $cock is slamming into me... owned by a jerk.",
"Why did I let this douchebag inside me?",
"I'm nothing but a quick fuck to this prick.",
"Being fucked by a guy I despise... what am I doing?",
"I can feel his smugness with every thrust... bastard.",
"He's so rough, like he's trying to prove a point... that he can use me.",
"His hands grip me like property... I'm just an object to him.",
"Every moan he pulls from me feels like a victory for this asshole.",
"Each thrust is a reminder: I'm beneath this asshole, literally and figuratively.",
"His $cock's inside me... and I hate that I'm giving in to such a scumbag.",
"He's pounding away, and I'm just his fuckhole... this is so fucked up.",
"I should hate every second, but his asshole moves are driving me wild.",
"He's getting off on dominating me... and I hate that I'm letting him.",
"Feeling him use me... I've never felt so cheap.",
"Why does it feel good being fucked by such a bad guy?",
"This guy's a total dick, and he's fucking me senseless.")*](else:)[*(twirl:"I know he's just using me...","I can tell he just sees me as a piece of meat...","He's just taking what he wants...","He doesn't care about me at all, he just wants his pleasure...","He only cares about his own pleasure...","I'm just letting him use me...","Maybe I shouldn't let guys like this use me...")(if:((cock:"rating","npc")) > 7 and (twist:1,2) is 1)[ (twirl:"At least he has a nice dick.","At least his cock is nice.","He has a big dick though...","At least he's hung like a horse.","Good thing he's at least well-endowed.")]*]]]
(if:$description is "ugly guy")[(if:(is_bim:))[($bimbo:[(twirl:"Heehee, like, I guess beauty is in the eye of the cock-holder, huh? As long as he's hard, I'm happy~! 🍆💦","Ohmygod, his face is, like, not it at all but his dick is just perfect, teehee! 🙈","Ahhh~ he's not much to look at but, like... oooh his cock is just sooooo yummy! I don't even care anymore! 😜💦","He's, um, not that cute but, like, his cock is just aaaamazing! I'm just a slutty bimbo, right? 😅🍆","His face is so, like... nevermind! As long as his cock's inside me, everything's, like, aaaawesome! 😈💦","Eew, he's, like, ugly but his cock is just... mmff! I'm such a size queen, aren't I? 💋🍆","His looks? Meh... His dick? Yummmmy~! I'm such a naughty, cocksucking bimbo for him, hehe! 🙊💦", "Omg, he's so not my type but... as long as he pumps me full... I don’t care what his face looks like! 💦💦")])](else:)[*(twirl:"I can't believe I'm letting such an ugly guy fuck me...","He's not even good-looking or anything, and I'm letting $him fuck me like his slut...","He's not even good-looking, but I'm letting $him inside me...","I'm really letting an ugly guy like this fuck me?")(if:((cock:"rating","npc") > 8) and (twist:1,2) is 1)[ (twirl:"At least he has a nice dick.","At least his cock is nice.","He has a big dick though...","At least he's well-endowed...","Nice cock though.")]*]]
(if:$description is "old guy")[(if:(is_bim:))[($bimbo:[(twirl:"Oh god, he's so much older... but like, I can't help it, I just want his cock!","Mmm... it's like, kinda embarrassing, but sooo good to be his dirty young slut...","He's, like, so much older n stuff, but he fucks me so good!","Age is just a number when his cock makes me cum this hard... like, wow!","Ohmygawd, I’m being fucked by some old dude! How did I end up being such a dumb slut?","Wow, he's... old? But oh so yummy! Gosh, I'm such a dirty young thing...","He's like, really old... but his cock is amazing! He fucks like a champ!","Nnngh, why is it like, so hot to be an old guy's play toy? Hehe~ I can't help but moan!","Ohmygod, like, he's super old! But, um... umm... uh... ohhhhh~! 😝","Ahhh, like being a little slut for an older man! My friends would die if they knew, hehe!","Ungh, he's old enough to be my dad! It's soooo dirty... and soooo hot!","Mmm, he's all old! But his cock... ugh... so fucking good!","Eeep! This is so naughty... but being fucked by an old guy is soooo hot! I can't resist...","Gosh, he's so old! But sooo incredible! Love being fucked like a dirty little bimbo!")])](else:)[(if:$orgasms > 0)[(twirl:"After cumming so hard, $his age doesn't really bother you anymore...","He may be old, but he made you cum so goddamn hard...","Maybe he's a little old, but he made you cum so fucking hard...","He might be old, but that orgasm... fuck.","Yeah he's old, but FUCK he made you cum!")](else:)[(if:(twist:1,2) is 1)[*(twirl:"He's old enough to be my dad...","He's fucking a girl half his age...","He's so much older than me...","He's much, much older than me...","Can't believe I'm letting this old guy fuck me...","This guy is old enough to be my dad.","Should I really let myself get fucked by such an old guy?")(if:(((cock:"rating","npc") > 8 and (twist:1,2) is 1)))[ (twirl:"I guess old guys can still have nice dicks.","At least his cock is nice.","He has a big dick though...","At least he's well-endowed...","Nice cock though.","At least he's hung like a horse.")]*](else:)[*(twirl:"Can't believe I'm being taken by someone twice my age...",
"He's old enough to be my dad... and he's fucking me hard...",
"He's got years on me, and he's using every one to fuck me senseless.",
"Being fucked by someone older... It's like he's claiming me.",
"This older man is using me... like he's reliving his youth through my body.",
"I'm being bent over by age and cunning... it's a little degrading!",
"Getting fucked by him feels like a dirty secret I should never tell anyone...",
"His age doesn't stop him from fucking me stupid...",
"Getting railed by an older guy... it's like I'm his mid-life crisis trophy.",
"I'm the youthful flesh for his aged $cock... God, why is this hot?",
"I should be repulsed, but the way he fucks me... it's like he owns me.",
"He should be gentler at his age, but he fucks me like he's proving a point.")*]]]]
(if:$description is "teen")[(set:$age to $npc's "age")(if:(is_bim:))[($bimbo:[(twirl:"Lol, like omigod. I'm getting fucked by such a young stud! He's only $age and he's making my body feel soooooo good!","Gosh, I can't believe an $age year-old is making me moan like this! He should be, like, in college or something!","This younger guy is totally rocking my world! He’s only $age... but wow, he knows how to thrust!",
"Mmm, I hope he doesn't think I'm too old or something! Hehe, but he seems to love fucking me and that feels soo good~!","Oh my gosh, this silly, hot, young guy is making my whole body tremble! He's sooo young but he's really good...","This kid, he's like $age and he's totally making me his fucktoyyy! Please, more... hehe!","Ohmygod, I'm being fucked by a guy who's barely $age! But this feels so fucking good...","I can't believe I'm getting banged by an $age year-old! I'm so naughty but his dick feels sooooo goooood! ","Oh god... he's only $age...? Doesn’t matter, hehe, feels soooo amazing!")])](else:)[*(twirl:"Can't believe I'm letting this $age-year-old inside me...","Damn, at least he has the energy of youth.","He's a lot younger than me.","If I was as lucky as him when I was $age...","He's just a teen, and getting to fuck a girl like me...","Fuck, when I was his age, I never got to fuck girls like me... lucky bastard.","I'm getting railed by a guy who's $age years old...","Should I really be letting a teen fuck me?","Can't believe I'm getting pounded by some kid just out of high school...",
"This kid is young but he fucks like he's trying to prove something.",
"Being fucked by this barely legal teen, it's almost embarrassing...",
"Getting taken by a teen, his stamina is humiliatingly relentless.",
"I'm a grown woman being dicked down by someone barely an adult...",
"He's so young, but damn, he's fucking me with a hunger that's kind of hot.",
"I'm old enough to know better... yet here I am...",
"Should I be proud or ashamed that this teen is fucking the life out of me?",
"His youthful cock is going at me with an energy that's almost too much...",
"I'm practically being schooled in sex by someone who's barely an adult... it's kind of degrading.",
"Fuck, he's probably bragging to all his friends about nailing a twenty-something chick.",
"He's a teen with more game than guys twice his age, judging by how he's fucking me.",
"He's just a teen and I'm here, legs spread for his eager cock...")*]]
(if:$description is "chad")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmigawwwd, he's just totally like, dominating me! I’m his little slutty plaything. Mmm, love it~","Holy shit, he's just... fuck, he's balls deep inside me! It’s like, total bliss!","He just pounds me like, without any hesitation, he’s such a chad... and it feels so deliciously wrong and right at the same time~!","His cock is just, like, bulldozing my insides. He’s turning me into his personal fuckhole, and it’s soooo hot!","He, like, owns my pussy and my brain is just a giggly, goeey mess. He fucks me soooo good. I love it~","Unghh~ He's using me, just pounding away like I’m a blow-up doll or something. It’s so fucking hot!","Oh my god, he's so fucking deep! He just took me and now he’s claiming every inch of me, eee~!","Gawd, he’s going so hard! He’s just using me for his pleasure... and it’s the best fucking feeling!","Mmm~ It's like, he's totally in control, just fucking my tight little hole however he wants! It’s soooo naughty and wrong but feels oh so right~","His big, hard cock is just... ohmygawd, pounding me so rough! My body is his personal sex toy, and it’s sooo kinky!","OMG, like, he's totally fucking me! I think I totally just rolled over for him, hah~!","Mmm, he’s like, soooo deep inside me, hehe, did I really give in that easily? All his to fuck, so embarrassing~!","I’m, like, his pretty little fucktoy, and I totally love it!","Ohmygawd, he's just, like, pounding away at me, like he totally owns me! Mmm, soooo good though~!","Oh fuck, he’s possessed me just right~! Just fucking me senseless, no holding back, just as it feels right~!","Hehe, I’m totally blushing, he got me sooooo easily!","He’s fucking me sooo good, like it’s his divine right! Never had this before, this is soooo nasty!","Ahhn~, who knew it’d feel sooooo good to be dominated! Caught and fucked like some dumb prey!","Oh noez, I’m being fucked soooo good... It’s like he’s... fuck... claiming me! Oh noez, this is just a little much~!","Fuck, he knew how to fuck me just right! He’s in charge, soooo in charge, I... I... can’t think when he thrusts~!","His thick cock’s drilling my pussy, his right to pound away... so embarrassed yet soooo aroused~!","Oh fuck, I’ve been so easily owned... still, his cock is stroking all the right places, it feels soooo gooood! It’s bad I know, but this super sexed-up me is loving it!")])](else:)[*(if:$character_archetype is "Playboy")[(twirl:"I am... was... a playboy too.","Was I ever as smooth an operator as this guy?","Was I ever as charming as this guy?","Could I pick up girls as easily as this guy?","I used to be the playboy... now I'm just another notch for this one.",
"Damn, this guy's game is on another level... I'm just his latest lay.",
"He's everything I used to be, only better... and he's fucking me to prove it.",
"It's like every thrust is a reminder of my fall from playboy to plaything.",
"I used to be a charmer, but this guy... he's making me his bitch.",
"Getting owned by a guy who's out of my league... even when I was a guy.",
"I used to be the seducer, now I'm panting and moaning under a better man.",
"I thought I was the master of the game, but now I'm just his pawn.",
"Thinking I was the ultimate playboy, until I ended up spread for one even better.",
"His confidence, it's shaming how much better at this he is... even compared to old me.",
"There's a twisted irony in being used by a playboy, knowing I used to be one.",
"He's the kind of guy I used to compete with... now I'm under him, being fucked.")](else:)[(twirl:"He's a total chad...","He's a total alpha...","He's probably used to fucking girls as hot as me...","He's fucking me like he owns me...","He's treating me like he owns me.","He's a chad - of course he gets to fuck me.","He's so dominant...","Of course he gets to fuck me, he's a chad...","He's fucking me as if he DESERVES my pussy. I guess he kinda does.","He's so confident, so dominant...","Was I ever as dominant and cool as this guy, when I was a man?","He's a total chad, and I'm his latest conquest...",
"He's got that cocky smirk like he's fucked half the city already...",
"He's not just fucking me; he's marking his territory...",
"He's a chad, his $cock an instrument of total domination...",
"He's pounding me like I'm just one of many; to him, I am...",
"His confidence, his swagger... it's all inside me now...",
"He fucks like he expects me to fall at his feet afterward...",
"I'm being dominated, and there's nothing I can do but take it...",
"He's using me, and it's clear he thinks I should be grateful for it...",
"He doesn't just fuck; he conquers, and right now, he's conquering me...")]*]]
(if:$description is "creepy")[(if:(is_bim:))[($bimbo:[(twirl:"Mmmm, ohmygawddd~ 💗 Like, he's so creepy but he's making my pussy soooooo happy... it's, like, so not right but feels so good!","Damn, he's like a total weirdo... but his cock feels so freaking goooood! Heehee~","This dude's totally sketchy, but I, like, can't help but want his cock! Ohmygod, I'm such a dirty girl...","I can't believe I'm letting this creep fuck me... but it just feels so, like, mmm~ amazing, hehe!","Ohmygosh, this guy's a total creep... but he fucks like a god! I’m, like, so addicted to his cock!","Is it weird that I'm super into this creepy dude's cock? Hehe, I’m such a pervy little slut!","Maybe this guy's creepy, but he's got, like, the magic cock – it’s sending me to the moon!","Ohmygod, I can't believe I'm letting this weirdo screw me... but I'm soooo turned on! It feels so fucking awesome, eeeep~!",
"This guy’s totally a creep... but his cock's all I can think about! I’m sooooo naughty, aren’t I?", "I know he's creepy and all that, but his cock feels soooo goooood! Hehe, I’m a terrible girl, aren’t I?")])](else:)[*(twirl:"I'm letting a creep fuck me...","He's a total creep...","He's super creepy, I shouldn't be letting him fuck me...","Should I really be letting this creep into my panties?","I'm really doing this? Really letting this creep fuck me?",
"This guy's a weirdo, and he's fucking me... ugh.",
"Why is his grimy $cock inside me right now?",
"I can feel his creepy gaze with each thrust... it's unnerving.",
"His touch is weird, his stare is weirder, and he's inside me...",
"I need a shower after this.",
"My skin crawls under his touch... but I'm still here, getting railed.",
"This is so messed up, being pounded by Mr. Creepshow over here.",
"This creep is sweating all over me.",
"There's something fucked up about the way this creep grunts as he fucks me.",
"Every thrust from this creep reminds me I've hit a new low.",
"This creep's getting off by using me... I've got to get out of here.",
"I feel like I need to scrub myself clean after letting this creep inside.",
"This creep's $cock shouldn't be anywhere near me... and yet, here we are.")*]]
(if:$description is "nerd")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmygawd, like, a real life nerd is, like, totally fucking me right now! Haha, he gets to fuck a girl like me! 🥵","Mmm, his cock feels soooo good... Who knew a nerdy guy like him could be sooo fun to fuck! Heehee~! 🥴","Aw, this is like the best! Getting screwed by a sweaty, hentai watching nerd 😜... It’s, like, so fucking delicious!","Like, fuck! He’s actually getting to do all those hentai things to a real girl, haha! That’s me~! 😩","Mmm~ his big nerdy cock is so hard, like fuck! I’m totally getting fucked by a hentai fan, hehe! 😝","Ohmygosh! A nerd fucking me hard n deep... Just like the girls in his anime. And, like, I’m sooooo fucking happy about it! 🥵","Hehe, it's like I'm a real-life hentai girl, all for this nerdy guy~. And, like, I love it! 😝","Hehe, who needs 2D when you’ve got a 3D girl, right nerd-boy~ 😜? Take me like one of your hentai sluts!")])](else:)[*(if:$character_archetype is "Nerd")[(twirl:"Can nerds like me really get as lucky as he's getting?","As a fellow nerd - fuck. I can't believe he can get pussy like this.","I can't believe other nerds are actually out here getting pussy.","I'm a nerd too... but I never got pussy this easily...")](else:)[(twirl:"I'm letting this basement-dweller fuck me...","Gosh, he's a total nerd. And yet he's balls-deep inside me.","I'm letting myself get fucked by a total nerd...","He's such a nerd... but he's getting that pussy...","Should I be letting myself get fucked by such nerdy guys?")(if:(cock:"rating","npc") > 8)[ (twirl:"He does have a pretty incredible cock...","At least he has a big dick.","At least he's hung like a horse.","At least he's really well-endowed.")]]*]]
(if:$description is "fat cock")[(if:(is_bim:))[($bimbo:[(twirl:"Eeek! Hehe, his fat cock is stretching me out so much... like, omigod! I’m such a tight little fucktoy for his huge cock! 💖","Nhhh~ oh my godddd! His thick cock is reaming my little pussy... it’s so intense! 💦","Oh wow... his big, meaty cock is all up inside me... stretching me wide... 🥴","Eeeep! It’s like his mega-thick cock is drilling straight into my dumb bimbo brains… through my pussy! It’s like, soooo big! 🥵","Gosh, his fat cock is plowing into me, rubbing my insides... it feels sooo wickedly good! I’m just melting all dumb and happy, hehe! 💘","Oooh, like, his massive cock is making my pussy all squishy and full... like it’s stuffing out all my thoughts! ⭐","Fuck, his dick is sooo fat… it’s got me stupid! Like, my pussy’s totally owned by his cock! 💖","Awww, his huge cock is drilling me... I can’t think about anything but how full it’s making me feel! I’m such a brainless slut for his cock! 😵💫","Eeee, his mega-dick is sooo big! Like, it’s stretching me stupid! I’m nothing but his dumb bimbo! 💋","Ooohmigawd, his huge cock is, like, filing out all my intelligent thoughts! Just fucking me into a drooling mess! 💦💖","Ohmygawd, his cock is soooo fat and big! I feel like a little stuffed toy!","Uhhhnn, it feels soooo thick and hard inside me! I’m just a happy, stretched-out bimbo!","Mmmm... his thick cock is making me feel so full! I must look like his dumb little fuck toy right now!","Unnngh~ his cock is sooooo huge, I can’t even think! Mmmm it feels so good!","Heehee, his dick's all up in my tight pussy... like so full and good…","Oohmygod, his dick is stretching me out... and I just can't get enough! *giggle*","Mmm, his big hard cock is stuffing my little bimbo hole... feels soooo freakin’ good!","Wow, like, his enormous cock inside me... I'm stuffied, ugh, yes~!","Mmmpf, his cock is soooo dominant! I just wanna cum on it again and again!","Eeeep, his thick cock’s got me all squirmy and dumb! Just wanna ride it forever~!","Gosh, his dick is sooooo big and manly! I feel soooo filled, *giggle*!","Ohmygawd, his giant cock is stretching me to the max! I’m so stretched… so full...")])](else:)[*(twirl:"He has such a fat cock...","His dick is so... THICK.","His dick is so fat, it's fucking stretching me out...","His dick is so fucking FAT...","He has such a thick cock...","Damn, nngh... this cock is so fat.","Nnngh... his cock is so fat.","Fuckkk... his cock is so fat.","I'm really getting stretched out...","His fat cock is stretching out my poor pussy...","DAMN his cock is fat...","DAMN this cock is FAT...","Damn I can feel him inside me... really stretching me out... such a fat cock...")*](inc:'your_pleasure')(display:"gain pleasure")]
(if:$description is "long cock")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmygawd! His mega cock is, like, totally wrecking my cute little pussy! Heehee! 💗","Wowlzies, his massive cock's got my bimbo brain, like, totally short-circuiting! Such slutty heaven! 💦","All that monster cock in me, lyke, there's no room for smart thoughts, just porny ones! Hehe! 🥵","Mmm, his fat cock drilling me's making me, like, a dumb pleasure-filled slut! Eeeee, sooo lucky! 🥴","Like, ohmygawd! His huge dick's pounding me into a mindless bimbo... yippee! 💗 ","Like, all he's fucked outta me are squeals, giggles, and moans. I can't even think... and I love it! 💖","Agh, his thick cock's stretching me out so much, it's, like, squeezing out my brains! Soooo lewd and awesome! 😝 ","Ohmygod, his huge dick's making my brain, like, gooey with joy! His personal ditz here! Eeeee! 🥴","Mmm, his large cock's fucking every smart thought outta my head, but it's, like, sooo fucking good! 💦","With his big dick inside me, all I can do is giggle and cum! Dumb, happy, drooling slut mode on! Hehe! 🥰")])](else:)[*(twirl:"He has such a long cock...","His cock reaches so far inside me...","His cock-tip is hitting my cervix...","God-DAMN he's deep inside me with that cock...","His cock is so big...","His cock is so long...","Such a long cock...","He's really plumbing my depths...","I feel him so deep inside me... such a big cock...")*]]
(if:$description is "big balls")[(if:(is_bim:))[($bimbo:[(twirl:"Heehee, his balls are, like, seriously the bounciest ever! I can’t even pull my eyes away!","Mmm, his balls slap against me with every thrust! *giggle* Making a bimbo beat for me to dance to!","Like, his balls are sooooo big... does that mean there’s gonna be lots of cum...?","Well geez, his balls are massive! Does that, like, mean he’s super virile or something?","Hmm, *giggle* wonder if his big balls mean he’s gonna, like, flood me with his cum…","I can't stop feeling his big swinging balls against me... it's soooo distracting!","Those big, heavy balls of his... *giggle* mean there’s so much cum, right?","Ooh, his balls are sooo big! Is he gonna, like, fill me up so much?","Gosh, those huge balls swinging against me... it's like he's playing a silly song on my ass!","Like, if he has such huge balls, does that mean he's gonna squirt out tons of cum?","Ohemgee, his balls are the biggest! Bet that means he’s gonna explode inside me!","Mmm, his balls are, like, slapping against me with every push and pull... *giggle* keeps me to the rhythm!")])](else:)[*(if:(twist:1,2) is 1)[(twirl:"He has such big balls...","He has really big balls...","Those balls are so big and heavy...","Those are big balls...","Such big balls...")(if:(twist:1,2) is 1)[ (twirl:"I can feel them slapping against my legs.","I can feel them slapping against my butt...","I can feel them smacking against me...","Like a freaking horse's or something...","Does that mean he cums a lot?")]](else:)[(twirl:"He has such a big sack...","He has a really big ballsack...","He has such a big ballsack...","He has a really big ballsack...","Such a big ballsack...")(if:(twist:1,2) is 1)[ (twirl:"I can feel it slapping against my legs.","I can feel it slapping against my butt...","I can feel it smacking against me...","Like a freaking horse or something...")]]*]]
(if:$description is "small cock")[*(twirl:"He has a pretty small cock...","This is a pretty small dick...","This cock isn't very big...","His dick isn't that big...","I had a bigger dick than him, when I was a guy...","His cock isn't that impressive...")*]
(if:$description is "pull hair")[(if:(is_bim:))[(if:$hairstyle is 0)[($bimbo:[(twirl:"Ohmygawd, he's yanking my hair like it's, like, reins or something! Hehe, I'm his pretty little pony! Woohoo~ 🐴💖","Mmm~ his strong hand pulling my hair, like, totally drives me wild! I'm all giggly and squishy inside! Teehee~","Ooh, like, pulling my hair makes me feel sooo owned! Like, just a fuckdoll for him to use! And totally love it! 💋","Unf~! Feels like he's steering me with my hair! Sooo controlling... and it's soooo hot! 💓","Hehe, when he pulls my hair, it's like... my head's all floaty and stuff, feels sooo... mmm~! 🤤","Ohmygod, the way he grips my hair, like, totally secures me to his cock, and I am, like, all HIS! My heart’s all doki–doki! 💘",
"Nngh~ when he tugs my hair, it's like, sending sparks down to my slutty pussy! This super owned feelin, hehe~ 🎆","Oh fuuuuck~! When he pulls my hair, my empty bimbo head is just screaming 'YES' over and over! Ahehe~ 😵💫","Can't, like, stop giggling when he feeds me his cock, all while pulling my hair, like, super hard! Ufufu~ 😝")])](else:)[($bimbo:[(twirl:"Nhh~, is he messing up my hair? It took me, like, forever to fix up! But, aww, it feels so good when he tugs like that! 💗","Eee~! My hair! He's definitely mussing it all up... but why stop when it's making my pussy clench so much! Hah~ 💦","Omg, like, I spent so much time on my hair, and now it’s ruined... but it’s totally worth it when he’s fucking me so good! Mmm~! 😍","Yikes, he's totally gonna ruin my hairstyle! Ah well, it’s not a huge deal when his cock feel sooo good inside me! 😜","Is he, like, messing up my hair? But I guess it’s a small price to pay for the incredible pleasure he’s giving me! 😲 Hah~","Mmmm, I love it when he’s tugging my hair... I mean, sure it’s ruining my hairdo. But the orgasms are totally worth it! 😇","Eek~! He's, like, pulling on my hair too much- but I can't help getting even wetter! 💦 So filthy and... nggh~ awesome! 🤗","Omg! Is my hair all messed up now? Eh, I don't care all that much, I’m too busy enjoying his fat cock inside me! Who needs a perfect hairdo when he's fucking me so good? 💗","Oh no, he’s messing up my hair! It took me ages to do it right this morning... but with his huge cock spreading me open like this, I don't think I really mind! Hehe~ 😁","My hair, it’s all messed up! But, like, shouldn’t it be?! Being fucked like this, my hair should be the least of my concerns! Mmmm~ fuck it, it feels soooo good! 🥰")])(set:$hairstyle to 0)($notification_still:"He ruined your hairstyle!")]](else:)[*(twirl:"He's pulling my hair like he owns me or something...","Ouch... he's yanking on my hair...","He's pulling my hair...","His using my hair like a leash...","He's grabbing my hair...","He's pulling my hair and riding me...","He's pulling my hair, like I'm his bitch...","Why do I kind of like it when he tugs my hair like that...?",
"Ow, my scalp... but somehow the pain's mixing with pleasure.",
"He's got a fistful of my hair... it's so primal.",
"That firm grip in my hair... damn, it's unexpectedly hot.",
"He's controlling me by my hair.",
"He's pulling my hair and I'm surprisingly into it...",
"It's weird, his hand in my hair makes me feel... owned...",
"Hair pulling... but why does it send chills down my spine?",
"My hair's his handle, his way of steering me... damn.",
"Pulling my hair, it's like he's tapping into some wild instinct.",
"This hair pulling is rough, raw, kind of makes me his...",
"His grip in my hair is tight... showing he's in charge.",
"He's yanking my hair... all I can do is moan.",
"This blend of pain and pleasure from him pulling my hair is wild.",
"Ow, careful! That's my scalp you're yanking on...",
"Okay, I get the dominance thing, but ease up on the hair pull...",
"His grip's close to the scalp... that's the right way to do it... not too painful... ngh...",
"Feels like he's trying to rip my hair out... not cool.",
"The way he's gripping my hair – it's intense, painful but somehow... right.",
"Is my hair his new steering wheel? Because he sure is taking control.",
"The tension in my scalp... it's oddly arousing...",
"Having my hair pulled back like this makes me feel so used.",
"I didn't sign up for a hair-pulling contest! Take it easy, dude.",
"When he pulls my hair, I can't focus on anything but that sting.",
"The tight grip on my hair, is this supposed to turn me on?",
"Being dragged by my hair, this guy's taking the caveman routine seriously!",
"Why does part of me like being handled like this? So raw, so... demeaning.",
"He's practically pulling my hair out, yet each tug hits a nerve that cries for more.")*]]
(if:$description is "mount")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmygod, he's like, an animal! Like he's rutting me so hard from behind, it's making me all giggly, fab! Ahhn~ 💗","Oooh, I can’t even think straight, he's just pounding into me! His balls, like, slapping against me, eee~ 😮💨","Mmmm, like, I just can’t help but wiggle my cute ass against his hips, it's like I’m his little slut in heat! Haha~ ❤️","Yea, fuck my pussy! I can feel his balls smacking into me, such a fucking turn-on, ugh! 😝","Oh my god, he's a beast, like, a fucking animal! He’s my animal though, like, taking me so rough, it’s erotic as hell!","Ohmygawd, his cock feels soooo good, like, slamming into me from behind. I’m all filled up and he ain’t slowing down, mmmm~~","Unnnnghh, gosh! His balls are, like, slapping into me. Such a forceful man, mmm~ 😵💫","Hehe, he's rutting into me so hard that it's, like, making my big titties bounce and clap together. So much fun, hee~! 😵💫","Oh gosh, he's being all animalistic and stuff, taking me from behind. Love feeling his balls slap against me~ ❤️","Eeeep~ he’s pounding me so roughly, his balls smacking against me with each thrust. I’m his bimbo bunny, haha!")])](else:)[*(twirl:"He's mounting me... like an animal or something...","He's mounting me...","He's really riding my pussy hard now...","He's mounting me like a beast...",
"This is so primal... being taken from behind like this.",
"Mounted like an animal, just raw, carnal fucking.",
"God, I feel like I'm being bred...",
"Jeez, this position feels so... instinctual.",
"Being mounted like this, I can't help but feel overtaken, overpowered.",
"He's breeding me like an animal.",
"Mounted and owned... I'm just a piece of meat to him.",
"Every thrust screams ownership.",
"So primal, being taken from behind.",
"He's marking his territory, inside me.",
"This is raw, animalistic dominance.",
"Mounted... used... I'm his prey.",
"Being fucked like a bitch in heat.",
"I'm his to mount, to use.",
"I feel less like a person, more like a conquest.",
"From behind, he dominates completely.",
"I'm being rutted like an animal.",
"His primal urges control the rhythm.",
"Like a beast, he takes what he wants.",
"Mounted, used, I'm under his control.",
"I'm being ridden, feeling every dominant push.")*]]
(if:$description is "stabilize")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmygawd, he's fucking me like a jackhammer! Heehee, I can barely keep upright, it feels sooo good~ 😵💫!","Ahha~! It's like I’m on a rocking boat! Each thrust of his has me all giddy and wobbling on my feet! 😝","Ohfuck, his cock is, like, driving me crazy! I'm all giggly-dizzy from each powerful pound! 🥵","He’s so strong, like, mmm... I can barely stand! Hehe, but it’s the most exciting way to lose my balance~ 🥴","Woah, like, I'm being tossed around like a ragdoll! But, like, in the best way! Each thrust’s making me giggle! Hehe~ 😵💫","He’s… mmhh… he’s rough and it, like, sends me straight to pleasure town! Is it weird that I can barely stand but I love it? Hahah~! 🥵","Fuck, the way he’s hammering into me! Makes me… oooh~ dizzy and all giggly! I love it~ 😝","Ohmygod, this is so intense! It's like a delightful seesaw, I’m all over the place, loving every moment of it! Heehee~ 🥴")])](else:)[*(twirl:"Fuck, it's hard keeping my balance...","Goddamn it...","I need to balance myself...","I need to keep my balance...")*]]
(if:$description is "tits clap")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmygawd, he's fucking me sooo hard! My boobies are bouncing and making these funny noises! Hahaha, it’s like they’re clapping for his big, hard cock!💗","He's sooo deep inside me and my titties are slapping together like, super loud! Hahaha, it’s like they're cheering him on! Go, cock, go! ☺️","Wow, his cock is, like, pounding me so hard, my nipples are all pointy from the bouncing! Giggle, my tits are having their own little party! 💦","OMG, like, every thrust makes my boobies jiggle and make splappy noises! It’s too freaking hilarious! 😋","Like, my tits are literally clapping for his penis! Each jiggly bounce is like a round of applause for his cockmanship! 😆","Like wow, his thrusts make my boobies bounce and smack together in this super silly rhythm! He’s conducting my twin jiggle symphony! 🤪","His pounding, like, makes my big tits make all these clap, clap noises! Ohmygawd, my boobies are cheering for his big, hard love pole! 🎉","Like, every time he pounds into me, my tits, like, bounce and smack together! Hahaha, it’s so distracting and funny! 🤣","He’s fucking me so good, my titties are dancing around like crazy! Boing boing, clap clap! 🤭","Ohmygosh, he’s making my boobies do all these bouncy bouncy, slappy noises! It’s so goofy, I can’t stop giggling every time they smack together! 😂")])](else:)[*(twirl:"He's making my tits smack together...","He's making me titty-clap...","He's making my whole body jiggle, and my tits smack together...","He's making my boobs slap together...","Fuck... my tits are knocking together.","My tits are smacking together...","The sound my boobs make...","My tits are clapping together...","Ow, my tits are slapping hard into each other...","I feel my tits slapping each other...","My tits... they're clapping while he fucks me...","The way my tits just clap together...","Oh God, my tits are slapping against each other...","My tits are making a clapping noise... fuck!","The smack of my tits is so loud...","Can't believe my tits are doing this clapping thing...","My tits are bouncing out of control...","Feels so weird hearing my tits smack like that...","The slap-slap of my tits is kind of humiliating...","My tits are smacking together with each thrust he makes...","I'm like a cow, tits just clapping away...","Each thrust makes my tits clap like applause...","He's making my tits jiggle and slap together...","Every movement I make, my tits just keep clapping...","The sound of my tits smacking together... it's obscenely loud...","Can't focus with my tits clapping so hard...","My tits are clapping, and it feels... degrading...","It's like my tits have their own rhythm as they smack together...")*]]
(if:$description is "grab neck")[(if:(is_bim:))[($bimbo:[(twirl:"Like, ohmygod, when he’s holding my neck, hehe! It’s so hot and kind of scary, but like, in a really sexy way! 💗","Hee hee, him grabbing my throat is, like, totally turning me on even more! It's making my head get all fuzzy!","I'm soooo into when he chokes me, hehe! Makes me feel like a, like, a blowup doll or something! 🥴","Eeeep! I can't help but giggle when he's doing that! Like, how can being choked feel soooo good? 😝","Wow! Feeling his hand squeezing around my throat while he thrusts? I'm, like, totally losing my mind and it's so rad!","Ohmygod! Something about him choking me is, like, totally making me drip! It's wild and I love it! 😵💫","Hehehe! Feels soooo goood! His hand around my neck while he fucks me? I’m just a mindless little bimbo for his cock!","Oh frig! Being choked is, like, totally not what I expected, but it's soooo hot! Makes my pussy twitch like cray! 🥰","Eeee! It's like his hand on my throat makes his cock feel even better! I can't even! 💖","Like, what’s happening?! I’m sooo into it when he tightens his grip on my neck! Makes me feel all airheaded and giggly! 💘")])](else:)[*(twirl:"Is he trying to choke me?","He'd better not choke me...","Who gave him permission to hold me by the neck?","He's got his hand on my neck...","His hand is pressing on my throat...","God, he's choking me...","His grip... my neck...","His hand is around my neck...","I can't believe he's choking me...","His hand is squeezing my neck...","Fuck, his hand's on my throat...","His fingers press against my windpipe...","His hand on my neck feels so... dominant.","I can barely breathe with his hand on my neck...","He's choking me and it's super intense...")*]]
(if:$description is "grab boobs")[(if:(is_bim:))[($bimbo:[(twirl:"Hehe, omigod, how he's grabbing my tits is like, mmm... I love it!","Oh wow, when he’s fondling my boobs while he's inside me - it's like soooo awesome!","I’m like, giggling and squirming but it feels so good when he's playing with my tits!","Mmm he's groping my boobs like he love them.. and it's driving me, like, totally wild!","Ngh~ The way he's squeezing... it's so intense! More, more! ","Hehe, all of the pleasure is like, concentrated in my tits and pussy! I’m such a bimbo fucktoy and it's amazing!","Gosh... his hands on my breasts while he fucks me, sooo thrilling!","Ohhh, his fingers on my sensitive nips while he’s fucking me, my gosh… toooo good!","The way he's manhandling my boobs, I’m like, over the moon!","Mmm, it’s so good, he's playing with my tits while he's fucking me... just pure bliss, hehe~")])](else:)[*(twirl:"He's playing with my tits...","He's playing with my boobs while he fucks me...","He's groping me while he fucks me...","His hands on my tits...","He's squeezing my boobs...",
"He treats my tits like his playthings.",
"Why do his hands on my $breasts feel so... possessive?",
"I'm not sure I love my $breasts being squeezed like stress balls...",
"Feeling him squeeze my tits makes me crave more touch.",
"His thumb circling my nipple is driving me crazy.",
"He's fixated on my tits like they're his prized possessions.",
"When he squeezes my $breasts, I can't help but push into his touch.",
"I should probably tell him not to squeeze so hard... but it kind of turns me on.","He's squeezing my breasts... it's a strange mix of pain and pleasure.")*]]
(if:$description is "close to cum")[(if:(is_bim:))[($bimbo:[(twirl:"Oooh~ he's, like, so close to cumming! I can hear his grunts like, louder and stuff!", "Heehee, I can like totally feel his cock throbbing! Any second now and he’s gonna cum sooo hard!", "Ohmygawd, he's gonna explode any minute! I can hear it in his groans!", "He's getting so close! I can feel his cock twitch inside me!", "Oh wow, he's gonna cum sooo soon! I can feel how his thrusts are speeding up!", "Heehee, like his cock feels sooo stiff and hot inside me, he's sooo gonna blow soon.", "Ohmygawd, like, his breaths and stuff are getting like, all ragged! So close, teehee!", "His face is, like, so red! He's about to pop, heehee!", "Gosh, his thrusts are sooo wilder and longer now, like he's ready to shoot his load any second!","Mmm, he's totally on edge! I can feel it! He's gonna cum sooo hard!", "Like, his moans are sooo sexy! He’s about to blow and I’m soooo ready for it!")])](else:)[*(twirl:"I think he's gonna cum soon...","Seems like he's getting close...","He's really enjoying himself...","He must be getting close...","I felt his cock twitch...","I think he's getting close...","I think he's gonna cum soon...","He's getting tense, he's so close...",
"I can feel him swelling inside me...",
"His thrusts are erratic, he's right there...",
"He's almost there, I can tell...",
"He's gripping me tighter, it's time...",
"His hips are stuttering, he's gonna cum...",
"He's twitching inside me, any second now...",
"That look in his eyes, he's about to explode...",
"His $cock feels like it's throbbing harder...",
"His movements are frantic; he's right at the brink...")*]]
(if:$description is "close to orgasm")[(if:(is_bim:))[($bimbo:[(twirl:"Ohmygawd, like, I think I'm gonna explode! I’m so close, soooo close!","Hehe, it's like, tingling so much! I'm... I'm... I'm gonna cum!","Mmm, my whole body's, like, buzzing... I’m gonna... gonna... gonna cummm~!","Aww, is that an orgasm? It’s like, right around the corner. I’m trembling already! Teehee~","Oh gosh, like, I can feel it anymore! I'm... I'm... gonna... cum!","Oooooo, feels like fireworks are gonna go off any sec, hehe! Am so close... mmmm!","Badum, badum! Can you hear it? My heart’s gonna come out! It’s like... eee… gonna cum!","Like, wow! So much pressure… bet an earth-shattering orgasm’s on its way!","Ohmigosh, like, it's building up! I’m... gonna... I’m gonna cum!","Teehee, feels like, like... like I'm going to pop like a balloon or something!")])](else:)[*(twirl:"Nnngh- I'm gonna...","Fuck I'm close! Just a bit more...","Fuck fuck fuck this feels so good - I'm gonna... ngh...","Oh god, I'm close. Fuckkkk...","God fucking dammit this feels good... I'm so close to cumming...","Shit I'm close to cumming...","Shit I'm gonna cum soon...","I'm gonna...","I'm getting close... fuck!","Fuck I'm getting close...",
"Uhh—I’m almost there...",
"Ah, so close, so fucking close...",
"God, yes—just a little more, fuck—",
"Nngh—can't hold it, gonna... gonna...",
"Fuck—right there—I'm trembling...",
"Shit, that's it—I'm...I'm...",
"Hah, oh god, I'm quivering—so close...",
"Mmm—pressure's building—it's happening...",
"Uh-uhhh, that spot—gonna fucking lose it...",
"Oh fuck, waves are crashing in me—coming...",
"Nngh, can't speak—can only moan—I'm there, I'm—",
"Damn it—everything's contracting—I'm...",
"Ohhhh, I'm clenching—so close to the edge...",
"I'm at the brink—ungh...",
"Uh, I'm teetering—right on the fucking cusp—",
"Shit, yes—my body's tensing, ready to—ready to...",
"Nnnghh... fuck... so close... can't—",
"Ah! Ahh—gonna... gonna cum—",
"Hnnng—fuck—right there—ohhh...",
"Shit—can't focus—just need to—nghhh...",
"Fuck me—fuck—I'm—oh god—",
"Ohh fuck—can't think—just feels—",
"Mmmph—ahh—yes, yes, yes—",
"Nggh—so good—so damn—close—",
"Uh-uhh, my mind's—gone—just—cumming—",
"Nghh, I'm losing it—fuuuck—",
"Shit—overwhelmed—feels too—fuck—",
"Ahh—ngh—yes—yes! Right there—",
"Hah, can't—can't even—uhh—",
"Mmmf—gonna—gonna explode—ughhh—",
"Ohh fuck—fuck—cannot hold—ahhh—",
"Hngh—drowning in—this pleasure—",
"Shit—so full—so tight—gonna—",
"Squeal—mewling—uhh, fuck, so—",
"Ahhh, ngh—fuck—need to—cum—",
"Ohhhh—too much—too much! I'm—",
"Nggh—fuck—losing myself in—ughh—",
"Nnnggh—my head's spinning—fuck...",
"Unnnghhh—so full, so—can't think...",
"Mmf—almost there—God, yes—",
"Ah! Ahhh! Can't—gonna burst—",
"Ngh, ngh—everything's so hot, so tight—",
"Hah—please—just like that—unnnghhh...",
"Fuck—overwhelmed—can't—ah—!",
"Yesss—right there—fuck, fuck, fuck—",
"Uuuh—I feel it—everywhere—",
"Squeeeee—so good—so close—",
"Gonna—gonna cum—unh! Unh! Unhhhh!",
"Nnnh—can't hold back—ahhh—cumming!",
"Fuckkk—losing it—losing—nngh—",
"Oooooh—fuck yes—almost there, almost—",
"Uuuuuh—so intense—feels—feels—",
"Ungh—can't stop—gotta cum—",
"Nnngh—fuck—tension's too much—",
"Eeeek—there! Right fucking there!",
"Nnngh—so close—fuck me—",
"Uhhhh—shaking—quaking—unnnghhh...")*]]
(if:$description is "post orgasm")[(if:(is_bim:))[($bimbo:[(twirl:"Mmmm, like, wow. That was a total brain-explody orgasm! Hah~","Ooh! Like, omigod! My brain's, like, total fucking mush now! No thinking, just cumming~!","Like, fuck! After that orgasm... brain's all floaty...","Unnnngg... oh my goddd, that was so crazy! I'm, like, totally blank now...","Oooh, that was... awesome! Like, my brain’s totally scrambled, hehe!","Aww, like, holy shit! I'm all tingly and stuff... so fucking awesome!","Fuck, that orgasm was, like, all up in my head! I'm such a happy bimbo!",
"Nhhh, ohmygoddd... what were words again? So much pleasure, heehee~!","Mmm, like, omigosh... feels so empty... in my head... but soooo good!","That climax, like, vacated my brain, hehe! Brain’s empty but I’m soooo happy~","Ohmygodd, I can't even... like, remember my name, but it feels soooo good!","Totally fucked my brains out like, for reals, mmm~!","Ooh, my little airhead brain is, like, buzzing! Best. Orgasm. Ever. Hehe!","Fuck, like, my head's all squirmy and stuff. Too much pleasure, I think...","Aww, I'm all giggles and, like, shaking! That orgasm, wow...","Mmm, that orgasm was... was it something brain-melting? Yeah, totally!","Oh gosh, I climaxed sooooo hard, I’m all senseless! Happy, senseless, bimbo me!")])](else:)[*(twirl:"Nngh... I can barely think straight...","Fuck I can barely think straight.","Damn... that orgasm turned my mind to mush.","That orgasm was mind-blowing...","That orgasm felt so good...","That felt so fucking good...","Fuck that orgasm was good...","Ngghh... goddd...","Oh... my god...","Geez... I can't even think after that...","Fuck, after that orgasm... can barely think...","Can't... think... straight...","I can barely even think after that orgasm... fuck...",
"Nngh... brain's all fuzzy...",
"Unnnghhh... what are words? Too much pleasure...",
"Mmmm... can't form thoughts, just... blissed out...",
"Ahhh... so dazed, so fucking dazed and happy...",
"Ohh... mind's total mush, but fuck, so good...",
"Eeeep... that was insane, I'm just... whoa...",
"Goddamn, orgasm totally wrecked me... in the best way...",
"Nnnngh... I'm puddle of goo... like, pleasure goo...",
"Fuck me... that was... huh? Can't think... too good...",
"Whoa... orgasm hit me like a truck... can't even...",
"Can barely piece thoughts... everything's all... tingly and shit...",
"Ungh... did I just cum or get brainwashed... so gooood...",
"Orgasm overload... what was I saying? Don't care... happy...",
"Sooo wrecked... like, my mind's just a mess now...",
"Ahhh... feels like my brain cells got off too... gone...",
"Ngh... shuddering... can't even process... just wanna mewl...",
"Nnngh... totally bliss-fucked... my head's swimming in afterglow...",
"Oh... my god... every cell in my brain came... fuck...",
"Nngh... I can't even... just giggly and orgasm-dumb...")*]]
}{
(if:(twist:1,2) is 1)[(if:(is_bim:))[($bimbo_dialogue:[(twirl:"Ahhhnn~ 💗","Heehee~",
"Uu-unggh~~ 😝","O-ohhh~~!! 😵💫","Uu~💦auugh 😫",
"Mmnnn~ 💞",
"Aaaahhnnn~~ 🥵",
"O... ooHH~! 😩",
"Heehee....hehee... Ohhh~~~~ 😝",
"Nnnghh~ 💗","Mmmnn~ oh God! Haaa~ 🥴","Unnghh... haah~! 😩","Oooh~ 🥵","Aaah~ 💦","Mmmmmm~ 😝","Oooh, unnghh~ 💦","Mmmf-fuuckk~","Uhnnn~ 😝","Ahh~ 💦","Unnghh, oh fuck~! 😫","Haaah~ 😵💫","Aaaaah~ 🥴","Unnnnghhhh~ 😝","Oh, ohhhh~ 💦","Mmmmnn~ oh God! 😩","Mmmmm~ 🥵","Haah... aah... oh~! 😝","Oh… unngghh~ 😩","Nngh~ mmmmm 🥵","Unnn, mmmm~ oh God! 💦","Unnghh~ 🥴","Oh, ohhhh~ 😝","Mmmm~ unngghh! 💦","Haah... aah... ugh~! 🥴","Oh… unngghh~ 😝","Mmmm~ oh God! 🥵","Haaaah~ oh fuck~! 💦",
"Mmmmmahhhhh",
"Hah~... hah~... ungh... 🥵",
"Oh fuckk....unnn...",
"OMG....goddd..... 💞",
"Mmmm..... 💦",
"Unnn.......ohhhh~~~~! 😩",
"Mnnfff~ Nnngh...haah.... 💦",
"Uu~augh",
"Guhh....auhhh...mmmn.... 💞",
"Nnggh...Ahhhnnnn~~!! 🥵",
"Heehee...annghhh~~ 😝")])](else:)["(twirl:"Nngh","MNMmnnn mnnngh","Mmmnnn unnghh","Unn nnn unngghhh","Nnngh oh god, unngh","Unngh","Unnhh- unnn","Mmmnngghh oh god- nggh","Nggh unnghh, mnnn ughh","MMnnn unnn unnnghh","Mmmfff... unnnf","Mmm-ahh","A-aaah","Ahhnnn ahhnnn unnnn","O... oh! Unnhh","Oh... ohh! Unngghh","Mmmmnn","Haah... aah... ugh")(if:(Random:1,2) is 1)[ (twirl:"nngh-ph","unnn","haaahhhh","haahhh","nnnmm","uggh","fuckkk","goddd","fuckkk","oh fuckkk","unnngh")](twirl:"...","-","...")"] you (twirl:"whimper","whine","moan","gasp","groan","pant","whine","moan","whimper","moan","squeak","mewl","purr","sob","moan","gasp","groan").](else:)[(twirl:"You gasp, uncontrollably.","You give a hoarse sob.","Depraved, lewd moaning comes from your mouth.","You produce lewd groans and whimpers.","You whimper and groan.","You try to suppress your whines.","You moan, softly.","You groan, softly.","You give a strangled moan.","You pant and breathe heavily.","You moan, desperately.","You produce bitten-off, needy moans.","You moan and whimper.","You give a series of high-pitched little moans.","Sweet, debauched whimpers are fucked from your lips.","You choke on a short, bitten-off whimper.")]
}(replace:?text)[{(set:$scene's "events" to it + (a:"dirty talk"))
(set:$now to $time of (a:"this morning","this morning","today",(twirl:"tonight","this evening","tonight")))
(set:$pussy to (twirl:"pussy","tight little pussy","pussy","cunt","pussy","slit","pussy"))
(set:$nng to (twirl:"Fuck","Nngh","Mmm","Fuckkk","Oh my god","Fucking hell","Goddd","Oh my gawddd","Gosh","Nnnghh","Unngh","Nnnngh","Nnn","Mmmmnn"))
(set:$cock to (twirl:"cock","rod","schlong","cock","dick"))
(set:$his_name to $npc's name)
(set:$options to (twisted:"slut","oral","do","had orgasm","need orgasm","satisfy","cum","nipples","wet","dominant","old","nerdy","need","hot","blowjob"))
(if:$character's masculinity > 60)[(set:$options to it - (a:"slut","old","nerdy"))]
(unless:$scene's events contains "oral")[(set:$options to it - (a:"oral"))]
(unless:$scene's events contains "blowjob")[(set:$options to it - (a:"blowjob"))]
(if:$character's "arousal" < 6)[(set:$options to it - (a:"nipples"))]
(if:$lubrication < 9)[(set:$options to it - (a:"wet"))]
(if:$orgasms < 1)[(set:$options to it - (a:"had orgasm"))]
(unless:$npc's tags contains "chad" or $npc's "tags" contains "bully" or $npc's "tags" contains "jock")[(set:$options to it - (a:"dominant"))]
(set:$option to 1st of $options)
(if:$option is "need")["(twirl:"$nng, I *need* to be fucked","$nng, I can't wait for you to fuck me","I really need to be fucked","I really need a good, hard dicking down","I really really need a good dicking down","I fucking need to be pounded","I really fucking need your $cock in me","$nng, I need your cock so bad","Please, fuck me","What are you going to do to me? I need a good dicking down","I really need to be fucked","I need you so fucking badly")(twirl:"!","...",",")" you (twirl:"moan","say, seductively","murmur","breathe","say","beg for it","beg","whine, sexily").]
(if:$option is "nerdy")["(twirl:"$nng, just treat me like one of your anime girls...","Fuck me like the girls you watch in pornos...","Please, just treat me like one of those girls in your Hentai videos...","Treat me like your personal ona-hole...","I want you to treat me like the girls you watch on the internet. Use me however you want...","I bet you have a fleshlight at home... well, I want you to treat me like that!","Please fuck me, UwU!")" (twirl:"you say to the nerd","you mewl","you say, crossing your eyes intentionally","you make a little ahegao face for him").]
(if:$option is "blowjob")["(twirl:"Did you like my blowjob?","Did you like how I sucked your $cock?","Did you like the way I blew you?","Do you like having girls suck your cock?")" you ask him(twirl:", cheekily.",".",", smiling.","")]
(if:$option is "old")["(twirl:"$nng, are you gonna be my daddy?","Can I call you daddy?","There's something nice about older guys... more confident.","I like older guys... you know what you're doing.","You like having a girl as young as me to fuck?","I bet you're gonna live longer, having a girl like me to fuck...","You excited to fuck my wet young pussy?","Mmm, I want to be dominated by an older man...")" (twirl:"you moan","you say","you talk dirty")(if:(Random:1,2) is 1)[ to (display:"npc pronoun")].]
(if:$option is "dominant")["(if:(twist:1,2) is 1)[(twirl:"$nng, you're so dominant...","You're such a *man...*","You're such a total chad...","You're so dominant...") ](twirl:"Use me however you want","Show me you're the boss","Show me you're in charge","Show me how you take charge of a woman")(twirl:"...",",","!")" (twirl:"you moan in his ear","you moan","you moan, submissively","you groan").]
(if:$option is "wet")["$nng(twirl:"...","-",",") (twirl:"I'm so wet for you...","my $pussy is so wet...","my $pussy is soaked...","my $pussy is so goddamned wet...","my $pussy is sopping wet...","you make me feel so hot...")" (twirl:"you moan","you mewl","you whine, needily","you say, needily","you moan","you moan at the dampness between your legs").]
(if:$option is "nipples")["$nng(twirl:"...","-",",") (twirl:"look at how hard my nipples are...","my nipples are so hard...","look at my nipples, they're rock-hard!")" you (twirl:"moan","say")(if:(Random:1,2) is 1)[ to (twirl:"him",$npc's "name")].]
(if:$option is "hard")["$nng... (twirl:"you're so hard for me","I love how hard you are for me","look at how hard your $cock is...","your $cock is so hard...")" you (twirl:"moan","say","mewl","whine").]
(if:$option is "cum")["(twirl:"I'm gonna make you cum so hard","I want to make you cum, really hard","I'm gonna make you jizz really hard","I want to make you cum really hard","I want to make you blow your load","I wanna make you cum your brains out","I want you to cum really hard","I'm gonna make you cum buckets","I'm gonna drain your balls completely")(twirl:"...","!")" you tell (twirl:"him",$npc's "name").]
(if:$option is "satisfy")["(twirl:"Think I can satisfy you?","I hope I can satisfy you...","I really want to satisfy you...","I want to rock your world...","Do you think my body can satisfy you?")" you say to (twirl:"him",$npc's "name").]
(if:$option is "need orgasm")["(twirl:"I need you to make me orgasm...","I really need to cum...","I really want you to make me cum...","I reallyyy need to cum...","I really want to cum...","I really need to cum...")" you beg.]
(if:$option is "had orgasm")["$nng... (twirl:"You made me cum my brains out...","I love how you made me cum...","I love how you made me orgasm...","You gave me a really great orgasm...","That was such a nice orgasm... I'm still feeling all tingly...")" you (twirl:"moan","coo").]
(if:$option is "do")["(twirl:"So, what are you planning to do to me?","So, how are you planning on fucking me?","What are you gonna do to me?","So... what are you gonna do to me?","Tell me, what do you want to do to me?")" (twirl:"you smile","you moan seductively","you say").]
(if:$option is "oral")["(twirl:"You were so good with your tongue...","You did really well giving me oral...","I love how you went down on me...","$nng, I like how you licked me...","I liked how you went down on me...")" you (twirl:"moan","say").]
(if:$option is "slut")["(twirl:"I'm your little slut $now...","I'll be your good little bitch, I promise...","I'll be a good little slut...","I'll be an obedient little slut for you...")" you say.]
(if:$option is "hot")["(twirl:"You're so hot...","You're really hot...","I can't believe such a hot guy is gonna fuck me...")" you moan to (print:$npc's name).](set:$gain to 1)
(nl:2)(display:"gain his satisfaction")}(display:"sex transactional next")](display:"exhibitionist warning count")(replace:?text)[{(set:$scene's "events" to it + (a:"dirty talk"))
(set:$now to $time of (a:"this morning","this morning","today",(twirl:"tonight","this evening","tonight")))
(set:$pussy to (twirl:"pussy","tight little pussy","pussy","cunt","pussy","slit","pussy"))
(set:$nng to (twirl:"Fuck","Nngh","Mmm","Fuckkk","Oh my god","Fucking hell","Goddd","Oh my gawddd","Gosh","Nnnghh","Unngh","Nnnngh","Nnn","Mmmmnn"))
(set:$cock to (twirl:"cock","rod","schlong","cock","dick"))
(set:$his_name to $npc's name)
(set:$options to (twisted:"slut","oral","do","had orgasm","need orgasm","satisfy","cum","nipples","wet","dominant","old","nerdy","need","hot","blowjob"))
(if:$character's masculinity > 60)[(set:$options to it - (a:"slut","old","nerdy"))]
(unless:$scene's events contains "oral")[(set:$options to it - (a:"oral"))]
(unless:$scene's events contains "blowjob")[(set:$options to it - (a:"blowjob"))]
(if:$character's "arousal" < 6)[(set:$options to it - (a:"nipples"))]
(if:$lubrication < 9)[(set:$options to it - (a:"wet"))]
(if:$orgasms < 1)[(set:$options to it - (a:"had orgasm"))]
(unless:$npc's tags contains "chad" or $npc's "tags" contains "bully" or $npc's "tags" contains "jock")[(set:$options to it - (a:"dominant"))]
(set:$option to 1st of $options)
(if:$option is "need")[($bimbo_dialogue:[(twirl:"Hehe, I need your big, thick cock sooo badly right now... like, it's all I can think about!",
"Ohmygawd, like, please stick it in me! I'm just dying to be filled with your big, throbbing meat... I wanna feel it stretch me all out!",
"Mmm, baby, just thinking about your big hard dick is making me so wet... I need it inside me sooo badly!",
"Oh please, I need you to fuck me... my slutty little pussy is begging for you!",
"Hehe, I'm such a dumb slut, only good for taking your cock... please, I need it!",
"Your cock... it's sooo big! Ugh, I just wanna feel it splitting my tight pussy open!",
"Please... fuck me hard! I promise I'll be a good slut for you!",
"Mmm, big boy, you gonna give me your thick, hard cock? I... I need it so badly!",
"My bimbo pussy needs your cock! Please, fuck me like the slutty little airhead I am!",
"Gosh, I'm such a dumb slut... all I can think about is having your big cock inside my tight, wet pussy!","Ohmygod, I like totally *need* you to fuck me, like right now!","I can't even think straight until you stuff that big cock in me, teehee!","Gosh, I really, really need a good pounding. Can’t you tell how wet I am?!","Like, I totally need a good, hard dicking down, ya know? Hehe!","Mmm, I would just die if you don't dick me down hard and fast, baby!","Ohmygawd, I sooooo fucking need to be pounded, like right now!","I totally need your massive cock in me, no, like really bad!","Ohmygod, I'm dying for your thick cock! It's all I can think about!","Teehee, please... fuck me! Make my bimbo dreams come true!","Gosh, what are you going to do to me? I need a good dicking down like you can't even imagine!","Mmm, I need to be filled up so badly! Can you do that for me?","Like, I need you soooo bad! All that waits to feel is your hard cock deep in me!")]) you (twirl:"moan","say, seductively","murmur","breathe","say","beg for it","beg","whine, sexily").]
(if:$option is "nerdy")[($bimbo_dialogue:[(twirl:"Ohmigaaawd, treat me like one of your little hentai sluts! Mmm, I wanna be your dirty anime girl!","Fuuuck me like those sluts you jerk off to in pornos! God, make me scream like they do!","Please, treat me like those bouncy tits girls in your hentai! I want to be your little cum dump!","Use me like your personal fuck toy! Make me your filthy little ona-hole!","I want you to treat me like those slutty girls you watch on the internet! Use my body however you want!","I bet you have a filthy little fleshlight at home… well, pretend I’m that! Fuck me like the toy I am!","Please fuck me, I wanna be your UwU slut!","Oh god, make me your anime cum dump! Treat me like those hentai sluts, please!","Mmm, treat me like your hentai whore! Fill me up like they do in those dirty videos!","Ohmigawd, you filthy nerd, treat me like one of your hentai girls and fuck me stupid!","Eeek, just use me like your personal sex doll, baby! I wanna be your brainless little fucktoy!")]) (twirl:"you say to the nerd","you mewl","you say, crossing your eyes intentionally","you make a little ahegao face for him").]
(if:$option is "blowjob")[($bimbo_dialogue:[(twirl:"Mmmm, did you like it when I had your big, hard cock in my mouth? Hah~ tell me how good I did, baby!","Hehe, did you like that? My mouth was made to suck your cock! Be honest, bet I could do better~","Aww, did you like it when I slurped and sucked on your fat cock, baby? I love tasting you all over. 😋","Oh, fuck! Was that good for you? Tell me how much you loved it, I need to hear you say it!","Heehee, your cock is sooo big and tasty! Did you like how I slobbered all over it?","Mmm, baby, tell me how much you loved my sloppy, wet blowjob! I can't get enough of your taste. 😋","Did my naughty mouth make you feel good, big boy? I love how you taste on my tongue!","Mmmm, did you like how deep I took your cock in my throat? Tell me more, I wanna hear you say how good I did!","Hehe, was that the best blowjob you've ever had? I wanna hear you moan my name, baby!","Ohmygawd, tell me how good it felt to have my lips wrapped around your cock! I'm such a dirty girl, and I need to hear you say it!")])]
(if:$option is "old")[($bimbo_dialogue:[(twirl:"Ohmygosh, are you gonna, like, be my daddy?! Hehe, 'cause I need a big strong man to take care of me! *giggle*","Can I call you daddy? Hehe, it makes me so wet thinking about it!","Mmm, there's soooomething reaaally sexy about older guys... you’re all confident and stuff, it makes me, like, sooo horny!","I like older guys 'cause you totally know what you're doing... and I just wanna be your dirty little girl!","Do you like having a young, dumb slut like me to fuck? Eee, I bet you do! 😝","I bet you're gonna, like, live longer having a sexy little slut like me to fuck, hehe~","Hehe, are you, like, excited to fuck my tight, wet young pussy? 'Cause I can't wait to have your big cock in me!","Mmm, I want to be dominated by a big, strong older man... show me how a real daddy fucks!","Ohmygawd, I love being a dirty little slut for an older man! It's, like, soooo hot!","Hehe, you're gonna make me your little fuck toy, aren't you? I love being used by a big, strong daddy!","Can I call you daddy while you ruin my tight little pussy?","Older guys are just sooo sexy... you know exactly how to make a slut like me squirm!","I love it when older men take control... you’re gonna show this little bimbo how it's done, right?","You like having a young, dumb slut like me to fuck? Mmm, I love being your naughty toy!","Oh, I bet you feel sooo alive, screwing a little fucktoy like me, don’t you?","You excited to fuck my dripping wet bimbo pussy? I need you sooo bad, daddy!","Mmmm, I want to be dominated by an older man... treat me like the dumb slut I am!","Ohmygawd, daddy, are you gonna fuck your little airhead so good?","I’m your naughty bimbo! You gonna use me like the dirty little slut I am?")]) (twirl:"you moan","you say","you talk dirty")(if:(Random:1,2) is 1)[ to (display:"npc pronoun")].]
(if:$option is "dominant")[($bimbo_dialogue:[(twirl:"Ohmygod, like, I can't wait to feel your big cock inside me! Heehee, I'm soooo ready to be your little fucktoy!","Hehe, I'm such a dirty bimbo, aren’t I? Just say the word and I'll do anything for your cock!","Ooh, you make me sooo horny! Please, fuck me like the dumb slut I am! I’ll do anything for you!","Ughhh, I need you soooo bad! My pussy's dripping just thinking about your thick cock! Fill me up, I’m just your stupid little fucktoy!","Mmm, I can't wait to feel every inch of you! Make me your tight little slut! Use my bimbo body however you want!","Aww, you make me feel sooo naughty! I’m just a dumb bimbo who needs your cock to think straight!","Ohmygod, I'm soooo wet! Please, please fuck me hard! Make me your brainless slut! I need it so bad!","Ohhh, you're such a strong man, I just wanna be your little toy and make you feel soooo good!","Mmm hmm, I’ve been such a naughty girl, don’t you wanna show me just how good you can be? Use me all you want!","Oooh, I wanna be your filthy little whore, show me how it feels to be fucked by a real man!","My head's all fuzzy and empty just cuz of you! I can't wait to be your dumb little sex toy!","I wanna see that big cock of yours, show it to me and let me drool all over it! Please use my mouth like your fuckhole!","Mmmm, I need you to stretch me open and make me take it all! I’ll be your pretty little cumdump! Just make me feel so stupid and used!")])]
(if:$option is "wet")[($bimbo_dialogue:[(twirl:"Ohmigawd, I’m like, sooo wet for you already! Hehe, can you feel how juicy and ready I am? *giggle*","Mmm, you’re making me soooo soaked! Like, I can’t even handle it, big boy!","Ohhh, you're making me drip everywhere! Hehe, can't wait for you to see how soaked I am!","Ooo, you're so hot! Just thinking about you is making me sooo wet! *giggle*","Mmmm, you’re making me all slippery down there! Can you feel it? *giggle* Just for you, baby!","Hehe, I’m unbelievably wet, like, all for you! *giggle* You're sooo hot it's driving me crazy!","Mmm, I’m just dripping for you, it’s so embarrassing! But I love it! *giggle*","Ohhh, you make me sooooo wet, I can't even think straight! Hehe, I’m just a sopping mess for you!","Mmm, baby, I’m like, totally soaked! You make me feel soooo good! *giggle*","Hehe, just looking at you gets me dripping! I’m ready to be taken, big boy! Can't wait to show you how wet I am!","Oooo, you make me soooo juicy! Hehe, I can’t stop dripping for you, it feels sooo good!","Mmm, I’m soaking wet!","Oh my gosh, I'm soooo wet for you! It's like, dripping down my legs! Heehee, you're making me such a naughty girl!","God, I'm like a faucet down there! Keep talking to me like that and I'll be a total puddle! 😋","Mmm, I can't believe how wet I am! I need you so bad, baby! Hehe, I'm a soaking mess!","Oh wow, you’re totally in control and I'm just a little, helpless, dripping mess for you! Hehehe!","Hehe, my pussy's like, a waterfall just for you! You deserve to make me feel this good!","Oooh, you make me sooo wet! Look at how soaked my panties are! I can't help it, you’re just soooo hot… 😝","Oh my god, I'm like, a wet slut just for you! Hehe, you make me wanna be soooo bad!","Mmmm, you're making me soooo wet! You make me drip like a broken faucet, hehe!")])]
(if:$option is "nipples")[($bimbo_dialogue:[(twirl:"Ohmygawd, look at my nipples! They’re like soooo hard, I could cut glass with them!","Heehee, my nipples are rock hard just for you! You make me soooo turned on!","Mmm, my nipples are soooo stiff! I can't believe how good you make me feel!","Hehe, you see how perky my nipples are? I'm, like, totally ready for you!","Mmm, my nipples are soooo pointy right now, baby! You’re making me super horny!","Ohhh, my nipples are so hard they hurt! I need you to come and play with them!","Hehe, my nipples are like, diamond hard! Wanna come and feel them for yourself?","Mmm, look at my hard nips! You make me soooo wet, they can't help but poke out!","Ohmygawd, my nipples are soooo hard! I just wanna rub them and make them feel even better!","Eee, my nipples are stiff and aching! I can't wait for you to suck on them and make me moan!")])]
(if:$option is "hard")[($bimbo_dialogue:[(twirl:"Ohmygod, your cock is sooo hard! I just wanna drool all over it and feel it throb!","Heehee, look at how rock hard your cock is! I can't wait to have that stiffness inside me!","Mmm, your cock is so hard, it's driving me crazy! I just wanna lick it and feel every inch of its hardness!","Ooo, your cock is like a freakin' steel rod! I’m dripping just thinking about it!","Hehe, baby, your cock is soooo hard! I just wanna wrap my lips around it and taste all that firmness!","Ohhh, your cock is insanely hard! I can't keep my hands off it, it feels soooo good!","Mmm, I love how your cock is throbbing so hard! My legs are shaking just thinking about it!","Hehe, your cock is like a rock, it's making me sooo wet! I love how stiff it is!","Ohmygod, your cock is so hard it feels like it could break something! I just want to milk it dry!","Mmm, your cock is hard and throbbing! I could stare at it all day, it's making me sooo horny!")])]
(if:$option is "cum")[($bimbo_dialogue:[(twirl:"Hehe, I wanna make you cum sooo hard! Like, I wanna drain your big juicy balls until they're totally empty!","Ooo, I can't wait to make you cum, baby! I'm gonna milk you dry!","Mmm, I wanna see you explode! I wanna drain your balls until you’re totally spent!","Hehe, I wanna be your dirty little cumslut and make you shoot your load soooo hard!","Mmm, I can't wait to milk you dry! I'm gonna suck and fuck you until you can't take it!","Ohmygawd, I wanna make you burst! Let me drain every last drop from your balls!","Hehe, I wanna be the best fucktoy and make you cum harder than you've ever cum before!","Mmm, I can't wait to make you jizz!","Ohhh, I wanna see you gush! Let me be the dirty bimbo who makes you cum so hard!","Hehe, I wanna drain your balls dry, baby! Give me all your cum, I need it so bad!")]) you tell (twirl:"him",$npc's "name").]
(if:$option is "satisfy")[($bimbo_dialogue:[(twirl:"Hehe, do you think a dumb little bimbo like me can really satisfy a big, strong man like you?","Mmmm, I just wanna make you feel soooo good...","Heehee, am I the best little toy for you? I love being used by big, strong men!","Ohmygawd, do you think this tiny slut can really make you cum hard? *giggle*","Mmm, I’ll do anything to make you feel amazing... do you think a naughty bimbo like me can please you?","Hehe, am I the dirtiest little slut you’ve ever had? I love making men feel sooo good!","Ohhh, do you think a silly, airheaded bimbo like me can really satisfy you?","Mmmm, I wanna make you moan and groan... do you think I can handle all that big cock of yours? *giggle*","Hehe, I'm such a horny little bimbo! Think I can be the best you’ve ever had?","Heehee, I'm gonna make you feel soooo good, baby! I'm your dirty little slut and I’ll do anything to satisfy you!","Ohmygawd, I'm gonna fuck you so hard! You're gonna love how tight and wet I am!","Heehee, I'm gonna satisfy you in ways you never even dreamed of! You're gonna be addicted to my pussy!","Ohmygawd, I'm gonna take you so deep inside me, you'll never wanna leave!")]) you say to (twirl:"him",$npc's "name").]
(if:$option is "need orgasm")[($bimbo_dialogue:[(twirl:"Ohmygawd, I need to cum so bad! *giggle* Please, make this dumb slut cum all over your cock!","Please, please make me cum, I’m begging you! Ahhh~ 🥵","Hehe, I need to cum soooo fucking bad! I can't take it! Make me squirt all over you! *giggle*","Ohmygawd, baby, I need to cum soooo bad! Please, please make me cum! I’m begging you! Teehee, I'm your desperate little slut!","Ooo, I’m like, sooo desperate to cum! My body’s begging for it! Please, please make me feel good!","Mmm, I need to cum so bad! I can’t think of anything else! Please, make this bimbo slut lose her mind!","Ohmigawd, I’m aching to cum! Please, please, I need you to touch me and make me scream!","Hehehe, I’m like, soooo wet and horny! I need to cum so bad! Please, make me your little cumming slut!","Ohhh, I’m soooo desperate for it! I need to feel you making me cum! Please make me your screaming, messy bimbo!")]) you beg.]
(if:$option is "had orgasm")[($bimbo_dialogue:[(twirl:"Ohhhmygawd! You made me cum sooooo hard with your tongue!","Ahhh, your tongue made me explode! I can't believe how strong my orgasm was!","Ohmygod, y-you made me, like, cum soooo hard! *giggle* My bimbo brain was totally melted! I’m such a silly mess now! Thank you, thank you!","Ahaha! You made me cum my brains out, like, nothing's left! I’m just a pathetic little bimbo for you!","Ohmygawd, I came sooo hard, you made me a giggly stupid mess! Th-thank you, thank you!","Mmm, you made me cum so hard, I think my brain evaporated! Hehe, I’m your dumb little bimbo now!","Eee, you made me cum so hard, hehe, my brain's melted! Thank you, Daddy, I'm just your thankful little bimbo!")]) you (twirl:"moan","coo").]
(if:$option is "do")[($bimbo_dialogue:[(twirl:"Ohmygawd, what’re you gonna do to me, big boy? Heehee, I'm dying to know! 😋","Mmm, tell me what you’re planning, baby! I want to hear how you’re gonna make me scream!","Hehe, what naughty things do you have in mind for me? I can’t wait to find out!","Ooh, big boy, what’re you gonna do to this hopeless little bimbo?","Mmm, what’s your plan, babe? I need to know how you’re gonna use me!","Heehee, tell me, what’re you gonna do to me, daddy? Make me all hot and bothered!","Ohmygawd, big boy, what’re you planning to do to me? I’m soooo curious!","Mmm, what naughty things do you have in store for me? I can’t wait to hear!","Hehe, what’re you gonna do to me, hmmm? Bet you have some dirty ideas!","Ooo, tell me what you’re gonna do to me, baby!")]) (twirl:"you smile","you moan seductively","you say").]
(if:$option is "oral")[($bimbo_dialogue:[(twirl:"Ohmygawd, you were soooo good with your tongue! Hehe, you totally made me melt, I couldn’t even handle it! 😋","Mmm, you know just how to use that tongue to drive me wild! I loved every second of it!","Hehe, you're sooo good with your tongue! I was, like, losing my mind from how amazing it felt! 😍","Ohhh, you’re such a pro with that tongue! I can still feel it, hehe! You made me soooo weak!","Mmm, you totally knew how to make me feel incredible with your tongue! I just can't stop thinking about it!","Hehe, your tongue is magical! You had me squirming and begging for more!","Oh, you made me feel soooo good with that tongue! I was, like, floating on cloud nine! 😋","Mmm, you used your tongue sooo perfectly! I was moaning and giggling like crazy because of you!","Ohmygawd, you're, like, the best with your tongue! I was totally out of control with how good it felt!","Heehee, your tongue was amazing! I loved every second of it, you totally drove me crazy! 😆")]) you (twirl:"moan","say").]
(if:$option is "slut")[($bimbo_dialogue:[(twirl:"Ohmygawd, I’m gonna be your perfect little slut! I’ll do anything to make you happy, baby!","Heehee, I'm just your dumb little slut, aren’t I? Use me however you want!","Mmm, I'm gonna be your obedient little whore, you can do anything you want to me!","Hehe, I'm just a stupid bimbo, and I'll do whatever you say, master!","Oh, fuck! I’m nothing but your obedient slut, ready to follow all your commands, baby!","Awww, I'm just a brainless little fucktoy, aren’t I? Hehe, I love being your dirty little slut!","Mmm, tell me how to be the best little slut for you! I'll do anything you want, my body is all yours!","Hehe, I'm just a vapid bimbo, made to be your sexy little slut! Use me, baby!","Ohmygawd, I'm your devoted little slut! I'll do anything to please you, master!","Mmmm, I'm just here to be your cumdump, nothing but a dumb little slut for you!")]) you say.]
(if:$option is "hot")[($bimbo_dialogue:[(twirl:"Ohmygawd, you're like, soooo hot! I can't stop staring at you! 😍","Mmm, you're making me soooo wet just looking at you! You're such a hunk!","Hehehe, you're totally the hottest guy I've ever seen! I’m, like, obsessed with your body!","Ooo, you’re so sexy, baby! I can’t believe how lucky I am to be with you!","Mmm, you’re soooo hot I just wanna lick you all over!","Oh my gosh, I can’t get over how insanely hot you are! Every inch of you is just... mmm!","You're making me soooo horny just by standing there! How can anyone be this hot?","Hehe, I get all tingly just looking at you! You're like, the definition of sexiness!","Mmm, you’re sooo good-looking, babe! I can’t even think straight!","Heehee, you’re the hottest stud ever! I just want to worship every inch of your body!")]) you moan to (print:$npc's name).](set:$gain to 3)
(nl:2)(display:"gain his satisfaction")}(display:"sex transactional next")](if:$his_choice is "creampie" and (checkdm:$npc,"id","is","bruce") and $office_events contains "doesnt have sphere")[(display:"bruce fuck give sphere")](else:)[(twirl:"Then he leaves.","With that, he's gone.","Then, he leaves.","Satisfied, he leaves.")](unless:$cum_text is 0)[(if:$cum_text contains "clothes" and (datanames:$outfit) contains "colors")[(nl:2)(display:"cum on clothes")(if:(datanames:$outfit) contains "image")[<div class='top_left_pic'>(print:$outfit's "image")</div>]]](nl:2)(display:"proposition sex check shame")(display:"sex transactional end links")(display:"npc describe cock")(twirl:"You tell him you're not interested.","He's quite crestfallen by the way you look at his $cock.","After seeing his $cock, you make an excuse and say you don't actually want to go through with this.")(set:$minigame's difficulty to 0)(set:$minigame's "masculinity level" to 100)
(set:$case to "upper")(display:"npc pronoun")(print:" leaves.")(set:$shame to 0)(display:"sex transactional end links")*(twirl:"I wouldn't be able to walk straight for a while after that...","That thing? INSIDE ME? No thanks...","Yeah... that thing could put me in the hospital.","No. Thanks. Just... no.","My cervix hurts just LOOKING at it...")*
(display:"npc describe cock")(twirl:"Honestly a bit intimidated by","Not interested in getting railed by","No feeling like getting pounded by") (set:$case to "lower")(display:"npc possessive pronoun") $cock, you tell him you've had second thoughts.(set:$minigame's difficulty to 0)(set:$minigame's "masculinity level" to 100)
(set:$case to "upper")(display:"npc pronoun")(print:" leaves.")(set:$shame to 0)(display:"sex transactional end links")(if:$orgasms > 0)[(set:$character's "arousal" to 0)(display:"refresh stats")]<div class='options'>(if:$character's "status" is "cum" and $location_params's tags contains "clean")[(link:"Clean yourself up")[(if:$text contains "cumdump")[*(twirl:"Sorry, that's way too much cum to clean up here.","You've been turned into a cumdump, no way you can clean up easily.","You think you can easily just wipe up that much cum???","Sorry, there's wayyy too much jizz on your face to clean here.")*](else:)[(set:$character's "status" to ($core_female_status:))(display:"refresh portrait")]]](if:$outfit's "tags" contains "nude" and not ($sex_outfit is "none"))[(link:"Get dressed")[(if:$sex_outfit is any of (a:"torn","cum-stained"))[(set:$next to "sex transactional end sneak")](else:)[(set:$outside_outfit to $sex_outfit)(display:"load specific outfit")(set:$next to "sex transactional end dress")](display:"change screen")]](else-if:$sex_outfit contains $character's id)[(set:$outside_outfit to $sex_outfit)(display:"load specific outfit")(set:$next to "sex transactional finish")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")](else:)[(display:"apply mens clothes")(set:$next to "sex transactional finish")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")]</div>{[<div class='options'><span class='shadow'>Getting changed...</span></div>]<message|(live:1s)[(replace:?message)[(display:"clothes sound")<div class='options'><span class='shadow'>(if:(datanames:$outfit) contains "tags")[(if:$outfit's tags contains "collar")[Adjusting collar...](else-if:$outfit's tags contains "straps")[Adjusting straps...](else-if:$outfit's tags contains "garter")[Adjusting garter...](else-if:$outfit's tags contains "stockings")[Adjusting stockings...](else-if:$outfit's tags contains "zipper")[Pulling up zipper...](else-if:$outfit's tags contains "long changing")[This takes a really long time to put on...](else-if:$outfit's tags contains "strings")[Tying strings...](else:)[Finishing up...]</span></div>]](stop:)](live:3s)[(replace:?message)[
(display:"thought clothes")
<div class='options'>[]<options|(set:$next to "sex transactional finish")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")<div>](stop:)]}{
(set:$actions to (a:"grope","comment","kiss","strip","insert","oral","ask strip him","ask strip you","unzip","ask blowjob"))
(if:$npc's "tags" contains "gentleman")[(set:$actions to $actions + (a:"comment","oral"))]
(if:$scene's "status" is "present")[(set:$actions to $actions + (a:"spank","insert","insert"))]
(if:$npc's "personality" < 5)[(set:$actions to $actions + (a:"ask blowjob"))]
(if:$npc's "tags" contains "chad")[(set:$actions to $actions + (a:"ask strip you","strip","ask strip him"))]
(if:$npc's "tags" contains "fuckboy")[(set:$actions to $actions + (a:"ask strip you","strip","ask strip him"))]
(if:$npc's "tags" contains "creepy")[(set:$actions to $actions + (a:"kiss","grope","ask blowjob"))]
(if:$npc's "cock" is "out")[(set:$actions to $actions - (a:"ask strip him","unzip"))]
(if:$character's "pussy" is "accessible")[(set:$actions to $actions - (a:"ask strip you","strip"))](else:)[(set:$actions to $actions - (a:"insert","oral","grope"))]
(if:(checkdm:$npc,"ground rules","contains","no bj"))[(set:$actions to $actions - (a:"ask blowjob"))]
(if:length of $actions > 1)[(set:$actions to (twisted:...$actions))]
(set:$actions to $actions - $scene's "events")
(display:"sex transactional check oral")
(unless:$reason is "none")[(set:$actions to $actions - (a:"oral"))]
(unless:$npc's "cock" is "out")[(set:$actions to $actions - (a:"insert","ask blowjob"))]
(if:length of ($scene's events) > 0)[ (if:($scene's events)'s last is "insert fail")[(set:$actions to (twisted:"ask blowjob","oral"))]]
(if:$scene's "events" contains "ask blowjob" or $scene's "events" contains "blowjob")[(set:$actions to $actions - (a:"ask blowjob"))]
(set:$action to $actions's 1st)
(if:$action is "ask strip him")[(set:$continue to "false")(display:"sex transactional ask strip him")]
(if:$action is "strip")[(set:$continue to "false")(display:"sex transactional he strips you")]
(if:$action is "ask strip you")[(set:$continue to "false")(display:"sex transactional request strip")]
(if:$action is "unzip")[(set:$continue to "false")(display:"sex transactional he gets out cock")]
(if:$action is "comment")[(set:$continue to "false")(display:"sex transactional comment")]
(if:$action is "grope")[(set:$continue to "false")(display:"sex transactional grope")]
(if:$action is "kiss")[(set:$continue to "false")(display:"sex transactional kiss passive")]
(if:$action is "oral")[(set:$continue to "false")(display:"sex transactional oral")]
(if:$action is "ask blowjob")[(set:$continue to "false")(display:"sex transactional ask blowjob")]
(if:$action is "insert")[(set:$continue to "false")(replace:?options)[<div class='options'>(link:"Next")[(display:"sex transactional insert attempt")]</div>]]
}(replace:?options)[
"(twirl:"Get my cock out,","Please get my cock out,","Now, unzip my pants,","Now, take my cock out,","Go on, get my cock out,")" he (twirl:"commands","instructs","tells you","whispers in your ear").(set:$command to "you unzip")<div class='options'>(link:"Obey")[(display:"sex transactional get out cock")]</div>](display:"breathing ambience"){
(if:$npc's "tags" contains "gentleman")[
(if:$npc's "age" > 50)[
"(twirl:"I say... quite the adventurous approach to underwear... none...",
"Good heavens... in my time women would never... though I must say...",
"My word... quite the liberal interpretation of proper dress...",
"Rather scandalous... reminds me of Paris in the seventies...",
"Goodness gracious... what would your mother say... though I heartily approve...",
"Well! I do declare... quite the free spirit...",
"Such a modern approach to traditional values...",
"In my day, only the most daring debutantes would... ahem...",
"My my... they certainly don't make them like this anymore...",
"How delightfully uninhibited... makes me feel young again...",
"Reminds me of my more adventurous days in Monte Carlo...",
"Such boldness... *adjusts collar* ...quite refreshing...",
"A throwback to the more liberated seventies, I must say...")"
](else:)[
"(twirl:"Taking quite the continental approach to dress, I see...",
"Rather European in your... preparations...",
"Ah, embracing that Mediterranean sensibility...",
"I see you prefer the natural approach... how refreshing...",
"Quite the libertine spirit... I heartily approve...",
"My... eschewing certain traditions most delightfully...",
"A rather bold choice... though who am I to complain...",
"Taking minimalism to its logical conclusion...",
"Embracing that joie de vivre approach to dress...",
"Quite the adventurous spirit underneath it all...",
"I see you're a woman of sophisticated tastes...",
"Such a delightfully uncomplicated approach...",
"Rather reminds me of my time in the South of France...")"
]](else-if:$npc's "tags" contains "chad" and $npc's "generation" is "genz")[
"(twirl:"YOOO no undies check absolutely BUSSIN frfr no cap...",
"Sheeeeesh you actually wild for this one respectfully...",
"Nahhh this fit goes CRAZY fr fr...",
"Zero hesitation straight BUSSIN respectfully...",
"Based and commando-pilled, I fuck with the vision...",
"This the most valid shit I seen all week no cap...",
"You really said 'fuck them undies' and I respect it fr fr...",
"On god you got that freaky rizz going CRAZY...",
"Certified gyatt moment no kizzy...",
"Commando check APPROVED respectfully sheeesh...",
"Nah this ain't bussin, this BUSSIN BUSSIN...",
"Real hot girl shit frfr no cap...",
"The urge to act up intensifies respectfully...",
"Actually insane w it, straight thermal no cap...",
"Gyatt AND no undies? You trying to catch a case fr...")"
](else-if:$npc's "tags" contains "chad")[
"(twirl:"No panties? That's what real females do when they meet an alpha...",
"Fuck yeah, completely bare under there like a good girl should be...",
"Someone came ready to submit to a real man...",
"That's what I like to see - no barriers between you and a real man...",
"No underwear? Guess you know your place already...",
"Presenting yourself properly - completely bare underneath...",
"Good girl, staying accessible like you're supposed to...",
"Already stripped of panties? You know what alphas deserve...",
"Nothing underneath? That's a female who knows her role...",
"Bare pussy ready for inspection - that's what I like to see...",
"Coming prepared like a proper breeding toy...",
"No panties? Someone knows how to serve properly...",
"That's right - staying ready for whenever I want to use you...")"
](else-if:$npc's "tags" contains "fuckboy")[
"(twirl:"Yooo, straight commando? You really tryna get this dick huh...",
"Damn shawty, pussy already out and ready to play...",
"No panties? You really are a certified freak freak...",
"Bare coochie alert! You nasty for this one fr...",
"Zero panties AND that ass? You trying to catch these kids...",
"Looking like a whole snack with that bare pussy...",
"Deadass got that coochie ready for action...",
"My type fr - coming through with no panties like a real one...",
"Raw pussy energy, that's what I'm talking about...",
"Already naked underneath? You valid AF for this...",
"Ain't even trying to hide that pussy, I respect it...",
"Showing up commando? You finna make me act up...",
"That bare pussy bout to make me risk it all fr...")"
](else-if:$npc's "tags" contains "creepy")[
"(twirl:"Ohhh... such a dirty little slut, no panties at all...",
"Mmm... completely bare underneath, just like I fantasized...",
"Such a naughty girl, exposing your bare pussy like this...",
"Being extra dirty today, showing me that naked cunt...",
"Presenting your bare holes like a proper whore...",
"That's what I like to see - completely exposed underneath...",
"Showing off that bare pussy like the slut you are...",
"Mmm... nothing hiding that dirty little cunt...",
"Just like the whores in my fantasies - totally exposed...",
"Such a filthy girl, showing me everything...",
"Exposed and ready like a proper cumslut...",
"That naked pussy is begging for attention...",
"Being such a dirty exhibitionist for me...")"
](else-if:$npc's "tags" contains "selfish")[
"(twirl:"Finally, a girl who knows not to block access to what's mine...",
"At least you know to keep your holes accessible...",
"Good - no panties getting in my way...",
"Presenting your bare cunt properly - about time...",
"Smart enough to keep that pussy ready for use...",
"That's right - keeping yourself available...",
"At least you know how to present yourself properly...",
"Finally someone who understands proper preparation...",
"Bare and ready - exactly how you should be...",
"No panties? At least you got that right...",
"Coming prepared - maybe you're not totally useless...",
"Keeping that pussy accessible - good choice...",
"Someone finally understands proper presentation...")"
](else:)[
"(twirl:"Damn, completely bare under there? You're full of surprises...",
"No panties? You really know how to drive a man wild...",
"Fuck, that bare pussy is making me throb already...",
"Nothing underneath? You really came to play...",
"Someone's feeling extra naughty today...",
"Showing me everything... you little tease...",
"That bare pussy is begging for attention...",
"Commando? You really know how to get a guy going...",
"Everything exposed... you're trying to kill me...",
"Fuck, you really know how to make a guy lose control...",
"No panties? You're gonna make me act up...",
"Being such a tease with that bare pussy...",
"Everything on display... you're dangerous...",
"Nothing underneath? That's hot as fuck...",
"Bare pussy ready for action... fuck me...",
"Going commando? Someone came to party...",
"You naughty girl, no panties at all...",
"Damn, easy access... I like your style...",
"Fuck, that's so hot... nothing in the way...",
"Someone's not playing around tonight...",
"Just raw pussy under there? Goddamn...",
"Nothing but bare skin underneath... nice...",
"Now that's what I call being prepared...",
"Completely bare? You little minx...",
"Commando style... that's fucking sexy...",
"Damn girl, you really want it bad...",
"No barriers... just how I like it...",
"Ready for action at a moment's notice...",
"Fuck, that's getting me all worked up...",
"Someone's feeling frisky tonight...",
"You're gonna make me lose my mind...",
"That's one way to get my attention...",
"Straight to business... I like that...",
"Making it easy to slide right in...",
"Now that's what I call convenient...",
"You really know how to excite a man...",
"Bare and ready... that's fucking hot...",
"Nothing but skin on skin... perfect...",
"Someone's feeling extra spicy today...",
"Fuck, you're making this easy for me...",
"That's a pleasant surprise underneath...",
"Going commando was the right choice...",
"Now that's proper preparation...",
"Easy access is always appreciated...",
"You really know what guys like...",
"Perfect... nothing in our way...",
"Someone's ready for some fun...",
"That's one way to speed things up...")"
] (twirl:"he says, noticing your lack of underwear",
"he says, realizing you're completely bare underneath",
"he says when he realizes you're not wearing anything under your clothes").(nl:2)
(if:(is_exhib:))[
(twirl:"You spread your legs teasingly.",
"You bite your lip and wiggle your hips.",
"You give him a naughty wink.",
"You spread yourself open.",
"You run a finger along your slit.",
"You shake your ass playfully.",
"You show off deliberately.",
"You touch yourself teasingly.",
"You grind your hips, slowly.",
"You spread yourself wider.",
"You bite your lip seductively.",
"You play with yourself.",
"You pose, provocatively.",
"You love showing off!")
](else:)[
(twirl:"You blush.",
"You look away shyly.",
"Your cheeks burn red.",
"You bite your lip.",
"You look down shyly.",
"Your heart races.",
"You tremble slightly.",
"You giggle nervously.")
]
}{
(if:$not_wearing_underwear and (not ($events contains "underwear comment")))[(nl:2)(display:"no underwear comment")(set:$events to $events + (a:"underwear comment"))]
}{
(replace:?options)[(if:$outfit's "tags" contains "nude")[You're already naked.](else:)[(display:"sex transactional check clothes tear")(if:$tear is "no")[(set:$case to "upper")(display:"npc pronoun") (twirl:"removes","takes off","strips you of") your (print:$outfit's "description").](display:"no underwear comment make")](display:"strip")
(display:"sex transactional option links")](display:"breathing ambience")
}(replace:?options)[(display:"npc describe outfit")"Why don't you take off $outfit_desc?" (display:"npc pronoun") says.
<div class='options'>(set:$link_text to "Obey")(if:$character's "masculinity" < 60 and $npc's age > 39)[(set:$link_text to (twirl:"Yes, sir","Obey","Obey","Yes, daddy"))](link:$link_text)[(display:"sex transactional strip")]</div>](display:"breathing ambience"){(display:"npc describe cock")(set:$time_taken to 3000)
(set:$npc's "cock" to "out")(replace:?options)[<div class='options'><mark>(text-style:"fade-in-out")[(set:$case to "upper")(display:"npc pronoun")(twirl:" starts unzipping"," reaches for his zipper"," starts unzipping his pants")...]</mark></div>]($play:"sound","unzip")(live:3000)[(set:$npc's appeal to (max:$npc's looks,(cock:"rating","npc")))(set:$npc's "events" to $npc's "events" + (a:"cock"))(replace:?options)[<div class='top_left_half'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")</div>(nl:2)(set:$case to "upper")(display:"npc possessive pronoun") $cock (twirl:"flops","thwaps","flops","swings") out(if:(Random:1,2) is 1)[, with (if:(twist:1,2) is 1)[a pair of (print:$npc's ballsdesc) balls](else:)[a (print:$npc's ballsdesc) (twirl:"ballsack","sack","pair of testicles")] hanging behind].
(display:"npc cock rating")(display:"npc screen update sex guy")(display:"sex transactional option links")](stop:)](display:"breathing ambience")
}{
($char_passage:"sex transactional grope",[(set:$grope to $character's "id" of (dm:
"alina",(twirl:"ass","tits"),
"cassidy","tits",
"ella","tits",
"jade","tits",
"jia","ass",
"lana",(twirl:"ass","tits"),
"liya","tits",
"mia",(twirl:"ass","tits"),
"rae","tits",
"scarlit","ass"
))],[])
}(replace:?options)[(set:$case to "upper")(display:"npc pronoun") starts (twirl:"groping","fondling") your (if:$grope is "tits")[(display:"describe breasts")(display:"describe breasts"){
(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to "Did you like letting him grope your " + (text:$breasts) + "?")
(set:$minigame's "masculinity level" to (max:60,$minigame's "masculinity level" - 5))}$breasts.](else:)[{(display:"describe butt")$butt.(display:"describe butt")
(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to "Did you like letting him grope your " + (text:$butt) + "?")
(set:$minigame's "masculinity level" to (max:60,$minigame's "masculinity level" - 5))}]
<div class='options'>(link:"Talk dirty")[(set:$option to "talk dirty")(display:"sex transactional grope react")](link:(twirl:"Just moan","Just endure it","Smile","Bite your lip"))[(set:$option to "moan")(display:"sex transactional grope react")]</div>]{(replace:?image)[(print: "<video disableRemotePlayback src='img/scenes/characters/" + $character's "id" + "/foreplay/grope " + $grope +".mp4' autoplay='' loop='' muted='' playsinline/>")]
(replace:?text)[(if:$option is "talk dirty")[(if:(is_bim:))[(if:$grope is "tits")[($bimbo_dialogue:[(twirl:"Mmm, oh fuck, yes! Heehee, you like my big tits?","Ahhh~! *giggle* Groping my tits, that's like... so hot!","Ooooh, god, yeah~! Mmmhmm, they're all yours, play with them more!","Aughh, fuckfuckfuck~! I'm such a tit slut for you...","Eeeeeep~! Mmm, you like how my nipples get all hard when you grope me?","Unngh~! Ehehe, get a good handful of my bimbo tits, I love it!","Aaugh~ *Giggle* Squeeze 'em more, I'm all hot and heavy just for you!","Oh fuck~! Hehe, pinch my nips, make me whimper like a good little bimbo!","Mmm, yes, ahh~! *Giggle* Make me bounce and jiggle for you!","Ahh~! Ehehe, I love it when you play with my tits, my nipples are so hard~","Ooooh~! Hehe, they're all yours, play with my big bimbo tits!","Mmmhmm~! Hehe, play with them more, they're all firm and pebbly, just for you!","Yeah, right there~! Hehe, you’re getting me all hot and bothered… pinch my nipples! *Giggle*","Oooh~ yesss, good boy, play with my big tits!, ahhn~ ❤️ *giggles*","Ohmigawd, yes, touch them, touch them! Mmmmm~, you like my big tits, huh?","Unghh, yeah, squeeze 'em! Ya like how soft these titties are? Ahhhn~! ","Mmmmm~ You're good at groping these big ol' knockers! Keep going, yess~!","Ohmigawd, you're making my nips so hard! Mmmmm~, that's it, squeeze my titties!", "Aaah~! Mmm, my titties love your touch, yes! Squeeze them harder!","*giggle* You like how my giant tits feel? Feels good titty fucking, huh? Ahh~!","Ohh~! Yes! Grope my tits! Ahhn~!","*giggle* Yesss, give my tits a good squeeze! Ahhn~","Mmm, my titties love your touch! *giggle* Don't stop! Ahhn~!","*giggle* Pawn my big tits! Ahhh~, love it when you do that!")])](else:)[($bimbo_dialogue:[(twirl:"Mmm, ahh! Hehehe, you like my big butt?","Ohhh, oh god! Mmmm~ yes!","Ahhh, spank me, daddy!","Ohhh, oh yeah! That feels soooo good!","Mmmm, m-more!","Ahnnn, ohmygod!","Mmm, you love my big booty, don't you?","Ooooh, spank me harder~","Ahh, yes! Mmm, oh!","Unghhh, feels so good!","Mmm, don't stop!","Ahn, spank me like the naughty girl I am!","Mmm, god, yes!","Ohhh, yesss! Grope my butt!","Mmm, harder!","Ah, oh! You like my big, round ass?","Mmm, fuck yes!","Ohhh, right there!","Mmmm, keep going!","Ahnnn, yes, yes!","Mmm, you’re making me so wet!","Ohmygod, spank me more!","Ahn, mmmm!","Ohhh, yes! Mmm, right there, baby!","Ahh, love it!","Mmm, can't get enough!","Oooohh~ aaah~ mmm, you like my big butt? Heehee~","Aahh, yeah, grope me harder! Mmm!","Uuuhhh~ spank me! I love it!","Oooh, mmm~ feels sooo good!","Aaah, my butt is all yours!","Mmm, squeeze it! Yes, just like that!","Ughhh~ ooo, you make me feel so naughty!","Mmmmm, I love it when you play with my ass!","Ohhh~ yess, give it a good spank!","Aaah, harder~ Mmm, I'm such a slut for you!","Oooh, mmm, it feels amazing!","Aaah, you got me moaning like a dumb bimbo~","Ugh, yes! Spank me more!","Mm, your hands on my ass drive me crazy!","Ahhh, ooh, oooh, mmm, ugh, spank me, baby!","Mmmm, feels sooo good, unghh, grab my big butt harder!","Ahhh, I love it when you squeeze my ass!","Ohhh, yeah, mmm, keep groping, baby, ooh!","Mmm, do you like my fat ass? Ooh, I'm such a naughty girl!","Ahhh, harder! Ooo, it feels so good!","Uuu, spank me, spank me! Mmm, yes, grab it more!","Mmm, harder, baby! Oooh, I love it!","Aaah, feels amazing! Grab my butt, it's all yours!","Ooh, yes, harder! Spank me like I'm your dirty little slut!")])]](else:)["(twirl:"Yeah,","Fuck yeah,","Mmm yes...","God, yes...","Fuckkk yes...","Nggh fuck yeah...") (if:$grope is "tits")[(twirl:"feel me up,","play with my titties,","take a nice big handful,","play with my tits, just like that","play with my tits,","I want you to play with my tits,","play with my boobies,","I hope you like my titties...","play with those titties...","play with them...","you like playing with these titties?","how do you like these tits?")"](else:)[(twirl:"feel me up,","play with my ass,","grab my ass,","feel my ass up...","play with my ass...","play with my ass, just like that...","play with my ass,","I hope you like my ass...","I hope you like my ass...","grab my butt, feel it up...","you like my big ass?","you like this fat ass?","You like this big, fat ass?")"] you (twirl:"moan","groan","say","moan","say").]](else:)[(if:(twist:1,2) is 1)[You](else:)["(twirl:"Nnngh...","Unngh...","Mmmmnn...","Nnngh-","Unngh...")" you] (twirl:"moan","groan","mewl","whimper","moan")(if:(twist:1,2) is 1)[ as (display:"npc pronoun") (twirl:"feels you up","gropes you","enjoys your body","plays with your body","gropes you")].](set:$sex_loop to "fondle loop " + $character's "id")(nl:2)(set:$gain to 1)(display:"gain arousal and lubrication")(display:"play sex loop")](replace:?options)[(display:"sex transactional option links")]}(replace:?options)[(set:$hands to $npc's "hands")(if:$npc's "kissing style" is "gross")[(if:(twist:1,2) is 1)[You're overwhelmed by the pungent scent, as ](else:)[(set:$case to "upper")](display:"npc pronoun") puts his $hands hands on you and leans in for a kiss.](else:)[(set:$case to "upper")(display:"npc pronoun")(print:$npc's "kissing style" of (dm:"normal"," leans in to kiss you.","dominant"," grabs you, pulling you in for a kiss.","weak"," leans in gingerly for a kiss.","aggressive"," pulls you in roughly for a kiss.","passionate"," takes you in his arms, leaning in for a deep kiss.","slobber","leans in to kiss you, quite eagerly."))]
<div class='options'>(link:"Push him away")[(set:$option to "refuse")(display:"sex transactional kiss passive react")](link:"Let it happen")[(set:$option to "let it happen")(display:"sex transactional kiss passive react")](link:"Kiss back")[(set:$option to "kiss back")(display:"sex transactional kiss passive react")]</div>](set:$scene's "events" to $scene's "events" + (a:"kiss")){(if:$option is "refuse")[{(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to (twirl:"At least you rejected his kiss.","You rejected him when he tried to kiss you, at least..."))
(set:$minigame's "masculinity level" to (min:100,$minigame's "masculinity level" + 5))}(replace:?image)[(print: "<img class='greyborder' src='img/characters/emotion/reject/" + $character's "id" + ".jpg' width='100%' height=auto>")](replace:?text)[You shake your head.(display:"breathing ambience")](display:"sex transactional next")](else:)[(display:"sex transactional kiss")]
}(if:(checkdm:$npc,"ground rules","contains","no bj"))[(display:"sex transactional oral")](else:)[(display:"npc describe cock")(replace:?options)[
(if:last of ($scene's "events") is "request oral")[(if:$reason is "unsatisfied")[(twirl:"He refuses,","He shakes his head,","He says he'd prefer not to,") (twirl:"and suggest you blow him instead.","and tells you instead to suck his $cock.","and instead asks you to give him a blowjob.","and says that blowing him would get his $cock nice and ready for your pussy.")](else-if:$reason is "already")[(twirl:"He says he already did that.","He says once is enough.","He says he's already done enough pussy-licking.")](else-if:$reason is "selfish")[(twirl:"He just shakes his head,","He says he doesn't feel like it,","He ignores your question,","He says no,","He says he'd rather not,") (twirl:"and tells you to give him a blowjob instead.","and instead asks you to blow him.","and says it's more fair to give him a blowjob, since you'll get pleasure from sex.")](else-if:$reason is "fuckboy")["(twirl:"Nah girl...","Nah I don't think so...","I'm thinkin' nah...") (display:"npc pronoun") says. "(twirl:"Why don't you blow me instead? Haah.","Why don't you give me a lil sucky suck instead?","Why don't you get me wet with your mouth?","Why don't you give my cock a lil' oral love instead?")" *(twirl:"What a fuckboy!","Such a fuckboy!","He's such a fuckboy!")*](else-if:$reason is "chad")[(twirl:"He shakes his head,","He just grins,","He laughs off your request,","He just chuckles,","He doesn't even respond to your request,","He doesn't even respond,") (twirl:"instead telling you to blow him.","instead instructing you to suck him off.","instead telling you to wrap your lips around his $cock.")(if:(twist:1,2) is 1)[ *(twirl:"He thinks he's too good for it...","He's such a chad...","He thinks he doesn't need to... not his responsibility.","He thinks he's better than me...","He thinks he's too good for it.")*]]](else:)[(set:$case to "upper")(display:"npc pronoun") (twirl:"asks","tells","asks") you to (twirl:"blow him","suck his $cock","give him a blowjob","service him with your mouth","suck his $cock").](display:"breathing ambience")
<div class='options'>(if:$character's "pussy" is "accessible")[(link:(twirl:"Persuade ","Convince ") + (twirl:"him to go down on you instead ","him to give *you* oral instead ") + "🍀")[(if:(is_pp:))[ *Something stops you... (People Pleaser Side Effect)* ](else-if:$character's "alcohol status" > 2)[ *You're too tipsy to refuse...* ](else:)[{(set:$blackjack_params to (dm:
"skill check","charm",
"skill check difficulty",((get_charm:) + 1) of (a:100,100,100,80,70,60,50,40,30,20,10,10),
"result passage","sex transactional persuade oral",
"backdrop type","picture",
"backdrop","<img class='greyborder' src='img/characters/nude/present/" + $character's "id" + ".jpg' width='100%' height=auto>"
))
(set:$blackjack_params's "bad icon" to "😒")
(set:$blackjack_params's "good icon" to "🍀")
(set:$blackjack_params's "difficulty factor" to "your charm 🍀")
(if:$npc's "tags" contains "chad")[(set:$blackjack_params's "skill check difficulty" to (min:100,($blackjack_params's "skill check difficulty" + 25)))(set:$blackjack_params's "difficulty factor" to "His dominant personality, versus your charm 🍀")]
(if:$npc's "tags" contains "fuckboy")[(set:$blackjack_params's "skill check difficulty" to (min:100,($blackjack_params's "skill check difficulty" + 15)))(set:$blackjack_params's "difficulty factor" to "His fuckboy personality, versus your charm 🍀")]
(if:$npc's "tags" contains "selfish")[(set:$blackjack_params's "skill check difficulty" to (min:100,($blackjack_params's "skill check difficulty" + 15)))(set:$blackjack_params's "difficulty factor" to "His selfish personality, versus your charm 🍀")]
(set:$blackjack_params's "good action" to (twirl:"convince him to give you oral instead","persuade him to go down on you","convince him to give you oral instead"))
(set:$blackjack_params's "bad action" to (twirl:"fail to convince him","fail to persuade him"))
($cs:"lights out initialize")}]]](set:$link_text to "Obey")(if:$character's "masculinity" < 60 and $npc's age > 39)[(set:$link_text to (twirl:"Yes, sir","Obey","Obey","Yes, daddy"))](link:$link_text)[(display:"sex transactional blowjob")](display:"sex transactional reject option")</div>]]{(display:"npc fill in details")(display:"sex creampie image")
(if:$character's "side effects" contains "Creampies decrease dick")[(display:"add cock size reduction")($remember_update:"add","creampie")]
(if:$character's "side effects" contains "Creampies decrease intellect")[(set_intellect:"xp",(floor:(get_intellect:"xp")*0.9))]
(if:$character's "side effects" contains "Creampies decrease fitness")[(set_fitness:"xp",(floor:(get_fitness:"xp")*0.9))]
(set:$stats's "creampies received" to it + 1)
<div class='options'><mark>(unless:(datanames:$npc) contains "ballsize")[(set:$npc's "ballsize" to (twist:1,10))]
(if:(cock:"balls","npc") < 5)[(set:$cum_amount to (twirl:2,2,2,3,3,3,3,3,3,3,4,4,4))](else-if:(cock:"balls","npc") < 7)[(set:$cum_amount to (twirl:3,3,3,3,4,4,4,4,5))](else-if:(cock:"balls","npc") < 9)[(set:$cum_amount to (twirl:3,4,4,4,4,5,5,5))](else-if:(cock:"balls","npc") is 9)[(set:$cum_amount to (twirl:3,4,4,5,5,5,5))](else:)[(set:$cum_amount to (twirl:4,5,6,7))]
(set:$sperm_amount to $cum_amount * (twist:25,45) + 15 * $npc's ballsize)
(if:(checkdm:$npc,"tags","contains","breeder"))[(inc:"cum_amount")(set:$sperm_amount to (ceil:$sperm_amount * 1.5))]
(set:$index to (text:(cock:"balls","npc")))
(set:$cum_desc_creampie to (text:$cum_amount) + " " + ($index of (dm:
"1",(twirl:"weak","thick","small","warm"),
"2",(twirl:"weak","thick","small","warm","hot"),
"3",(twirl:"fat","thick","heavy","warm","warm, wet"),
"4",(twirl:"big","thick","sticky","warm","hot"),
"5",(twirl:"big","thick","sticky","warm","hot","fat"),
"6",(twirl:"big","thick","sticky","warm","hot"),
"7",(twirl:"big","thick","sticky","warm","hot","mega"),
"8",(twirl:"big","thick","sticky","warm","hot","powerful","heavy"),
"9",(twirl:"big","thick","sticky","warm","hot","powerful","heavy","massive","potent","womb-smearing","womb-filling"),
"10",(twirl:"big","thick","sticky","warm","hot","powerful","heavy","massive","potent","womb-smearing","womb-filling"))) + " " + (twirl:"jets","spurts","squirts","jets","spurts","ropes","spurts","spurts"))
(set:$preg_chance_mod to $cum_amount of (a:0.6,0.6,0.7,0.9,1,1.1,1.2,1.5,1.8,2,2.2,2.4,2.8,3,4))
(if:(twist:1,2) is 1)[(print:(upperfirst:$npc's "name")) (twirl:"injected you with $cum_desc_creampie","filled you with $cum_desc_creampie","inseminated you with $cum_desc_creampie","loaded down your pussy with $cum_desc_creampie","filled you with $cum_desc_creampie") (twirl:"of cum","of his sperm","of cum","of jizz","of semen","of cum","of his cum").](else:)[(print:$cum_desc_creampie) (twirl:"of cum","of his sperm","of cum","of jizz","of semen","of cum","of his cum") (twirl:"fill your pussy","fill your womb","are shot into you","fill you up").] (print:"(")(print:(ceil:$preg_chance_mod*100))% normal pregnancy chance(print:")")(print:" ")(set:$chance to $pregnancy_chance * $preg_chance_mod)
(if:(is_preg:))[(unless:$pregnancy_notification is "Impregnation Notifications: Disabled")[(set:$img_type to "already pregnant")You're already pregnant.]](else:)[(if:(twist:1,100) > $chance)[(set:$img_type to "swimming")](else:)
[
(if:$character's "birth control" is "nanobots" and not ($today_events contains "nanobots activation"))
[
(display:"nanobots game trigger")
]
(set:$img_type to "fertilized")(set:$preg_npc to $npc)(set:$character's "pregnant" to "true"){($passage_tags:"new_pregnancy")}(if:$pill_timer > 88)[(set:$pregnant_discover_timer to 80)](else:)[(set:$pregnant_discover_timer to $pill_timer + 1)]
]
]</mark> </div>(if:(is_breeder:))[<div class='options'>(set:$orgasm_type to "breeder")(display:"sex orgasm")(nl:1)(set:$today_events to $today_events + (a:"orgasm"))(set:$new_mood to (dm:
"mood","feeling FUCKING AMAZING",
"emoji","😛",
"strength",10,
"length",5,
"cause","from that creampie.",
"charm buff",2,
"intellect buff",0
))(display:"new mood")</div>](display:"sex creampie closeup")(set:$text to (a:))(set:$cum_text to (a:))
}{(unless:$pregnancy_notification is "Impregnation Notifications: Disabled")[(if:$pregnancy_chance>0)[(if:$img_type is "fertilized")[<div class="game_header">(print:"<img class='greyborder'
src='img/scenes/generic/pregnancy/fertilized/" + (text:(twist:1,5)) + ".jpg' width=100% height=auto>")<div class="game_header_text">
<span class='chromatic'>[(css:"font-size:5vmin")[(twirl:"You've been fertilized!","He impregnated you.","You've been impregnated.","You're pregnant.")]]<text|</span></div></div>](else-if:$img_type is "swimming")[<div class="game_header">(print:"<img class='greyborder'
src='img/scenes/generic/pregnancy/swimming/" + (text:(twist:1,12)) + ".jpg' width=100% height=auto>")<div class="game_header_text">
<span class='chromatic'>[(css:"font-size:5vmin")[You didn't get impregnated.]]<text|</span></div></div>]]]}{
(set:_his_name to $npc's "sex name")
(print:(twirl:"His cock pulses inside you, and you feel vague warmth spreading outward from your pussy. That's cum... a lot of it.","You can *feel* _his_name's cock squirt sticky, warm semen deep into you: -*Spurt. Spurt. Spurt. Spurt.*-","You feel _his_name's cock twitch and throb, and you know it's unloading inside you. Your pussy feels gooey and wet as it's filled like a pastry.","The dick inside your twitches - then you feel jets of hot, sticky cum spray deep in your pussy.","One last, deep press, and his penis erupts inside you.","You feel waves of warm goo spread through your cervix as _his_name inseminates you.","The cock inside you pulses, and you feel ropes of warm, wet jizz shoot deep inside you.","You feel _his_name squirt jet after jet of gooey cum deep into your pussy.","You feel a wet warmth pulse deep inside you as _his_name inseminates you."))
}{($char_passage:"sex creampie image",[{(if:$character's "id" is "scarlit")[(set:$img to (twirl:"/generic/sex/cum/creampie/c/bwc/doggy 1","/generic/sex/cum/creampie/c/bwc/doggy 2"))](else-if:$character's "id" is "ella" or $character's "id" is "cassidy")[(set:$img to (twirl:"/generic/sex/cum/creampie/c/bwc/doggy 2","/generic/sex/cum/creampie/w/bwc/doggy 2","/generic/sex/cum/creampie/w/bwc/doggy 5","/generic/sex/cum/creampie/w/bwc/doggy 9","/generic/sex/cum/creampie/w/bwc/doggy 13"))](else:)[(set:$img to "/generic/sex/cum/creampie/w/bwc/doggy " + (text:(twist:1,17)))]
(if:$character's "id" is "rae")[
(set:$img to "/characters/rae/cum/creampie/doggy " + (text:(twist:1,3)))
]
(if:$character's "id" is "jade" and (twist:1,3) is 1)[
(set:$img to "/characters/jade/cum/creampie 1")
]
(if:$character's "id" is "mia" and (twist:1,3) is 1)[
(set:$img to "/characters/mia/cum/creampie/doggy 1")
]}],[])
(set:$creampie_image to "img/scenes"+ $img + ".mp4")
(set:$img to "<video disableRemotePlayback src='img/scenes"+ $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")}{
(if:$scene_type is "sex bedroom" and (checkdm:$npc,"cock","contains","in you"))
[
(set: $energy to 0)
(unless:$custom_orgasm is "silent")
[
<div class='options'><mark>Your ⚡ is drained! (Orgasm in passive position)</mark></div>
]
]
(if:(is_resistance:))
[
(display:"resistance orgasm effects register")
(if:(checkdm:$npc,"ground rules","contains","50 per orgasm"))
[
(set:$reason to "Because you came")
(set:$gain to (cond:(checkdm:$npc,"ground rules","contains","100 per orgasm"),100,50))
(display:"bruce gain debt")
]
]
(set:$action_points to (max:$action_points - 1,0))(display:"update action points orgasm")
(if:(is_breeder:) and not ($orgasm_type is "breeder") and not ($protection's "active" is "true"))
[
($passage_tags:"orgasm_ruined")
](else:)[
($passage_tags:"orgasm_sex")
]
(unless:$custom_orgasm is "true" or $custom_orgasm is "silent")
[
(css:"font-size:5vmin")
[
(if:(is_breeder:) and not ($orgasm_type is "breeder"))
[
<span class='chromatic'>(if:$pill_known is "false")[You can't cum, for some reason!](else:)[(twirl:"You try to cum, but can't!","You can't cum without a creampie on a breeder!")]</span>
](else:)[
<span class='chromatic'>(twirl:"You cum, hard.","You cum.","You have an intense orgasm.","You orgasm.","Your body shakes as you orgasm.")</span>
]
]
]
(set:$custom_orgasm to "false")
(set: $your_pleasure to (cond:
$orgasm_type is "breeder", 0,
(is_breeder:), $your_pleasure - (twist:4,7),
$your_pleasure - (twist:6,9)
))
(display:"update your pleasure")
($char_passage:"sex orgasm",[(set: $se to (cond:
$character's "id" is "alina", "orgasm alina " + (text: (twist: 1, 5)),
$character's "id" is "cassidy", "orgasm cassidy " + (text: (twist: 1, 4)),
$character's "id" is "ella", "orgasm ella " + (text: (twist: 1, 4)),
$character's "id" is "jade", "orgasm jade " + (text: (twist: 1, 4)),
$character's "id" is "jia", "orgasm jia " + (text: (twist: 1, 8)),
$character's "id" is "lana", "orgasm lana " + (text: (twist: 1, 9)),
$character's "id" is "liya", "orgasm liya " + (text: (twist: 1, 5)),
$character's "id" is "mia", "orgasm mia " + (text: (twist: 1, 6)),
$character's "id" is "rae", "orgasm rae " + (text: (twist: 1, 11)),
$character's "id" is "scarlit", "orgasm scarlit " + (text: (twist: 1, 9)),
"orgasm " + $character's "id"
))],[])
(if:(is_breeder:) and ($orgasm_type is "breeder"))
[
(inc:'orgasms')
(set:$today_events to $today_events + (a:"orgasm"))
](else-if:(is_breeder:) and not ($protection's "active" is "true"))[
](else:)[
(inc:'orgasms')
(set:$today_events to $today_events + (a:"orgasm"))
]
(if:($status's "status" is "sexually frustrated" or $status's "status" is "very sexually frustrated") and ($character's "arousal" is 0 or $today_events contains "orgasm"))
[
(display:"reset status")
]
(if:$character's "side effects" contains "Orgasms decrease dick")[(display:"add cock size reduction")($remember_update:"add","orgasm")]
(if:$character's "side effects" contains "Orgasms decrease intellect")[(set_intellect:"xp",(floor:(get_intellect:"xp")*0.9))]
(if:$character's "side effects" contains "Orgasms decrease fitness")[(set_fitness:"xp",(floor:(get_fitness:"xp")*0.9))]
}(set:$scene's "events" to it + (a:"request quieter"))(replace:?text)["(twirl:"We need to be careful...","Do you think we could keep it down a bit?","We have to be quiet...","We need to be a little quieter...","Do you think we could be a little quieter in here?","Hey, let's keep it down a bit...","Do you think we could keep it down a bit?","Let's be as quiet as possible, please?","Can we be as quiet as possible?")
(if:$scene_type is "sex bedroom")[(if:$npc's tags contains "stepdad dislikes")[(twirl:"My stepdad is a little suspicious of you, and I don't want him to catch us doing this,","My stepdad could walk in, he's already kinda suspicious...","I'm worried my stepdad might walk in on us, he already doesn't like you...","I'm worried that with my stepdad... you know?","I would die if my stepdad walks in... pretty sure he's already suspicous...")](else-if:$npc's tags contains "stepdad likes")[(twirl:"My stepdad likes you, it would be awesome to keep it that way...","I'd hate for my stepdad's good perception of you to get wrecked...","I don't want my family to hear us...","")](else:)[(twirl:"I don't want my family to get suspicious...","I don't want my stepsister or stepdad to get suspicious...")]](else:)[(twirl:"Someone might catch us","Someone might hear us","I'm worried that someone might catch us","I'm worried that someone might hear us","We could easily get caught","We might get caught","Someone could walk in")(twirl:"...",",")]" you ask.<div class='options'><mark>(if:((get_charm:) + (twist:5,15)) > ($npc's personality + $npc's dominance) or $npc's tags contains "gentleman")[Charm check passed!(set:$result to "pass")(set:$scene's "events" to it + (a:"accept quieter"))](else:)[Charm check failed!(set:$result to "fail")(set:$scene's "events" to it + (a:"reject quieter"))]</mark></div>(if:(win:))["(twirl:"Sure, we'll be quiet,","Ok, definitely,","Absolutely,","Yeah, no problem,")" (display:"npc pronoun") says.(replace:?image)[(display:"sex transactional chance of getting caught")](set:$scene's "interrupt chance" to (floor:$scene's "interrupt chance" / 2))(display:"update caught chance")](else:)["(twirl:"Nah,","No,","I'll do what I want,","No one's gonna catch us,","I'm not worried,","Why should I be quiet? I don't care if anyone catches us,","Let them hear us and deal with it,","I'm not worried about getting caught,","Nah,","No way, I'll do what I want,","I'm not afraid of getting caught,","You're afraid huh? Cute,","I don't see a problem with making a little noise,","Nah, I don't think so,")" (display:"npc pronoun") says.](set:$gain to -1)(display:"gain his satisfaction")](display:"sex transactional next")(set:$scene's events to $scene's events - (a:"insist quieter"))(display:"exhibitionist warning count")(set:$his_name to $npc's name)(set:$scene's "events" to it + (a:"insist quieter"))(replace:?text)["(twirl:"C- come on,","P- please,","Please, $his_name,","Please, $his_name,","Come on, $his_name,")" you say. "(twirl:"I want to have fun...","I just don't want us to get interrupted...","I promise, it will still be fun!","I promise it will still be fun.","I just really don't want to get caught.")"<div class='options'><mark>(if:((get_charm:) + (twist:10,25)) > ($npc's personality + $npc's dominance) or $npc's tags contains "gentleman")[Charm check passed!(set:$result to "pass")(set:$scene's "events" to it + (a:"accept insist"))](else:)[Charm check failed!(set:$result to "fail")(set:$scene's "events" to it + (a:"reject insist"))]</mark></div>(if:(win:))["(twirl:"Oh, fine,","Fine, fine,","Fine, ok,","Ok, I guess,","Alright, if you insist...","If you say so...")" (display:"npc pronoun") (twirl:"says","sighs","huffs","says","sighs").(replace:?image)[(display:"sex transactional chance of getting caught")](set:$scene's "interrupt chance" to (floor:$scene's "interrupt chance" / 2))(display:"update caught chance")](else:)["(twirl:"I told you no, bitch,","I said no, didn't I?","I thought I told you - no,","I thought I told you no,","I'm pretty sure I told you no, the first time,")" (display:"npc pronoun") says. "(twirl:"I act how I please.","We're not gonna get caught.","It's gonna be fine.","Settle down.","Please, settle down.")"](set:$gain to -2)(display:"gain his satisfaction")](display:"sex transactional next"){
(replace:?options)[]
(set:$continue to "true")
(display:"sex transactional check his action")
(if:$continue is "true")[(display:"sex transactional options")]
}{
(set:_se to "insert " + (text:(twist:1,5)))
(replacetrack:"insert","aud/se/sex/penetration/" + _se + ".mp3")
($play:"sound","insert")
}{(if:$his_pleasure >= $his_pleasure_threshold)[(display:"sex transactional he cums choice")](else:)[<div class='options'>(if:$npc's "cock" is "in you")[(link:"Get fucked")[(display:"sex transactional get fucked")]](else:)[(unless:$character's "pussy" is "accessible")[(link:"Strip")[(display:"sex transactional strip")]](if:$npc's "cock" is "out")[(unless:$reward is "volleyball")[(display:"sex transactional reject option")](link:"Blow him")[(display:"sex transactional blowjob")]](unless:$npc's "cock" is "out")[(link:"Unzip him")[(display:"sex transactional get out cock")]](unless:$scene's "events" contains "kiss")[(link:"Kiss him")[(if:$character's "masculinity" > 89)[ *You're too masculine to initiate a kiss.* ](else:)[(display:"sex transactional kiss")]]](if:$character's "pussy" is "accessible")[(link:"Present your pussy")[(display:"sex transactional present")]](if:$npc's "cock" is "out" and not ($scene's "events" contains "compliment cock"))[(link:"Compliment him")[(replace:?options)[](live:1ms)[(display:"sex transactional compliment cock")(stop:)]]](unless:($scene's "events" contains "dirty talk"))[(link:"Talk dirty")[(replace:?options)[](live:1ms)[(display:(cond:(is_bim:),"transactional sex dirty talk bimbo","transactional sex dirty talk"))(stop:)]](if:$npc's "cock" is "out")[(replace:?right_options)[(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")]]](unless:($scene's "events" contains "request quieter"))[(link:"We need to be quiet")[(replace:?options)[](live:1ms)[(display:"transactional sex request quieter")(stop:)]]](if:($scene's "events" contains "reject quieter" and not ($scene's events contains "insist quieter")))[(link:"Insist on being quiet")[(replace:?options)[](live:1ms)[(display:"transactional sex insist quieter")(stop:)]]](if:$npc's "cock" is "in you")[(replace:?right_options)[(print: "<img class='greyborder' src='img/characters/sex/doggy/" + $character's "id" + ".jpg' width='100%' height=auto>")]]]</div>]}{(if:$scene_type is "sex transactional")[(if:(cock:"rating","npc") > 8)[(link:"Chicken out. (Use 2 Action Points)")[(set:$action_params to (dm:"cost",2,"result","proposition sex npc reject big","type","change screen"))(display:"use action point")]](else:)[(link:"Ew. (Use Action Point)")[(set:$action_params to (dm:"cost",1,"result","proposition sex npc reject","type","change screen"))(display:"use action point")]]]
(display:"exhibitionist warning count")}(display:"describe pussy")(set:$scene's "events" to (($scene's "events") + (a:"request oral")))(replace:?text)[You (twirl:"ask","timidly ask") him to (twirl:"go down on you","lick your $pussy","go down on you","perform cunnilingus on your $pussy","go down on your $pussy","go down on you"). (display:"sex transactional check oral")(if:(checkdm:$npc,"ground rules","contains","no bj"))[(set:$reason to "none")](if:$reason is "none")[(display:"sex transactional oral")](else-if:$npc's "cock" is "out" and not ($scene's "events" contains "blowjob") and not (checkdm:$npc,"ground rules","contains","no bj"))[(display:"sex transactional ask blowjob")](else:)[(if:$reason is "unsatisfied")[(twirl:"He refuses.","He shakes his head.","He says he'd prefer not to.")(print:" ")(if:(twist:1,2) is 1 and not ($scene's "events" contains "blowjob"))[*Maybe if I blew him first, he'd be willing...*]](else-if:$reason is "selfish")[(twirl:"He just shakes his head.","He says he doesn't feel like it.","He ignores your question.","He says no.","He says he'd rather not.")](else-if:$reason is "fuckboy")["(twirl:"Nah girl...","Nah I don't think so...","I'm thinkin' nah...")" (display:"npc pronoun") says. *(twirl:"What a fuckboy!","Such a fuckboy!","He's such a fuckboy!")*](else-if:$reason is "already")[He says he's already done enough pussy-licking.](else-if:$reason is "chad")[(twirl:"He shakes his head.","He just grins.","He laughs off your request.","He just chuckles.","He doesn't even respond to your request.","He doesn't even respond.")(if:(twist:1,2) is 1)[ *(twirl:"He thinks he's too good for it...","He's such a chad...","He thinks he doesn't need to... not his responsibility.","He thinks he's better than me...","He thinks he's too good for it.")*]](display:"sex transactional next")]](display:"breathing ambience"){
(set:$reason to "none")
(if:(10-$his_satisfaction) > $npc's "personality")[(set:$reason to "unsatisfied")]
(if:$npc's "tags" contains "chad" and (twist:1,2) is 1 and $his_satisfaction < 8)[(set:$reason to "chad")]
(if:$npc's "tags" contains "fuckboy" and (twist:1,2) is 1)[(set:$reason to "fuckboy")]
(if:$npc's "tags" contains "selfish" and (twist:1,3) is 1 and $his_satisfaction < 8)[(set:$reason to "selfish")]
(if:$scene's "events" contains "oral")[(set:$reason to "already")]
(if:$npc's "tags" contains "gentleman")[(set:$reason to "none")]
(if:$npc's "personality" > 8 and (twist:1,2) is 1)[(set:$reason to "none")]
}{
(display:"npc describe cock")(set:$npc's "cock" to "out")(replace:?text)[<div class='options'><mark>(text-style:"fade-in-out")[(if:$character's "masculinity" > 75)[(set:$time_taken to 2500)(print:(twirl:"Hands trembling a bit,","Hands shaking a little bit,","Hands trembling a bit,","A little bit nervous,","Slightly nervous,"))(print:" ")(print:(twirl:"you unzip his jeans","you unzip his pants","you unfasten his pants","you fumble with his zipper","you fumble with his pants"))](else:)[(set:$time_taken to 1500)(print:(twirl:"You unzip his jeans","You unzip his pants","You unfasten his pants"))]...]</mark></div>](replace:?options)[]($play:"sound","unzip")(live:3s)[(set:$npc's appeal to (max:$npc's looks,(cock:"rating","npc")))(set:$npc's "events" to $npc's "events" + (a:"cock"))(replace:?image)[<div class='top_left_half'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")</div>](replace:?text)[(set:$case to "upper")(display:"npc possessive pronoun") $cock (twirl:"flops","thwaps","flops","swings") out(if:(Random:1,2) is 1)[, with (if:(twist:1,2) is 1)[a set of (print:$npc's ballsdesc) balls](else:)[a (print:$npc's ballsdesc) (twirl:"ballsack","sack","pair of testicles")] hanging behind].(nl:1)
(display:"npc cock rating")](stop:)(display:"npc screen update sex guy")(display:"sex transactional next")]
}(display:"breathing ambience")(display:"exhibitionist warning count")(set:$caught_chance to $scene's "interrupt chance")(set:$chance to $caught_chance)(if:$disable_caught is "Getting Caught Disabled: True")[(set:$scene's "interrupt chance" to 0)](replace:?options)[(if:$scene's "interrupt chance" > 0)[(set:$needed to (20 - (floor:(100-$scene's "interrupt chance")*0.2) + 1))
<div class='options'><mark>Roll at least a $needed, or you'll be caught.</mark>
(link:"Roll d20")[(replace:?options)[<div class='options'>(transition:"zoom")[(set:$roll to 21-(twist:1,20))($play:"sound","dice")<mark>🎲 You rolled (indefinite:$roll). 🎲</mark>(nl:1)
(live:1s)[(transition:"fade-up")[(if:$roll >= $needed)[(if:$scene_type is "sex bedroom" and $npc's "cock" is "in you")[(display:"sex transactional bed position options")](else:)[(link:"Success")[(if:$next is "sex transactional next")[(replace:?text)[](display:"sex transactional next")](else:)[(display:"change screen")]]]](else:)[(link:"Oh no...")[($cs:"sex transactional caught")]]](stop:)]]</div>]]</div>](else:)[<div class='options'>(if:$next is "sex transactional next")[(display:$next)](else:)[(link:"Continue")[(display:"change screen")]]</div>]]{(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to (twirl:"You kissed him!","Yeah, you actually made out with a dude.","You legitimately *made out* with him!"))
(set:$minigame's "masculinity level" to (max:60,$minigame's "masculinity level" - 5))}(set:$hands to $npc's "hands")(set:$breath to $npc's "breath")(replace:?image)[(print: "<video disableRemotePlayback src='img/scenes/characters/" + $character's "id" + "/foreplay/kiss.mp4' autoplay='' loop='' muted='' playsinline/>")](replace:?text)[{(if:$npc's "kissing style" is "normal")[(if:$option is "let it happen")[(set:$case to "upper")(display:"npc pronoun") (twirl:"pulls you in for a kiss","kisses you","kisses you on the lips","connects his lips to yours").(if:(twist:1,2) is 1)[ His breath tastes like (print:$npc's "breath").(set:$gain to 1)]](else:)[You (twirl:"enjoy your kiss with","kiss","lean up, kissing","lean into your kiss with","kiss") him, (twirl:"going with the flow of the encounter","letting him run his $hands hands over your body","getting lost in his $breath-flavored breath","getting lost in the moment a little").(set:$gain to 2)]](else-if:$npc's "kissing style" is "dominant")[(if:$option is "kiss back")[(set:$case to "upper")(display:"npc pronoun") (twirl:"kisses you dominantly","takes control of the kiss","overwhelms your control of the kiss","kisses you with dominance - it's clear who's kissing who","pushes his tongue into your mouth, dominantly","pushes his tongue into your willing mouth, exploring it, enjoying it")(set:$gain to 2)](else:)[(set:$case to "upper")(display:"npc pronoun") (twirl:"kisses you dominantly","overwhelms you with his kiss","kisses you, forcefully","presses his tongue into your mouth","dominates you with a powerful kiss","kisses you, powerfully","kisses you, dominantly")(set:$gain to 1)].](else-if:$npc's "kissing style" is "gross")[(twirl:"The kiss is pretty gross.","The kiss is... not great.","Your kiss with him isn't the best.","Your lips meet - and you sort of regret they ever did.","The kiss is pretty gross.")(print:" ")(twirl:"His breath smells strongly like $breath, and there is nothing 'hot' about it.","His breath smells like $breath, and his body odor is a bit strong.","His body odor and stench of his breath totally takes you out of the moment.","His $breath-smelling breath really dampens the mood somewhat.")(set:$gain to -2)](else-if:$npc's "kissing style" is "weak")[(set:$gain to 0)(if:$option is "kiss back")[(twirl:"You're doing most of the work - he is a very weak kisser.","He's a very timid, shy kisser - you do most of the work when your lips meet.","When your lips meet, you are the one taking control of the kiss - his tongue goes limp in your mouth.","You find yourself to be the one putting in all the effort - his kisses are quite shy and timid.")](else:)[(twirl:"He kisses you without much passion.","He kisses you timidly.","His kisses are timid, not that forceful. He doesn't use any tongue.","He locks lips with yours, but doesn't seem to know what to do from there.","He's not a very good kisser...","His kisses are a bit weak.")]](else-if:$npc's "kissing style" is "slobber")[(twirl:"He slobbers all over you - a bit too eager.","His kiss is extremely wet - he uses a lot of tongue.","He slobbers all over your mouth - not exactly the most proficient kisser.","His kisses are messy, and saliva get all over your face.","He slobbers all over your face.")(if:$option is "let it happen")[(set:$gain to -1)](else:)[(set:$gain to 1) (twirl:"But you kiss him right back anyway, getting into it.","You kiss him right back anyway.","You do your best to salvage the interaction, kissing back into his wet lips.")]](else-if:$npc's "kissing style" is "aggressive")[(set:$gain to 1)(set:$case to "upper")(display:"npc pronoun")(print:" ")(twirl:"kisses you aggressively","leans into you, exploring your mouth with his tongue","pulls you into a super aggressive kiss","completes a super aggressive and full kissing of your lips","kisses you super aggressively","kisses you very forcefully"). (twirl:"His $hands hands explore your body.","His breath tastes like $breath.")](else-if:$npc's "kissing style" is "passionate")[(set:$gain to 3)(set:$case to "upper")(display:"npc pronoun")(print:" ")(twirl:"kisses you with passion","pulls you into an extremely intense, passionate kiss","kisses you with passion, and style","gains a lot of style points in your eyes, with his passionate kiss","kisses you like it MEANS something to him","kisses you with intense passion - his tongue explores your mouth urgently","kisses you, and sparks seem to fly","kisses you, and the whole world seems to melt away for a moment"). (if:$option is "kiss back")[(twirl:"You kiss him right back.","You sink into his embrace, kissing him back.","You get into it, kissing him back.","It turns into a proper make-out session.","You make out with him, exploring his mouth with your tongue, letting his $hands hands roam your body.","You give yourself fully over to him, drinking deeply from his passion, and letting his $hands hands explore your body.","You feel your heart beat faster.","Your heart beats faster as you kiss him back.")]](nl:2)(display:"gain arousal and lubrication")(if:$character's "masculinity" > 80)[*(if:$gain < 1)[(twirl:"Can't believe I'm doing this...","Can't believe I'm making out with a MAN...","Can't believe this is really happening...","This is really happening...","I can't believe I'm letting this happen...","Ugh, why am I letting this happen...","Why am I letting this happen?")](else:)[(twirl:"Am I... actually enjoying this?","How am I getting TURNED ON by this?","How is this turning me on???","How is this actually getting me wet?","This is actually getting me wet!") (twirl:"I still can't believe this is happening...","Still can't believe I'm actually doing this...","Can't believe I'm actually doing this...")]*]}](set:$scene's "events" to $scene's "events" + (a:"kiss"))(display:"sex transactional next")(set:$sex_loop to (twirl:"kiss loop 1","kiss loop 2","kiss loop 3","kiss loop 4","kiss loop 5","kiss loop 6","kiss 1","kiss 2"))(display:"play sex loop")(display:"exhibitionist warning count")(display:"breathing ambience")(set:$scene's "status" to "presented")(replace:?image)[(print: "<img class='greyborder' src='img/characters/nude/present/" + $character's "id" + ".jpg' width='100%' height=auto>")](replace:?text)[You bend over, offering yourself.(set:$scene's "events" to $scene's "events" + (a:"present"))](set:$sex_loop to 0)(display:"play sex loop")(replace:?options)[<div class='options'>(link:"Request Oral")[(display:"sex transactional request oral")](link:"Ask him to put it in")[(if:$npc's "cock" is "out")[(display:"sex transactional insert attempt")](else:)[ *(twirl:"His dick isn't out yet","It's still in his pants")...* ]]</div>](display:"exhibitionist warning count")(display:"npc describe cock")(display:"describe pussy")(unless:$current_activity is "Go clubbing")[(unless:$scene_type is "sex bedroom")[(set:$previous_song to $song)(set:$song to 0)(display:"play song")(set:$song to $previous_song)]](set:$character's "status" to "sex")(display:"refresh portrait")(set:$variant to (twirl:"1","2","3"))($char_passage:"sex transactional insert attempt",[(set:$time_taken to (text:$character's "id" + " " + $variant) of (dm:
"alina 1",6113,"alina 2",4200,"alina 3",7131,"cassidy 1",6480,"cassidy 2",6048,"cassidy 3",8255,"ella 1",7368,"ella 2",4128,"ella 3",6744,"jade 1",7680,"jade 2",8976,"jade 3",5721,"jia 1",5760,"jia 2",5400,"jia 3",3657,"lana 1",9120,"lana 2",2520,"lana 3",8960,"liya 1",5228,"liya 2",6648,"liya 3",5520,"mia 1",9936,"mia 2",8934,"mia 3",6792,"rae 1",8472,"rae 2",8712,"rae 3",6720,"scarlit 1",6336,"scarlit 2",4392,"scarlit 3",9120
))],[])(live:(round:$time_taken/2))[(display:"insert sound")(stop:)](set:$se to "pre insert " + $variant)(display:"play sound")(replace:?image)[<div class='top_left_half'>(print: "<img class='greyborder' src='img/characters/nude/pussy/" + $character's "id" + ".jpg' width='100%' height=auto>")[]<pussy|</div><div class='top_right_half'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")[]<cock|</div>(replace:?text)[](replace:?options)[]{
(replace:?pussy)[{
==>
(t8n:"slide-right")+(transition-time: $time_taken)[(css:"font-size:10vmin")[🍑]]}]
(replace:?cock)[{
<==
(t8n:"slide-left")+(transition-time: $time_taken)[(css:"font-size:10vmin")[🍆]]}]}(replace:?text)[<div class='options'><mark>(text-style:"fade-in-out")[(twirl:"He presses his","You feel his") (if:(twist:1,2) is 1)[$cock](else:)[(print:$npc's "tipdesc") (twirl:"cock-head","dick-tip","tip","head","glans","cock-head","cock-tip")] against your (twirl:"pussy lips",$pussy)...]</mark></div>](live:$time_taken)[(Display:"sex transactional insert check")(stop:)]](set:$outfit_button to "dont show")(display:"outfit button")(display:"refresh portrait")(replace:?options)[{(display:"stop sound")(unless:$scene_type is "sex bedroom")[(masteraudio:"stopall")](set:$ambience to $location_params's "ambience")(display:"play ambience")(display:"play ambience")(if:$lubrication >= (cock:"girth","npc"))[{(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to (twirl:"Did you enjoy getting fucked?","How did it feel, getting fucked like a slut?","He made you his bitch.","You should've seen the look on your face when you were being fucked..."))(set:$minigame's "masculinity level" to (max:50,$minigame's "masculinity level" - 5))}(replace:?image)[(print:"<img class='greyborder' src='img/characters/sex/insert/" + $character's "id" + ".jpg' width='100%' height=auto>")(set:$character's "status" to "sex")(set:$outfit_button to "dont show")(display:"refresh portrait")(set:$npc's "cock" to "in you")](replace:?right_options)[(print: "<img class='greyborder' src='img/characters/sex/doggy/" + $character's "id" + ".jpg' width='100%' height=auto>")](replace:?text)[(display:"sex insertion")(set:$npc's "cock" to "in you")(display:"npc register sex")(display:"npc describe cock")(display:"describe pussy")<div class='options'><mark>(text-style:"fade-in-out")[(twirl:"His $cock presses into you...","His $cock fills your $pussy...","Your $pussy is being filled...","His $cock slips deep inside you...","You feel him filling you...","His $cock begins to fill you...","His $cock begins filling your $pussy...")]</mark></div>](set:$sex_loop to 0)(display:"play sex loop")(display:"play ambience")(display:"play sound")(display:"sex transactional chance of getting caught")
(if:$scene_type is "sex bedroom")[(display:"sex transactional bed position options")]
(unless:$scene_type is "sex bedroom")[
(live:($time_taken-2000))[(display:"sex transactional music hit")(stop:)]
(live:$time_taken)[(unless:$scene_type is "sex bedroom")[
(set:$sex_loop to $doggy_loop)(display:"play sex loop")(set:$sex_loop_continue to "true")(print:"(display:'sex transactional get fucked')")(stop:)]]
]($passage_tags:"sex_insert")](else:)[(set:$character's "status" to ($core_female_status:))(display:"refresh portrait")
($play:"sound","quicktime incorrect")(display:"play song")(set:$scene's "events" to $scene's "events" + (a:"insert fail"))(replace:?pussy)[{
==>
(t8n:"fade-left")[(css:"font-size:10vmin")[🚫]]}]
(replace:?cock)[{
<==
(t8n:"fade-right")[(css:"font-size:10vmin")[🚫]]}](replace:?text)[(nl:1)<div class='options'><mark>Insertion Fail!</mark></div>(display:"breathing ambience")(display:"cock insertion report")](display:"sex transactional next")
]
}]{(display:"sex transactional blowjob")}{{
(set:$variant to (twirl:1,2,1,1))
(display:"sex transactional blowjob " + $character's "id")
(replace:?portrait)[(print:"<img class='border' src='img/characters/bj/bwc/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](set:$stats's "blowjobs given" to $stats's "blowjobs given" + 1)
(if:(datanames:$npc) contains "tags")[(set:$tags to $npc's tags)](else:)[(set:$tags to (a:))]
(display:"npc describe cock")(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to "The way you got down on your knees and just sucked his " + (text:$cock) + "...")(set:$minigame's "masculinity level" to (max:60,$minigame's "masculinity level" - 5))
(if:(datanames:$npc) contains "tags")[
(set:$minigame's "reason 1" to (twirl:"You had your lips wrapped around " + $npc's "name" + "'s cock like you were gonna suck out his soul, haha.","You have the makings of a fine little cock-sucking slut, I'm sure " + $npc's "name" + " would agree.","If only you could've seen yourself, lips wrapped around that " + $npc's "unfamiliar name" + "'s " + $npc's "cockdesc" + " cock."))
(set:$minigame's "reason 2" to (twirl:"Did you actually *enjoy* sucking " + $npc's "name" + "'s cock?","Did you like the feeling of pleasing " + $npc's "name" + ", using just your mouth?","Did you feel degraded, inferior, with your lips wrapped around that " + $npc's "unfamiliar name" + "'s " + $npc's "cockdesc" + " cock?"))
(if:$npc's age > 39)[(set:$minigame's "reason 3" to (twirl:"That guy you sucked off... he was old enough to be your father.","Have a thing for blowing old guys, eh?","That guy you just blew was old enough to be your dad. How does that make you feel?"))]
(if:$npc's tags contains "fuckboy")[(set:$minigame's "reason 3" to (twirl:"That guy just saw you as a warm pair of lips. He didn't care about you.","That guy knows he's better than you.","You really sucked that fuckboy off.","I can't believe you blew a total fuckboy like that. You're really hopeless!"))]
(if:$npc's tags contains "chad")[(set:$minigame's "reason 2" to (twirl:"That guy is superior to you in every way. Of course you sucked his cock.","Of course you sucked off that total chad - you're his inferior, by far."))]
]
(set:$quicktime_params to (dm:
"difficulty","medium",
"type","bj",
"real time his pleasure","enabled",
"victory","He loves how eager you are.",
"defeat","*It's just so big...*",
"skill check","bj",
"skill check difficulty",50,
"points to win",45,
"points",15,
"sequence",(a:"up","down","up","down","up","up","none","down","up","down","left","right"),
"quicktime timer",1,
"result passage","sex transactional blowjob result",
"backdrop",$img
))
(display:"quicktime bj sequence randomize")
(set:$img to "<video src='img/"+ $img + "' autoplay='' loop='' muted='' playsinline/>")
(display:"blowjob sounds")
(set:$next to "quicktime initialize")(display:"change screen")(set:$character's "status" to "bj/bwc")(set:$outfit_button to "dont show")(display:"outfit button")(display:"refresh portrait")}</div>
(display:"exhibitionist warning count")}{(if:$variant is 1)
[(set:$img to "scenes/characters/alina/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/cassidy/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"dark 1","dark 2","dark 3","dark 4","dark 5","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/ella/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"dark 1","dark 2","dark 3","dark 4","dark 5","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/jade/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 4","light 5","light 6","light 7","light 8","light 10","light 12","nude 1","nude 2","nude 3","nude 4","dark 1","dark 2","dark 3","dark 4","dark 5") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/jia/bj/transactional " + (text:(twist:1,6)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/lana/bj/transactional " + (text:(twist:1,6)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/liya/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/mia/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 1","light 2","light 3","light 4","light 5","light 6","light 7","light 8","light 9","light 10","light 11","light 12","light 13","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/rae/bj/transactional " + (text:(twist:1,7)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"clothed 1","light 4","light 5","light 6","light 7","light 8","light 10","light 12","nude 1","nude 2","nude 3","nude 4","dark 1","dark 2","dark 3","dark 4","dark 5") + ".mp4")]}{(if:$variant is 1)
[(set:$img to "scenes/characters/scarlit/bj/transactional " + (text:(twist:1,5)) + ".mp4")]
(else:)
[(set:$img to "scenes/generic/sex/bj/" + (twirl:"dark 1","dark 2","dark 3","dark 4","dark 5","nude 1","nude 2","nude 3","nude 4") + ".mp4")]}{(display:"npc describe cock")(set:$character's "status" to ($core_female_status:))(display:"refresh portrait")
[<div class='top_left_half'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")(display:"sex transactional chance of getting caught")</div>]<image|[(if:(checkdm:$npc,"ground rules","contains","no bj"))[(if:(checkdm:$npc,"id","is","bruce"))[(display:"bruce blowjob scold")]](set:$case to "upper")(display:"npc possessive pronoun") $cock (twirl:"is nice and lubricated with your saliva now","shines with your saliva","is thoroughly slathered with your spit","is now dripping with your spit","is now coated in spit"). (set:$gain to 5)<div class='options'>(display:"gain lubrication")</div>(if:$minigame_played is "false")[(set:$combo to 2)(set:$gain to (twist:2,4))(display:"gain his pleasure")](set:$gain to 1.25)(display:"sex transactional interrupt chance increase")
(if:(win:))[(set:$gain to 1 + (floor:$combo/3))<div class='options'>(display:"gain his satisfaction")</div>](else:)[(set:$gain to -1)<div class='options'>(display:"gain his satisfaction")</div>]]<text|[]<options|(set:$scene's "events" to $scene's "events" + (a:"blowjob"))
(set:$next to "sex transactional next")(display:"sex transactional check caught")(display:"breathing ambience")
}(set:$lubrication_stat to "enabled")(replace:?options)[(if:last of ($scene's "events") is "request oral")[(set:$case to "upper")(display:"npc pronoun") (twirl:"nods","agrees").](else-if:last of ($scene's "events") is "persuade oral")[(set:$case to "upper")(display:"npc pronoun") breaks down and agrees to go down on you(if:$scene's "events" contains "oral")[ - again].](else:)[(set:$case to "upper")(display:"npc pronoun") goes down on you(if:$scene's "events" contains "oral")[ - again].]
<div class='options'>(link:"Next")[(set:$character's "status" to "sex")(display:"refresh portrait")(set:$quicktime_params to (dm:
"objective","Don't be too loud!",
"type","oral",
"skill check","orgasm control",
"skill check difficulty",50,
"timing message","but not faster than he licks your pussy.",
"result passage","sex transactional oral result",
"backdrop",$oral_img,
"sex loop",$oral_loop,
"time",$npc's "personality" of (a:20,20,20,25,25,25,30,35,35,40),
"rhythm",$oral_rhythm,
"interrupt passage","sex transactional oral interrupt",
"interrupts", 2
))(set:$scene's "events" to $scene's "events" + (a:"oral"))
($cs:"dont cum initialize")]</div>]{(if:$npc's "oral skill" > 7 and (twist:1,2) is 1)[(twirl:"He's good at this...","Fuck, it's so good...","This is so good...","Fuck it feels good...","God, this is good...","Nngh, this is good...","He's really good at this...","He licks you expertly...","He's an expert at this...")](else-if:$npc's "oral skill" < 4 and (twist:1,2) is 1)[(twirl:"He's not very good at this...","He's not exactly skilled at this...","He's awkward at this, but it still feels good...","He's not the worlds best...","He's not very skilled at oral...","His tongue isn't talented, but it still feels good...")](else-if:$your_pleasure > 6)[(twirl:"You're getting close...","You're getting closer...","The tension builds...","Almost there...","You're almost there...","You're gonna cum...","He's getting you close...")](else:)["(twirl:"Nnngh-","Unngh...","Mmnngh...","Unghh, oh my god...","Fuckkk... godddd...","Nngh- aah- nngh-","Nggh, yes...","Nggh, yes, " + $npc's "name" + "...")" you (twirl:"moan","whimper","mewl","moan","groan","whimper","whimper").]}{(display:"describe pussy")
(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to "You should've seen yourself, getting your pussy licked.")
(set:$minigame's "masculinity level" to (max:60,$minigame's "masculinity level" - 5))}(set:$orgasm_type to "oral")[<div class='top_left_half'>(print: "<img class='greyborder' src='img/characters/sex/" + $oral_position + "/moan/" + $character's "id" + ".jpg' width='100%' height=auto>")
(display:"sex transactional chance of getting caught")</div>]<image|[<div class='options'><mark>👅 His oral skill: (print:$npc's "oral skill")/10 👅</mark></div>(if:$minigame_played is "false")[(if:(win:))[(set:$gain to (ceil:$npc's "oral skill" * 1.5))](else:)[(set:$gain to (ceil:$npc's "oral skill" / 1.5))]<div class='options'>(display:"gain pleasure")</div>(display:"update your pleasure")](if:$your_pleasure >= 10)[(display:"sex transactional orgasm text")(nl:2)(display:"sex orgasm")(set:$gain to 1.25)(display:"sex transactional interrupt chance increase")(set:$se to "orgasm solo " + $character's "id")(if:(can_cum:))[(display:"play sound")](nl:2)(display:"sex transactional orgasm aftershock text")](else:)[(display:"breathing ambience")](set:$gain to 10-$lubrication)<div class='options'>(display:"gain lubrication")(set:$gain to 5)(display:"gain arousal")</div>(if:$result is "fail")[(if:(twist:1,2) is 1)[(twirl:"You moan","You whimper","You groan","You whimper","You moan","You moan","You whimper"), (twirl:"loudly","and it echoes through the $room","LOUDLY","far too loudly","quite loudly").](else:)[(twirl:"Your moans","Your whimpers","Your moans","Your moans and lewd pleasure noises","Your debauched pleasure noises","Your pathetic moans") (twirl:"fill the $room","echo loudly through the $room").] (set:$gain to 1.25)(display:"sex transactional interrupt chance increase")](set:$next to "sex transactional next")(display:"sex transactional check caught")]<text|[]<options|(live:1s)[(display:"refresh stats sex girl")(stop:)](display:"npc describe cock")(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to "You fawned over his " + (text:$cock) + " like a true slut.")(set:$minigame's "masculinity level" to (max:60,$minigame's "masculinity level" - 5))(set:$scene's "events" to $scene's "events" + (a:"compliment cock"))(replace:?image)[<div class='top_left_half'>(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")(if:(cock:"rating","npc") > 8)[($remember:"huge cock",3,$npc's name, "<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>","none")]</div>](replace:?text)[{(display:"npc describe cock")You (twirl:"look at","gaze at","fawn over","run your hand over","gingerly touch","cup your hands around","gingerly touch") (display:"npc possessive pronoun") $cock. (nl:2)
(set:$reasons to (a:"nice","nice"))
(set:$his_name to $npc's "name")
(if:(cock:"girth","npc") > 8)[(set:$reasons to $reasons + (a:"thick","thick"))]
(if:(cock:"length","npc") > 8)[(set:$reasons to $reasons + (a:"long","long"))]
(if:(cock:"balls","npc") > 8)[(set:$reasons to $reasons + (a:"balls","balls"))]
(set:$reason to 1st of (twisted:...$reasons))
(if:(cock:"rating","npc") < 4)[(set:$reason to "comfort")]
(set:$cock to (twirl:"cock","dick"))
(live:1ms)[(display:"sex transactional compliment cock text")(stop:)]}](live:3s)[(display:"sex transactional next")(stop:)](display:"exhibitionist warning count"){(set:$gain to 1)(live:1s)[(if:$reason is "nice" or $reason is "comfort")[(if:(is_bim:))[($bimbo_dialogue:[(twirl:"Ohmygawd, look at your BIG, NICE cock! Can I touch it, pretty please? *giggle*","Oh wow, you're like, soooo big! I've never seen anything like it before!","Hehe, you've got such a nice dick! It's soooo hard, it's like a rock! Can I stroke it?","Eee, your cock is soooo big it's making me all tingly! Can I show you what my tongue can do?","Ohmygawd, it's soooo thick! I can barely fit my hand around it! *giggle* Can you feel how excited I am?","Your dick is soooo yummy! Can I taste it? *giggle* Just the tip, promise!","Ohmygod, is that all for me? Heehee, it's sooo big and hard, it's perfect for a silly bimbo like me!","Like, wow! Your cock is soooo nice! I can't wait to take it all in, big boy!","Wow, your dick is soooo yummy, I can't believe I get to play with it! Heehee, I'm such a lucky girl!","Mmmm, now that’s a cock a slut like me can really drool over! Heehee, it’s soooo perfect for my wet pussy!","Gosh, your cock is like, the most beautiful thing I've ever seen!","Ohmygod, that's like, the most awesome dick ever! I can't help but giggle and slobber all over it!","Wow, your dick is, like, soooo huge! I'm just a dumb bimbo, and your cock makes me even dumber!","Mmm, your cock... it's just, like, so impressive! I bet you're gonna fill me up sooo good!","Ohmygod, your cock is soooo yum! I can't wait to ride it, it's just too perfect, I'm gonna be such a dirty girl for you!","Hehe, look at your big, hard cock! It’s just begging for my tight little pussy! I can't wait, you're gonna make me feel soooo good!")])](else:)["(twirl:"Such a nice $cock...","You have a really nice $cock...","You have a really nice $cock, $his_name...","This is a magnificent $cock...","Your $cock makes me so wet...","I really like your $cock...","I love your $cock...","Your $cock is awesome...","Your $cock makes my pussy so wet...","I love your $cock...")"] you say(if:(cock:"rating","npc") < 6)[, even though it's (twirl:"nothing really special","not actually that big","nothing to write home about")(if:(twist:1,2) is 1)[. (twirl:"You know first-hand that guys need their egos stroked.","You know from personal experience, that guys have fragile egos")]].](if:$reason is "thick")[(if:(is_bim:))[($bimbo_dialogue:[(twirl:"Ohmigawd, look at that big cock! It's sooo thick, I don’t even know if I can wrap my hand around it!","Heehee, wow! That's one massive dick you've got there! I love how fat and tempting it is!","Mmm, your cock is sooo thick and juicy-looking! It's making me drool just looking at it!","Wow! Your cock is like, super fat! I bet it feels amazing when it slides in!","Oooh, your dick is soooo big and juicy! You gonna fill me up with that monster?","Ohmygawd, your thick, fat cock makes my pussy ooze just from looking at it! I can't wait to get a taste!","Wow, that's one fat cock! It's sooo big and I just wanna worship it like a slut!","Eee, your cock is sooo thick! Just the sight of it makes me feel all funny inside!","Mmm, your massive cock is just begging to be stroked and sucked! I can't resist it!","Ohmygawd, your thick dick is just insane! You’re gonna stretch me out so bad!","Oh wow, your fat cock is a real slut-pleaser, isn’t it? Makes me all fuzzy just imagining it inside me hehe~")])](else:)["(twirl:"It's so","Your $cock is so","It's just so") (twirl:"THICK","FAT","BIG and THICK","BIG and FAT","big, and FAT","THICK")(twirl:"!","...")"] you say.](else-if:$reason is "long")[(if:(is_bim:))[($bimbo_dialogue:[(twirl:"Ohmygawd, your cock is just sooooo long! It’s a real pussy stretcher! Heehee~!","Ooh, look at that meat monster! It must be like, suuper difficult to find jeans that fit! *giggle*","Mmm, your dick's just soooo huge! Looks like anaconda that could swallow me up!","Hehe, your big boy is such a skyscraper! I can’t believe it’s not touching the ceiling!","Your cock is like a submarine, I bet it dives into some reaaally deep caves! *giggle*","Oh wow, like, that's the longest cock I've seen! You have your own personal love train!","You're sooo massive! It's like your cock has its own zip code, hehe!","It’s like a tower! I bet if I were to climb it, I would get dizzy before I made it to the top!","Ohh, baby! Your cock is soooooo long, it could be a world record! *giggle*","Heehee, your dick is like a long, meaty python ready to squeeze every ounce of pleasure out of a dumb girl like me! Sooo yuuummy!","Mmmmm, your cock’s sooo ginormous! It’s like a long, big meaty rocket ready to blast off, hehe!","Ohmygod, your dick is, like, sooo looong! I bet I could use it as a flagpole! *giggle*","Mmm, look at how yummy and long that thing is... I could ride it like a pogo stick!","Oh wow, your dick is soo long and delicious!","Ohmygosh, your dick is like, super long! It must touch your knee, right?","Ugh, that thing is a monster! I can't wait to feel you stretching me out with it!","Wow, your dick is super-duper long! Its like an anaconda and I'm dying to get eaten! *giggle*","Oh, your cock is soooo long, I can't even wrap my hands around it! It's like a baseball bat!","My gosh, your cock is, like... huge! I bet you could fuck me from the next room over!","Oh, deary me, that cock is a sight to behold! It's like a long, thick python ready to swallow me whole!" ,"Mmm, your dick is like a Lovecraftian horror! Long, imposing, and I'm utterly fascinated! Hehe, you scared me... excited scared!")])](else:)["(twirl:"It's so","Your $cock is so","It's just so") (twirl:"long","monstrous","fucking long","big and LONG","LONG")(twirl:"!","...")"] you say.](if:$reason is "balls")[(if:(is_bim:))[($bimbo_dialogue:[(twirl:"Ohmygawd, your balls are soooo huge! Like, are you sure you're not backed up, big boy?","Hehe, those balls of yours are massive! I bet they're full of hot, thick cum just for me!","Wow, your balls are sooooo big! Must have been saving up for a dumb bimbo like me, huh?","Whaaaat, your balls are huge! Mmm, guess you can't help but get backed up, can't wait to make you spill!","O-oh my gosh, your balls are so big! Are you, like, ready to pump me full of cum, baby?","Woah, look at the size of those balls! Mmm, I can't wait to feel you explode inside me, big boy!","Mmm, your balls are soooo big, you must be really backed up! Don't worry, this slutty bimbo is here to help you out!","Hehe, those balls of yours look like they’re ready to burst!","Oh my Gawwwwd, your balls are huge! You need a little slut like me to take care of them, don’t you?","Mmm, your balls are so big! I bet all that cum is just aching to be released, right baby?","Look at those balls, they’re just begging to be drained! You want to empty them into me, don’t you?","Ohmygod, your balls are, like, soooo big! You must be, like, super backed up, aren't you?","Look at the size of those balls! I bet you’ve got a lot of pent up stress, hehe! Let me help you with that!","You’ve got such huge balls! Is there like, tonsss of cum in there for little ol' me?","Eeek! Your balls are massive! Are you that excited to see me? You may need to unload some of that tension, I can help!","Ohmygawdd, your ballsack is so heavy! I'm dying to see just how much they really are filled up!","Hehe, mmmm, I can feel how full your big balls are! I can't wait for you to show me how much you have in store!","Wow, you're so virile! Your balls are just sooo big and full, don’t you wanna blow them out just for me?","Me oh my, your balls are sooo big, baby! Are you gonna flood me good with your cum?","Your balls are huge, like damn! Just looking at them makes me so... wet! I want you to unload it all, every little drop!","Your balls are like boulders! Is there like, so much cum held in there? Mmmmm~ make me your cum dump!","Hehe, I bet your balls are super freaking full! You ready to let it all out in me, baby?")])](else:)["(twirl:"Your balls are so big too...","Your BALLS are so fucking big...","You got a lot of cum for me in these big balls?","Damn... your balls are huge,","And your balls are just massive,","And these balls... so big,")"] you say.](stop:)](live:2s)[(nl:2)
(if:$npc's tags contains "chad")[(if:(twist:1,2) is 1 or $reason is "comfort")[(twirl:"He just grins at you, confidently.","He doesn't respond - seems like he's fully confident in his manhood.","He grins a little bit.","He smiles.","He grins.","He just gives you a confident little grin.")](else-if:$reason is "balls")[(set:$gain to 1)"(twirl:"Yeah, they're big,","They're big, aren't they?") (display:"npc pronoun") says. "(twirl:"Think you can handle all my cum?","I cum like a firehose.","I wonder if you can handle all my cum.","Let's see if you can earn their contents.","Your job is to drain them, $your_name.")"](else-if:$reason is "thick")[(set:$gain to 2)"(twirl:"It's fucking thick, isn't it?","Really thick, isn't it?","Like a tree-trunk, huh?","Yeah, it's like a tree-trunk, isn't it, $your_name?","I wonder if that little pussy of yours can handle it,","I wonder if your little pussy can even handle it,","Makes you wonder if your little pussy can handle it...")" (display:"npc pronoun") says.](else-if:$reason is "long")["(twirl:"Yeah, it is,","You're right about that,","You're right about that,","That's right, $petname,")" he says. "(twirl:"Think you can take all of it inside you?","Think you can handle it all, $your_name?","Think you can handle it?")"](else:)["(twirl:"I know,","Yeah, it is,","Yeah, I know,")" (display:"npc pronoun") says. "(twirl:"Not many girls can handle it.","I wonder if you can handle it, $your_name.","I'm curious to see if you can handle it.","Let's see if you can handle it.")"]](else-if:$npc's "tags" contains "fuckboy")[(if:(twist:1,3) is 1 or $reason is "comfort")[(set:$gain to 1)(twirl:"He just grins at you, with that fuckboy smile.","He doesn't respond - just gives you that little fuckboy smile.","He grins.","He smiles.","He grins.","He just gives you a confident fuckboy grin.")](else-if:$reason is "balls")["(twirl:"Yeah, they're big, babe,","They're big, aren't they babe?","Spoken like a real slut,","Spoken like a real ho,","Spoken like a true slut!")"(set:$gain to 2) (display:"npc pronoun") says. "(twirl:"Think you can handle all my cum?","I cum like a firehose too.","I wonder if you can handle all my cum.","Let's see if you can earn their contents.","Your job is to drain them.")"](else-if:$reason is "thick")["(twirl:"It's fucking thick, isn't it?","Really thick, isn't it?","Like a tree-trunk, huh?","Yeah, it's like a tree-trunk, isn't it?","I wonder if your little pussy can handle it,","I wonder if your little pussy can even handle it,","Makes you wonder if your little pussy can handle it...")" (display:"npc pronoun") says.](else-if:$reason is "long")["(twirl:"Yeah, it is,","You're right about that,","You're right about that,","That's right, $petname,")" he says. "(twirl:"Think you can take all of it inside you?","Think you can handle it all, $your_name?","Think you can handle it?")(set:$gain to 2)"](else:)["(twirl:"I know,","Yeah it is, $your_name,","That's right, babygirl,")" (display:"npc pronoun") says. "(twirl:"Not many girls can handle it.","I wonder if you can handle it.","I'm curious to see if you can handle it.","Let's see if you can handle it.")"]](else-if:$npc's "personality" > 7 or $npc's "tags" contains "gentleman")["(twirl:"Thank you, $your_name,","Why, thank you, $your_name,","Glad you like my equipment, $your_name,","Glad you think so, $your_name,")" (display:"npc pronoun") (twirl:"smiles genuinely","gives you an appreciative smile","smiles"). (set:$gain to 2)](else-if:$npc's "tags" contains "jock")["(twirl:"Not just my body that's epic, huh?","You like my equipment, huh?","Yeah, I thought you'd like it, hah,","Yeah, pretty nice, huh?")" he says.(if:(Random:1,2) is 1)[(set:$gain to 2) "(twirl:"I had to work out to get in shape - but this bad boy, I was born with.","You're a lucky girl, to be handling it today...","I think you'll enjoy yourself.","He's eager to make acquaintance with your insides.")"]](else-if:$npc's "tags" contains "nerd")[(if:(cock:"rating","npc") < 6)[(set:$gain to 3)(twirl:"That seems to give him a big confidence boost.","He seems to really like that compliment.","He smiles from ear to ear, clearly not used to hearing compliments about his cock.")](else:)[(set:$gain to 3)(twirl:"That seems to give him a big confidence boost.","He seems to really appreciate your compliment.","He smiles from ear to ear as you fawn over his big dick.")]](else-if:$npc's "generation" is "genx")[(if:$reason is "comfort")[(set:$gain to 2)(set:$age to $npc's "age")"(twirl:"In all my $age years, no one's ever said that to me - thank you!","You know, it does a guy's heart good to get a compliment like that, hun,","You know, it means a lot to get a compliment about my johnson. Haven't heard a girl say that, in all my $age years,")" he says.](else:)["(twirl:"Packin' more than you expected, for an old guy?","More than you expected, for an older guy, huh?","Not bad for an old fogey like me, huh?","Not bad, huh?")"]](else-if:$npc's "generation" is "genz" and (twist:1,2) is 1)[(set:$age to $npc's "age")"(twirl:"It's pretty fire, ain't it?","Thanks, babe,","Thanks, $petname,","No cap?","No cap?","Thanks, fam,","Yeah, I got a genetic W, I guess,","I bet my cock will be living rent-free in your head for a few days after this,")" (display:"npc pronoun") says.](else-if:$npc's "tags" contains "creepy")[(twirl:"He just smiles creepily.","He just chuckles and gives you a creepy smile.","He gives you a creepy smile.")](else:)[(if:$reason is "comfort")[(twirl:"He's clearly not used to hearing those kinds of compliment about his unimpressive cock.","He gets a big confidence boost from your compliment.","He smiles from ear to ear, clearly not used to hearing those sorts of things about his very underwhelming junk.")](else-if:$reason is "nice" or $reason is "long")[(if:(twist:1,2) is 1)[(twirl:"He smiles.","He smiles from ear-to-ear at your slutty compliment.","He gives you a big smile.","He clearly likes your lewd compliment.")](else:)["(twirl:"Think you can handle it, $your_name?","What a little slut! I love it,","Glad you like it,","Hah, spoken like a true slut!","Haha, you really are a slut, $your_name,","Damn, you really are a slut,","Well, you'll be taking it all in, $your_name,","I hope your little pussy can take it all, $your_name,")" (display:"npc pronoun") says.]](else-if:$reason is "balls")["(twirl:"Only sluts compliment a guy's balls,","Yeah, they're pretty big, aren't they?","You like guys with big balls, huh?")" he smiles. "(twirl:"Think you can handle all my cum?","I cum like a firehose.","I cum buckets.","Can't wait to unload them all over you.")"](else-if:$reason is "comfort")[(twirl:"He smiles, clearly not used to compliments about it.","He grins appreciatively, clearly not used to comments about his dick.")](else:)[(twirl:"He grins at you.","He smiles.","He just chuckles.","He tells you it's his third leg.")]](if:$gain > 0)[(nl:2)(display:"gain his satisfaction")](stop:)]}{(if:$choice is "spit")[{(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to (twirl:"You should've swallowed...","Why didn't you swallow?"))(set:$minigame's "masculinity level" to (min:100,$minigame's "masculinity level" + 10))}(print:"<video disableRemotePlayback src='img/scenes/generic/sex/cum/mouth/spit.mp4' autoplay='' loop='' muted='' playsinline/>")($play:"sound","spit")(live:500)[(set:$se to "splat " + (text:(twist:1,5)))(display:"play sound")(stop:)]](else-if:$choice is "swallow")[{(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to (twirl:"Damn, you really swallowed it.","How did it feel, drinking that guy's cum?","Did you enjoy swallowing cum?"))(set:$minigame's "masculinity level" to (max:50,$minigame's "masculinity level" - 5))}(display:"sex swallow")]}(if:$choice is "swallow")[(twirl:"You steel yourself and","Steeling yourself, you","You","Looking up at him, you","Looking up at your *generous* sperm donor, you","Submissively, you") (twirl:"swallow.","take a big gulp.") (twirl:"You feel the hot, slimy mess slide down your throat, and into your stomach.","You taste every bit of the sticky, cummy mess oozing down your throat.","You can tell your breath is gonna smell like cum for the foreseeable future.","You feel his warm, wet cum trickle and glop down your throat.")
(print:'($set_status:"cum breath","' + (text: $npc's "name") + ' nutted in your mouth, and your breath smells...")')(set:$gain to 2)(display:"gain his satisfaction")
"(twirl:"Good girl,","That's it,","Wow,","That's right,","Perfect,")" (print:$npc's "sex name") (twirl:"says in satisfaction","says, approvingly","says in admiration","says, grinning") (twirl:"as you consume his babies","as you drink the contents of his balls","as he watches you drink his ball-snot","as he watches you drink his jizz","as you show your clean tongue","when you show your clean tongue").](else-if:$choice is "spit")["(twirl:"What a pity!","A pity,","Too bad,","Wasting all that good cum,")" he (twirl:"jokes","smiles down at you","smiles at you","smiles at you condescendingly").
(set:$gain to -1)(display:"gain his satisfaction")](display:"refresh portrait")
(display:"sex transactional end"){
(if:(is_breeder:) and not ($protection's "active" is "true"))[(if:$breeder_ruined_orgasms is 0)[
(twirl:"It's like a sneeze that never comes.","You *would've* cum, but you don't.","It's so frustrating.","Your whole body prepares for a powerful orgasm, but it never arrives.","The feeling is one of ultimate frustration.","The feeling is dull and yet sharp - extremely frustrating.","You bite down on your lip and almost want to cry with the intensity of the frustration.","Your body hits its peak of pleasure - but yet, you don't cum.","You *can't* cum. You know you can't. FUCK!","You can't cum.","It's like a sneeze that never arrives.","It's like you want to sneeze, but you can't.","The feeling is so goddamn frustrating.") (twirl:"The ruination of your orgasm buzzes your brain like an INCORRECT sound at a game show.","A fizzling electric shock cuts the pleasure off, turns it into pain - desire.","Desperation fills you.","You're filled with a shocking sense of despire, that you only want one thing.","Your body won't let you cum, not on a breeder pill. Not without a big, old-fashioned creampie.","There's only one thing that will satisfy you, and you know it.","Your brain fizzles with disappointment, and the desire for just one thing. One creamy, warm thing.","There's only one thing you want - to be inseminated.","There's only a single thing that will satisfy you.")(inc:'breeder_ruined_orgasms')](else:)[(inc:'breeder_ruined_orgasms')(set:$bliss to (min:$breeder_ruined_orgasms,9) of (a:"first","second","third","fourth","fifth","sixth","seventh","eigth","gajillionth"))(twirl:"For a $bliss time, your whole body misfires.","For the $bliss time, you can't cum.","For the $bliss time, your body wants to cum, but can't.","For the $bliss time, your body is frustrated.")(if:(twist:1,2) is 1)[ (twirl:"You know what will satisfy you.","Only one thing will satisfy you.","There's only one thing that would fulfill you.","There's only one single thing that would satify you.")]]](else:)[
(display:"describe pussy")
(set:$bliss to (twirl:"pleasure","ecstasy","release","pleasure","ecstasy","bliss","euphoria","pleasure-lightning","delight","pleasure","ecstasy","release","relief"))
(if:(twist:1,2) is 1)[(set:$bliss to (twirl:"sparkling, white-hot ","beautiful ","amazing ","sparkling ","wonderful ","brain-melting ","beautiful, brain-melting ","mind-melting ","crackling ","white-hot ","orgasmic ","wonderful, orgasmic ","tension-shattering ","beautiful ","soul-cleansing ","mind-blowing ","mind-blowing ","white-hot ","pure, mind-blowing ") + $bliss)]
(set:$text to (twirl:"waves of $bliss crash over you","you're enveloped in $bliss","$bliss finally washes over you","epic pulses of $bliss wash over you","$bliss pulses through your body, spreading out from your $pussy"))
(set:$text to (twirl:"You whimper and moan,","You moan and mewl,","You whimper,","You moan,","You whimper","You moan","You make all sorts of lewd whimpers","You give a loud, debauched moan") + " as " + $text + ".")
(if:$orgasms > 0 or (twist:1,2) is 1)[(if:(is_bim:))[($bimbo_dialogue:[(twirl:"Ohmygod, baby! AHHH! Ooohhh, I'm gonna...gonna...gonna...YES! YES! I'm going I'm going! Ahhh~!!!","Oooh, Ahhh~!! Oh my god, I'm... I'm about to... YESSSS!!","Oh Oh Oh Oooohhh!!! *gasp* I can't.. I can't hold it in... I'm gonna... AAAHHHH!!!","Oh Fuck! Ahh~! You're making... making...","Ohmygod ohmygod, I'm gonna... I'm gonna... Ngh~ it's too much! Ahh~ 💖","Mmm, I feel it, ohmygod I feel it, I'm gonna... AH! Yes! Yes, I'm cumming, fuck, I'm cumming! 😫","OH! Fuck, I can't stop it, I'm... I'm... Ahhhh~! 😵💫","I'm gonna... I'm gonna... OOH! Fuck, I'm cumming, I'm cumming so hard! 💦💦","Ungh, it's... it's coming... I'm gonna... Fuck, there it is... AHHHN~ 😩","Ahhh~! It's happening... It's... Fuck, too much... I'm cumming, I'm cumming! 😵💫","Ohh, fuck... I can't stop... Ahhh! FUCK! I'M CUMMING! 💗","Hehe, I feel... I feel it coming... I'm... ohhhh~ 😵💫","Ohmygosh, I'm gonna cum! I'm gonna cum! FUCK! There... there it is! Ahhhh~! 💖","Nyaaa, it's too much... I... I... Ahhhh! Cumming, I'm cumming! 😩","Mmm, I... can't... hold on... Ahhh! Fuckkk!~, Cumming, I'm cumming so hard! 💦","Ohhh~ fuck, I'm... I'm gunna...! I'm gunna cum!!! AHHN~ 💗!","Mmm~~ yes! Ohmygod, yes! Yessss! I'm so close, soooo close! Nnghh~!","Ohhhh~! I'm so close! Sooo close! I'm... I'm... UGH! 🥵","Mmm~! Oh, fuck, yes! I'm gunna cum! I can feel it! Fuck, it's so close! Mmmm~~~! 🥴","Ohhhhhh! I'm... I'm...! Oooooh, fuck! I'm cumming!!! AHH~ 😵💫!","Mmm, yes! Harder, deeper! Yes, yes, YES! I'm... I'm about to! Ugh~! 💦","Oh! Ohhh~! Yes, YES! I'm... I'm... UNGH! I'm cumming!! 😝","Yes, yes, YEEEEESSS!! Nnnngh~! Fuck, I think... I'm gonna cum! I'm cumming! Ahhnn~~~ 💘","Oh fuck! Oh fuck! I'm... I'm... I'm gonna cum! Ah~! Cumminggg~! 💦😝","Oh, oh, oh! I... I'm gonna cum! I'm gonna cum! A-augh~! YESSS~~~! 🥵 ")])](else:)["(twirl:"Oh fuck oh fuck oh fuck!!!","Oh goddd-dd-dd!!!","Oh fuckkk k-","Nnngngh!","Nnghhh-","OH fuh- fuckkkk...","Oh fuck- FUCK!","Ohhh FUCK...","Nnngh OHGODOHGODOHGOD-")(if:(twist:1,2) is 1)[ (twirl:"I'm c- cumming","I'm gonna c-","I'm gunna... gunna...","I'm gonna c- cum-","I'm gonna cum-")(if:$orgasms > 0)[ (twirl:"again...","AGAIN...","ag-","again-","another t- time-","aga...")]]"] (print:(lowerfirst:$text))](else:)[(if:$orgasms is 0)[The (twirl:"tension","tightness inside you","tension inside you","tension","pressure","pressure inside you","tension inside you","tension") (twirl:"builds and builds","builds","slowly builds up and up")(if:(Random:1,3) is 1)[, (twirl:"like a screw getting tighter and tighter","like getting to the top of a rollercoaster peak","like you're driving fast toward a jump","until")]...
(nl:2)
(set:$fuck to (twirl:"Your world goes white.","<span class='chromatic'>SPLOOSH!!!</span>","For a moment, everything is wonderful, and you hit the plateau.","In this moment, you forget about all your problems.","You forget about the world around you."," Your spine becomes a contorting live wire.","You bite down hard on your lip.","Your toes curl.","It's like a long, tingling, amazing stretch.","Huge amounts of heat emanate from your nethers as you hit your peak.","Your head goes completely foggy - all you want is for the motion to keep repeating and not stop.","You hit the point of no return.","Your body suddenly tenses up, and then releases all its energy.","There's a massive explosion.","It's the exact opposite of stubbing your toe.","It hits like a full-body sneeze.","It's a thousand elephants breaking through the eye of a needle.","You lose absolutely ALL control.","Your mind is transported to a zen-like place: free from thought. Only pleasure.","There's a French idiom for orgasm: *La Petite Mort*, meaning, 'The little death.' It feels apt in this moment.","It's like a sneeze, only better.","The feeling is unforgettable.","It feels like it never ends.","The feeling almost brings you to tears.","You shatter into a million pieces around him.","Rippling, rippling, rippling, like a flapping overlapping of soft flames, soft as feathers, running to points of brilliance, exquisite and melting you, all molten inside.","It feels like heaven.","You are the earth, the mountains, the tigers, the rivers that flow into the lakes, the lake that became the sea.","It's a wild thrill; joy, fear, madness, excitement, surrender to arms that are too strong, fate that is moving too fast."))
(if:$orgasm_type is "sex" and (twist:1,2) is 1)[(display:"npc describe cock")
(set:$fuck to (twirl:"Your $pussy clamps down, and you can feel it rippling.","Your head goes completely foggy - all you want is for the motion of this $cock to keep repeating and not stop.","You clamp down on his $cock.","Your pussy spasms and clamps down on the $cock drilling it.","In that moment, it feels like you and him are one person.","It feels like, in this moment, you and " + $npc's "sex name" + " are one person.","Your pussy clenches and milks his $cock."))
]
(print:$fuck)
(print:$text)]]]
}{
(if:(is_breeder:) and not ($protection's "active" is "true"))[(if:(twist:1,2) is 1)[*(twirl:"My legs are shaking...","I can barely breathe...","My whole body is shaking...","I can't... go on...","I'm trembling, all over...","I don't know how long I can last...") (twirl:"I know it would feel SO good...","It would feel so good, to let him cum inside me...","It would feel so good, to feel him cum inside...","It would feel incredible, to let him creampie me...","It would feel SO good, if I just let him...","It would feel SO good... so fucking good...")(if:$character's "masculinity" > 85)[ (twirl:"But I can't get pregnant!","But I'll get pregnant!","But then, I'll get pregnant!","But I'd get pregnant!")]*(print:" ")]](else:)[
(set:$desc to (min:$orgasms,10) of (a:"first","second","third","fourth","fifth","s- sixth","umpteenth","millionth","bazillionth","gajillionth"))
(if:(twist:1,2) is 1)[(set:$text to (twirl:"you realize your legs are shaking","it seems like you've forgotten how to breathe","you inhale sharply, once you realize you've forgotten to breathe","your whole body is shaking","you're breathing hard","a little muscle in your leg is spasming","you feel little muscles in your inner thigh spasm","you feel your heart beginning to beat again","it seems like you can feel your blood flowing through your body again, like milk","you realize your foot is cramped","your foot gets a cramp","your legs are shaking","your body is trembling","you collapse, breathing hard"))(twirl:"For a moment, $text","After your $desc orgasm, $text","Afterwards, $text","In the afterglow, $text",(upperfirst:$text),(upperfirst:$text),(upperfirst:$text)). ](else-if:$orgasms > 1 and (twist:1,2) is 1)[(twirl:"Your brain is seriously starting to turn to mush.","Your mind is clouded with all these orgasms.","Your body is trembling - it feels like you've had a million orgasms.","That was your $desc orgasm - you can't think straight anymore.","You doubt you'll be able to walk straight later.","You don't know whether you'll be walking straight after this.","Your brain is a blissful pink pool of feminine mush.","Your brain has been hammered into a blissful pink mush.","You can't think straight anymore.")(print:" ")](else-if:$orgasm_type is "sex" and (twist:1,3) is 1)[(display:"describe pussy")(display:"npc describe cock")(twirl:"You need to pause for a second before ","You need a moment to breathe, before ","Your legs are shaking hard - you need a sec before ","Your legs are spasming, your brain malfunctioning - you need a bit before ")(display:"npc pronoun") (twirl:"goes back to fucking you","starts pounding you with his $cock again","starts ramming you with his $cock again","starts mashing your $pussy with his $cock again","starts subjecting your $pussy to his $cock again").(print:" ")]]
}(if:$minigame_played is "true")[(display:"sex transactional result")](else:)[<div class="game_header">(print:"<video disableRemotePlayback src='img/" + $doggy_img + "' autoplay='' loop='' muted='' playsinline/>")<div class="game_header_text">
<span class='chromatic'>[(display:"transactional sex describe")]<text|</span></div></div><div class='options'>[<mark>(text-style:"fade-in-out")[Getting fucked...]</mark>]<options|</div>{
(set:$index to 1)(set:$chaos to 0)
(live:1s)[
(inc:'index')
(if:$index > 5)[(replace:?text)[(display:"transactional sex describe")](set:$index to 1)]
(set:$threshold to 18)
(if:$result is "fail")[(set:$chaos to $chaos + (twist:1,4))]
(set:$bonus_count to $bonus_count + (ceil:(cock:"rating","npc")))
(if:(win:))[(set:$bonus_count to $bonus_count + (ceil:(cock:"rating","npc")/2))]
(if:$bonus_count > $threshold + ($orgasms * 15))[(set:$bonus_count to 0)(set:$your_pleasure to (min:$your_pleasure + 1,10))(set:$lubrication to (min:$lubrication + 1,10))]
(inc:'his_pleasure_count',7)(if:$orgasms > 0)[(inc:'his_pleasure_count',6)](if:$orgasms > 1)[(inc:'his_pleasure_count',4)]
(if:$beg_creampie is "true")[(inc:'his_pleasure_count',15)]
(if:$his_pleasure_count >= $threshold)[(set:$his_pleasure_count to 0)(set:$his_pleasure to (min:$his_pleasure + 1,$his_pleasure_threshold))(display:"update his pleasure")]
(display:"update your pleasure")
(if:$his_pleasure >= $his_pleasure_threshold)[(stop:)(replace:?options)[(link:"He's gonna cum...")[(set:$result to "pass")($cs:"sex transactional result")]]]
(if:$your_pleasure >= 10)[(stop:)(replace:?options)[(link:"You're gonna cum...")[(set:$result to "pass")($cs:"sex transactional result")]]]
(if:$chaos > $threshold)[(stop:)(replace:?options)[(link:"You moan...")[(set:$result to "fail")($cs:"sex transactional result")]]]
]}](replace:?right_options)[(print: "<img class='greyborder' src='img/characters/sex/doggy/" + $character's "id" + ".jpg' width='100%' height=auto>")]{
(if:$disable_caught is "Getting Caught Disabled: True")[(set:$scene's "interrupt chance" to 0)(set:$caught_chance to 0)](else:)[
(if:$gain is 0)[(set:$scene's "interrupt chance" to (min:100,(ceil:$scene's "interrupt chance" * 1.25)))](else:)[(set:$scene's "interrupt chance" to (min:100,(ceil:$scene's "interrupt chance" * $gain)))]
(set:$gain to 0)]
}(if:$sex_outfit is "cum-stained")[(print:$outfit's image)Since your clothes are cum-stained, you decide to go home and get changed.](else:)[Since your clothes were destroyed, you have to sneak out!]
<div class='options'>(set:$next to "advance time")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")</div>(set:$sex_loop to $doggy_loop)(display:"play sex loop")(set:$option to "none")<div class="game_header">(print:"<video disableRemotePlayback src='img/" + $doggy_img + "' autoplay='' loop='' muted='' playsinline/>")<div class="game_header_text">
<span class='chromatic'>[(display:"transactional sex describe")]<text|</span></div></div><div class='options'>[(link:(twirl:"Beg for a creampie","Ask for a creampie","Creampie me!","Beg to get seeded","Beg to get inseminated","Ask him to inseminate you"))[(display:"sex transactional creampie beg")](link:(twirl:"Resist","Resist!","Resist the urge","Resist!!!") + " 🧠")[(display:"sex transactional breeder resist")]]<options|</div>{(display:"npc describe cock")(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to "It was so pathetic, how you begged for him to cum inside you...")(set:$minigame's "masculinity level" to (max:50,$minigame's "masculinity level" - 5))(set:$your_choice to "creampie")(replace:?text)["(twirl:"P- please...","Please,","Please, $his_name,","P- please, $his_name...")" you (twirl:"beg","whimper","plead","beg","Whimper"). "(twirl:"Cum inside me. Cum deep.","Shoot your load... inside me...","Cum... inside me...","Fill me up... cum inside.","Blow that load... inside me.","Cum inside me...")"(nl:2)(if:(checkdm:$npc,"id","is","stepdad"))["No. Absolutely not. I'm not getting my own stepdaughter pregnant."](else:)[(set:$his_choice to "creampie")(if:$npc's "tags" contains "chad")["(twirl:"What a slut. Of course,","I was planning to,","Want my hot, superior seed inside you, huh?","What a fuckin lil' slut... how could I say no?","Haha, how could I say no to such a good little slut?","Be careful, my stud-cum has a habit of getting girls pregnant...")"](else-if:$npc's "tags" contains "gentleman")["(twirl:"Sure, if you say so,","I can't say no, when you ask so nicely,","What guy could say no to that?","It would be my absolute pleasure.")"](else-if:$npc's "generation" is "genx")["(twirl:"Damn, getting to fill up such a pretty young thing as you... it's my lucky day.","Golly, getting to cum inside that tight, young little pussy - of course!","Can't say no to that!")"](else-if:$npc's "generation" is "genz" and (twist:1,2) is 1)["(twirl:"Sheesh...","No cap...") (twirl:"this is gonna be epic.","of course, slut!","this is gonna feel fuckin' epic...","you the GOAT!","it's the way you begged, for me.") (twirl:"Gonna bust this nut all up inside you.","Gonna blow this load inside ya.")"](else-if:$npc's "tags" contains "fuckboy")["(twirl:"Haah- you got it, girlie.","Sure thing, $petname.","Of course, $petname.","I was already gonna, $petname.","You didn't even have to ask. Haah-")"](else-if:$npc's "tags" contains "creepy")["(twirl:"Hehe, I bet I'll get you preggers.","I bet I'll get you pregnant!")"](else:)["(twirl:"My pleasure.","It would be my pleasure.","Of course!","How could I say no, when you ask so nicely?","How could I say no to such a cute little slut?","How could I say no to *that*?")"]]](replace:?options)[(link:"Next")[(set:$beg_creampie to "true")(display:"sex transactional get fucked")]]}{
(set:$blackjack_params to (dm:
"challenge","Win blackjack!",
"near victory","dynamic",
"skill check","intellect",
"skill check difficulty",(min:(50 + ($breeder_ruined_orgasms * 10)),100),
"near defeat","dynamic",
"difficulty","medium",
"npc","enabled",
"type","cards",
"victory","Good job!",
"defeat","Shit...",
"points to win",10,
"points",5,
"result passage","sex transactional breeder resist result",
"backdrop",$doggy_img
))(set:$blackjack_params's "lose modifier" to (min:$breeder_ruined_orgasms,3))(if:$character's "race" is "black")[(set:$blackjack_params's "bad icon" to "🤰🏾")]
(if:$character's "race" is "latin")[(set:$blackjack_params's "bad icon" to "🤰🏽")]
(if:$character's "race" is "white")[(set:$blackjack_params's "bad icon" to "🤰🏼")]
(if:$character's "race" is "asian")[(set:$blackjack_params's "bad icon" to "🤰🏻")]
(set:$blackjack_params's "good icon" to "💎")
(set:$blackjack_params's "good action" to (twirl:"resist the urge","resist your breeding urge","resist your Breeder pill","resist the breeding urge","resist the urge"))
(set:$blackjack_params's "bad action" to (twirl:"beg for his cum","beg for a creampie","give in","give into your breeding urges","succumb to the urge to breed","succumb to the Breeder pill"))
(set:$blackjack_params's "difficulty factor" to (twirl:"the number of Breeder-ruined orgasms","the number of orgasm misfires","the number of your ruined orgasms"))
($cs:"lights out initialize")}(display:"npc screen update sex guy")(set:$option to "none")<div class="game_header">(print:"<video disableRemotePlayback src='img/" + $doggy_img + "' autoplay='' loop='' muted='' playsinline/>")<div class="game_header_text">
<span class='chromatic'>[]<text|</span></div></div><div class='options'>[]<options|</div>(if:(win:))[(replace:?text)[(twirl:"You manage to","You somehow steel yourself and","Through sheer willpower, you") (twirl:"resist the urge","resist the overwhelming breeding urge","resist your primal urges"). (display:"transactional sex describe")](replace:?options)[(link:"Next")[(set:$beg_creampie to "false")(display:"sex transactional get fucked")]]](else:)[(display:"sex transactional creampie beg")]{
(set:$next to $location_params's "home")(display:"next")(unless:$character's "status" is "cum")[(set:$character's "status" to ($core_female_status:))](display:"refresh portrait")($passage_tags:"sex_finish")
}{(set:$minigame to (dm:
"difficulty",7,
"babe type","clothed",
"cock type","nsfw",
"masculinity level",80,
"reason 1",(twirl:"You were really ready to have sex in a "+ (text:$room) + ".","You'll just sleep with anyone, huh?","You were willing to have sex with a random dude..."),
"reason 2","How did you like that?",
"reason 3","You looked so cute and desperate.",
"afterwards","sex transactional finish"))
(set:$your_name to $character's "female name")
(set:$option to "none")
(set:$breeder_ruined_orgasms to 0)(set:$beg_creampie to "false")
(set:$scene_type to "sex transactional")(set:$caught_chance to 0)
(display:"breathing ambience")(set:$his_choice to "none")
(set:$sex_descriptions to (twisted:"sensation","sound","he talks","body","action","thought","you talk"))
(display:"petname initial")(display:"sex sound variants")(set:$his_pleasure to 0)(set:$your_name to $character's "female name")(set:$his_pleasure_threshold to $npc's stamina)(set:$his_satisfaction to 5)(set:$energy to (max:3,(get_fitness:)))(set:$max_energy to (max:3,(get_fitness:)))(set:$your_pleasure to 0)(set:$orgasms to 0)(set:$stamina_stat to "disabled")(set:$control_stat to "disabled")(set:$lubrication_stat to "enabled")(display:"refresh stats sex girl")(set:$lubrication to (ceil:$character's "arousal"/2))
(set:$character's "pussy" to "inaccessible")
(display:"sex doggy transactional")(display:"sex oral")(set:$oral_loop to $sex_loop)(set:$npc's "cock" to "not out")($passage_tags:"interrupt_chance")[<div class='options'><mark>Chance of getting caught:</mark></div>(display:"sex transactional chance of getting caught")(set:$your_choice to "none")
(set:$his_name to $npc's "name")
(display:"sex transactional option links")(display:"update caught chance")(unless:$current_activity is "Go clubbing")[(if:$music is "yes")[($centered:[(link:"No music")[(set:$music to "no")(set:$song to 0)(display:"play song")]])]]]<options|
(display:"npc screen update sex guy")(display:"sex transactional music")
(set:$surface to $couch)
(if:$doggy_text's 1st is "couch")[(set:$surface to $couch)](if:$doggy_text's 1st is "desk")[(set:$surface to $desk)]
(if:$doggy_text's 1st is "floor")[(set:$surface to $floor)]
(if:$doggy_text's 1st is "wall")[(set:$surface to $wall)]
(if:$doggy_text's 1st is "standing")[(set:$surface to $wall)]
(set:$scene's "status" to "foreplay")(live:2s)[(display:"fix outfit")(stop:)](if:(datanames:$outfit) contains "id" and not ($outfit's tags contains "mens" or (is_nude:)))[(set:$sex_outfit to $outfit's "id")](else:)[(set:$sex_outfit to "none")]
(display:"refresh girl sex meters")
}(replace:?options)[(display:"sex transactional option links")]{
(display:"npc describe cock")
(if:(cock:"length","npc") is 1 and (cock:"length") is 1)[(twirl:"You can't help but smirk at the sight. It's almost endearing, how your dicks would've matched up.","Your eyes flicker over his less than impressive length and you feel a twinge of familiarity. His dick is approximately the same modest length as your old package.","You can't help but glance at his package and see your past self reflected. It's as small as your old cock, a tiny stub of meat without much to boast.","Your eyes meet his small penis with an unexpected familiarity. A smirk creeps up your cheeks, acknowledging the shared unimpressive length. His dick is as small as yours was.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 1)[(twirl:"His cock, though not impressive itself, surges with a little more length than yours. You feel a sense of inferiority, your old package wouldn't have matched up.","You glance at his modest length, a twinge of submission sweeping over you as you realize it's slightly longer than your old package.","There's a small sense of defeat as you take in his cock, just a tad longer than yours used to be.","Your gaze lingers on his dick, a smidge longer than your old one, and you can't help but feel a pang of submission. He's got you beat, if only a little bit.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 1)[(twirl:"His modestly longer cock makes your old package seem almost pitiful by comparison. You can't help but feel emasculated.","You feel a throb of arousal as you notice the extra length he has on your old cock. His advantage makes you feel submissive, insecure.","His average length casts a shadow of inadequacy on your past self. The size difference isn't huge but it's enough to make you feel a sense of submission.","The sight of his mildly superior cock stirs a strange mix of feelings in you. It's definitely longer than your old one, making you feel slightly emasculated.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 1)[(twirl:"The difference in length is noticeable, his average cock makes your old package look positively pitiful. You feel a thrill of submission.","His length is more than yours was, you can't help but feel dwarfed. You feel a pang of vulnerability.","His more substantial length becomes a source of arousal for you, making your old package seem insignificant in comparison.","Looking at his longer penis, you can't help but feel a sting of humiliation, knowing your old cock wouldn't have measured up.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 1)[(twirl:"His length is nothing to write home about, but compared to your old cock, it's certainly intimidating. You feel a thrill of submission.","His average length takes on a towering presence compared to your old package. You find yourself feeling a bit emasculated.","His cock is average, but it easily overshadows your old size. You feel a wave of submission wash over you.","In comparison to your old package, his dick is quite formidable. You can't deny the sense of submission it instills.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 1)[(twirl:"His length seems monstrous compared to your old package. You can't help but feel a sense of awe and submission.","There's no denying it, his cock is significantly larger than yours was. It's enough to make you feel emasculated.","Your gaze fixes on his impressively longer cock. Your old one wouldn't have stood a chance. You feel instinctively submissive.","In the face of his superior size, you can't help but feel your old package was inadequate. The emasculating feeling is strangely arousing.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 1)[(twirl:"His intimidating length makes your old cock seem pathetically small. It's a blow to your ego but it fuels your submission.","His dick towers over the memory of your old package. It's emasculating and yet, it turns you on.","He's hung compared to your old package. The size difference is intimidating and makes you feel emasculated.","His hefty length completely dwarfs your old cock. It's a severe blow to your male pride and you feel a wave of submission.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 1)[(twirl:"His length is intimidating, making your old package feel micro in comparison. You feel deeply submissive.","His massive length makes your old cock seem laughable. It's emasculating, but it drives a pulse of arousal through you.","Your eyes widen at his extraordinary length. Your old cock wouldn't stand a chance against it. You feel your submission deepening.","His cock is far larger than yours could have ever been. It's emasculating, but awakens a deep animalistic submission in you.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 1)[(twirl:"His impressive length leaves you feeling severely inadequate. It's emasculating, but it drives your submission.","His cock is a monster compared to your old package. You can't help but feel helpless and submissive.","His gigantic length makes your old cock seem almost invisible. You feel completely emasculated.","Your gaze lingers on his massive length, towering over the memory of your old cock. You feel a surge of submission.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 1)[(twirl:"His enormous length makes your old cock feel utterly insignificant. It's deeply emasculating and stirs a fervent submission within you.","The sight of his colossal cock dwarfs your old package, making you feel completely emasculated. Your submission reaches new depths.","His staggering length is leagues beyond your old cock. You can't help but feel utterly submissive in the face of his superior size.","His massive length puts your old cock to shame, making you feel totally emasculated and helplessly submissive.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 2)[(twirl:"You suppress a smirk as you notice his shorter length, knowing that your old cock had a slight advantage.","Your eyes linger on his small package, feeling a bit superior knowing your old cock was modestly longer.","Your gaze falls on his diminutive length, and you can't help but feel a bit of smug pride; your old package was slightly bigger.","You can't help but feel a sense of superiority; his cock is smaller than your old one, making you feel more confident.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 2)[(twirl:"His length seems familiar, a near-clone of your old cock. It's almost comforting to see.","You can't help but feel a connection to his modest length, which mirrors your old package.","His size is nearly identical to your old cock, and a sense of familiarity washes over you.","You feel a strange kinship with his modest length, as it closely resembles your old package.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 2)[(twirl:"His slightly longer length evokes a twinge of envy and submission, knowing he was just a bit bigger than your old package.","You can't help but feel a little inferior as you take in his slightly larger length compared to your old cock.","His modestly longer cock ignites a spark of submission within you, as it outdoes your old package.","You steal a glance at his slightly superior length and feel a touch of emasculation, knowing he outdoes your old package.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 2)[(twirl:"His average length looms over your old package, making you feel a bit emasculated.","You feel a sense of submission as you realize his length is noticeably bigger than your old cock.","The sight of his longer cock makes your old package feel meager in comparison, evoking a sense of insecurity.","His length easily outmatches your old cock, making you feel a pang of submission and vulnerability.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 2)[(twirl:"His average length leaves your old cock feeling inadequate, stirring up feelings of submission.","You can't help but feel a mixture of arousal and emasculation, faced with his clearly superior length.","His cock seems imposing in comparison to your old package, making you feel submissive.","The glaring size difference between his length and your old one makes you feel emasculated and submissive.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 2)[(twirl:"His considerable length makes your old cock seem laughably small, making you feel submissive.","You can't help but feel like a lesser man in the face of his impressive cock, significantly longer than your old package.","His length puts your old cock to shame, driving you into a haze of submission.","The size difference between your old package and his endowed length makes you feel intensely emasculated.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 2)[(twirl:"Faced with his intimidating length, you feel completely emasculated, knowing your old cock couldn't compare.","The sight of his dominant length sends waves of submission through you, dwarfing your old package.","His length is far beyond what you used to have, making you feel utterly submissive.","His impressive length is enough to make you feel like a lesser man, your old cock paling in comparison.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 2)[(twirl:"His massive length makes you feel completely emasculated, knowing your old cock was nowhere near his size.","You feel a rush of submission as you take in his imposing size, rendering your old package utterly inferior.","His length is leagues beyond your old cock, making you feel a deep sense of emasculation.","There's no denying his intimidating size, which leaves your old package feeling utterly insignificant and drives you into submission.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 2)[(twirl:"His colossal cock dominates your thoughts, making your old package seem pitiful. You've never felt so submissive.","The sight of his enormous length makes you feel incredibly emasculated, your old cock couldn't possibly compete.","His towering size reduces your old package to a distant memory, utterly emasculating you.","You can't help but feel weak and submissive, faced with the enormity of his cock compared to your old one.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 2)[(twirl:"His gargantuan length makes your old cock seem utterly irrelevant, sending you into a spiral of submission.","The sight of his monstrous length leaves you feeling deeply emasculated, dwarfing your old package.","You can't help but feel overwhelmed by his immense size, making your old cock look pathetically small.","You're struck with a powerful sense of emasculation as his gigantic cock renders your old package insignificant and drives your submission to new heights.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 3)[(twirl:"You can't help but smirk at his tiny cock, reminiscing about how your old package would have put him to shame.","You feel a sense of superiority as you take in his diminutive size, knowing your old cock was noticeably larger.","His embarrassingly small cock makes you feel victorious, as your old package easily outclassed it.","You can't help but feel a little smug, remembering how your old, more impressive cock would have overshadowed his.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 3)[(twirl:"As you take in his slightly smaller length, you feel a bit of pride in how your old package was more substantial.","You can't help but feel a sense of satisfaction, knowing your old cock had a bit of an edge over his.","His modest length doesn't quite measure up to your old package, inflating your sense of superiority.","You take note of his less impressive size and feel a surge of confidence, remembering your old cock was bigger.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 3)[(twirl:"His length mirrors your old package, making you feel a connection to him on a primal level.","You appreciate the familiarity of his size, as it's a perfect match to your old cock.","You're pleased to see his length matches your old package, feeling a sense of camaraderie.","His modest length is a near-clone of your old cock, which fills you with a sense of kinship.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 3)[(twirl:"His slightly larger cock evokes feelings of arousal and a tinge of submission, making your old package seem a little inferior.","You can't help but feel your old cock would have been a touch outclassed by his more substantial length.","His modestly superior length sends a shiver down your spine, making you feel a little submissive.","The sight of his more ample size compared to your old package makes you feel just a bit emasculated.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 3)[(twirl:"You're faced with the fact that his length was notably larger than your old cock, stirring submissive feelings within you.","His average size fills you with a sense of emasculation, as it surpasses your old package.","His more generous length compared to your old cock makes you feel vulnerable and submissive.","You can't help but feel a little like a lesser man in the face of his superior length, making you crave submission.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 3)[(twirl:"You feel tiny and submissive, knowing your old cock would have been dwarfed by his impressive length.","His well-endowed size reduces your old package to a mere afterthought, igniting your sense of emasculation.","The sight of his sizable length makes you feel like a lesser man, your old cock paling in comparison.","His ample size leaves your old package feeling woefully inadequate, driving you into submissive territory.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 3)[(twirl:"Your old cock feels powerless compared to his dominant length, making you feel intensely submissive.","His commanding size makes your old package seem pitiful in comparison, sending you into a spiral of emasculation.","The difference in size between your old cock and his sizable length leaves you feeling submissive and eager.","You can't help but feel humbled by his larger cock, as it easily outperforms your old package.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 3)[(twirl:"His massive length makes you feel utterly emasculated, your old cock whimpering in comparison.","The imposing size of his cock sends shivers down your spine, reminding you of how inferior your old package was.","You feel completely dominated by his huge length, reducing your old cock to a distant memory.","His impressive size utterly dominates your old cock, filling you with a deep sense of submission and desire.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 3)[(twirl:"His monumental cock size triggers feelings of lust and emasculation, your old package a distant, puny memory.","The sight of his gargantuan length leaves you feeling completely submissive, as your old cock could never compete.","His colossal size is the embodiment of pure dominance, making your old package feel utterly powerless.","You can't help but feel overwhelmed by his enormous length, as it overshadows your old cock and sends you into a submissive frenzy.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 3)[(twirl:"His otherworldly size leaves you feeling absolutely emasculated, realizing your old cock was insignificant in comparison.","The enormity of his cock sends you into a submissive stupor, as your old package could never measure up.","His gigantic length leaves you in awe, making you feel embarrassingly inferior to his manly prowess.","You feel completely and utterly submissive in the presence of this behemoth, realizing your old cock could never stand a chance against such a titan.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 4)[(twirl:"You can't help but chuckle at his pathetically small size, knowing your old average cock would make him green with envy.","You feel a rush of superiority as you gaze upon his minuscule member, your old average package easily putting his to shame.","His puny cock is absolutely dwarfed in comparison to your old package, making you feel like an alpha female.","The sight of his meager length brings a grin to your face, as your old, once-masculine self would have been far more impressive.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 4)[(twirl:"His below-average size leaves you feeling like a goddess, especially recalling your old, more substantial cock.","You feel a surge of confidence as you compare his smaller length to your old average package.","His lackluster size is no match for the respectable girth of your old cock, making you feel powerful.","You can't help but feel a bit smug, considering your old, once-average cock would have easily outshined his.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 4)[(twirl:"While his length isn't too far off from your old cock, you can't help but feel a bit superior.","You feel a sense of satisfaction, knowing your old package slightly trumped his in size.","His modest length doesn't quite measure up to your old package, making you feel a bit more accomplished in comparison.","The slight difference in size between your old cock and his leaves you feeling somewhat victorious.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 4)[(twirl:"You nod approvingly at his average length, finding a sense of comfort in knowing your old cock was a match.","His familiar size evokes a feeling of camaraderie, as it's perfectly in line with your old average cock.","You appreciate the familiar sight of his length, as it mirrors the size of your old package.","The similarities of his cock to your old one make you feel a sense of connection – two average souls joined in this moment.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 4)[(twirl:"You're filled with a sense of submission as his slightly larger size outshines your old average cock.","His above-average length evokes tinges of arousal and submission, making your old package feel less impressive.","You feel mildly emasculated by his greater size, knowing your old cock would have been just a bit shorter.","His modestly superior length sends a shiver down your spine, making you feel compelled to submit to him.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 4)[(twirl:"You're faced with the undeniable fact that his length outclassed your old cock, stirring feelings of submission.","His sizeable member fills you with a sense of emasculation, as it surpasses your old average package.","The sight of his more impressive length compared to your old cock leaves you feeling vulnerable and submissive.","You can't help but feel a little inferior to him, as his generous size dwarfs your old, once-average cock.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 4)[(twirl:"His dominant size makes your old average package seem less significant, making you feel submissive and eager.","You feel humbled by his sizable length, as it easily towers over your old cock.","His more substantial length compared to your old cock makes you feel eager to submit to him and his powerful masculinity.","The difference in size between your old cock and his sizeable length leaves you feeling enamored with his dominance.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 4)[(twirl:"His massive length makes you feel utterly powerless, your old average cock feeling pitiful in comparison.","You can't help but feel weak and submissive in the presence of his dominating size, dwarfing the memory of your old cock.","The sight of his enormous length sends you into submissive delirium, your old average cock feeling completely inconsequential.","His imposing size leaves you feeling exposed and vulnerable, as your old package pales in comparison to his gargantuan girth.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 4)[(twirl:"Your old average cock feels absolutely minuscule compared to his awe-inspiring length, making you feel delightfully emasculated.","The sight of his colossal size sends waves of submission coursing through your veins, utterly dwarfing the memory of your old cock.","His titanic length overpowers any sense of masculinity left from your old package, leaving you eager to worship his superior member.","You're completely enthralled by his gargantuan size, making you feel insignificant and powerless compared to your old, once-masculine self.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 4)[(twirl:"His otherworldly size leaves your old average cock feeling absolutely inferior, making you crave his dominance.","The enormity of his cock leaves you breathless, as your old package could never compare.","His gigantic length sends waves of submission and emasculation through your body, reducing your old cock to a paltry memory.","You're left speechless by his behemoth length, knowing your old average cock was utterly insignificant in comparison.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 5)[(twirl:"His pitiful size makes you feel like a queen in comparison to how well-endowed you used to be.","Seeing his tiny prick sends a rush of pride through you, remembering your old average cock.","The memory of your old average package towers over his puny offering, leaving you feeling superior.","You can't help but feel amused by the sight of his insignificant length, especially compared to your old cock.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 5)[(twirl:"His modest length pales in comparison to your old average cock, leaving you with a smug sense of superiority.","You feel a sense of feminine dominance when you remember how your old package would overshadow his.","His shortsighted size doesn't hold a candle to your old average manhood, making you feel like a goddess.","The memory of your old cock outweighs his smaller offering, giving you a boost of self-assurance.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 5)[(twirl:"While he's not the smallest, you can't help but feel a bit of pride when comparing him to your old average cock.","You feel a quiet sense of satisfaction, remembering your old package slightly bested his.","His middling size leaves you feeling subtly superior, recalling your old average cock.","Although his length is nothing to scoff at, you know your old package would have been a bit more impressive.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 5)[(twirl:"His slightly smaller size evokes a feeling of mild superiority, as your old cock had an extra edge.","You feel a small sense of pride, knowing your old package was just a bit larger.","His only slightly less impressive length doesn't faze you, as your old cock was still a worthy competitor.","The comparison of his length to your old average cock leaves you with a hint of smug satisfaction.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 5)[(twirl:"You feel a sense of camaraderie as you compare his average length to your old, similarly sized cock.","The familiarity of his length reminds you of your old average package, making you feel connected.","You appreciate his average size, as it closely mirrors the size of your old cock.","His length brings a sense of comfort, as it's perfectly in line with the memory of your old average package.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 5)[(twirl:"As his larger size outshines your old, average cock, you can't help but feel a bit submissive.","His more imposing length compared to your old package sends a shiver of arousal through you.","You feel a twinge of emasculation at the sight of his larger size compared to the memory of your old cock.","His greater length makes you feel compelled to submit, knowing your old cock was somewhat smaller.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 5)[(twirl:"You're filled with a sense of arousal and submission, as his length is notably larger than your old average cock.","His more dominant size leaves you feeling vulnerable, especially compared to your old package.","The difference in size between your old average cock and his more substantial length leaves you feeling eager to please.","His superior size makes you feel delightfully emasculated, remembering your old, slightly smaller package.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 5)[(twirl:"His massive size makes you feel small and submissive, knowing your old average cock couldn't compare.","The sight of his dominating length sends shivers down your spine, making your old cock seem utterly inferior.","You marvel at his imposing size, feeling completely emasculated compared to the memory of your old average cock.","His impressive length leaves you feeling in awe and vulnerable, knowing your old package was no match for his.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 5)[(twirl:"His titanic length sends waves of submission and arousal through you, making your old average cock seem insignificant.","The sight of his colossal size leaves you feeling humbled, knowing your old package couldn't measure up.","Your old average cock feels like a distant memory when faced with his awe-inspiring length, leaving you eager to submit.","You're completely enthralled by his enormous size, feeling weak and inferior compared to your old, once-average self.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 5)[(twirl:"Standing before his gargantuan length, your old average cock feels like nothing but a fading memory.","His awe-inspiring size leaves you feeling completely emasculated, knowing your old package could never compete.","You're left breathless by his monstrous length, your old average cock feeling utterly insignificant in comparison.","The sight of his otherworldly size sends a mixture of fear and arousal through you, making your old average package seem pathetically small.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 6)[(twirl:"His puny size makes you feel like a goddess compared to what used to be your healthy, above-average cock.","Seeing his pathetic member sends a rush of superiority through you, recalling your well-endowed past self.","You almost feel embarrassed for him, his insignificant prick not even close to your once-larger manhood.","You can't help but laugh inwardly at the sight of his tiny dick, especially compared to your old, more impressive package.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 6)[(twirl:"His below-average length is adorable compared to the memory of your old, above-average cock.","You feel a sense of feminine power, knowing your former package would've easily overshadowed his.","His smaller size doesn't come close to the grandeur of your old, above-average manhood, making you feel dominant.","The memory of your old, larger cock leaves you feeling smug and superior to his less impressive offering.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 6)[(twirl:"You feel a bit of pride and amusement, comparing his average size to your previous, more sizeable cock.","Your old, above-average package makes his length seem somewhat inadequate, leaving you feeling empowered.","His middle-of-the-road size is cute, but it doesn't hold a candle to the memory of your well-endowed past.","You smirk to yourself, knowing your old, larger cock easily outshined his current average offering.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 6)[(twirl:"His slightly smaller size evokes a feeling of feminine confidence, as your old cock had an undeniable edge.","You can't help but feel superior, recalling how your old, above-average package was more impressive.","His not-quite-as-impressive-as-yours size gives you a wicked sense of satisfaction.","You feel a warmth of pride, knowing that your old, well-endowed cock would've been a fierce competitor to his.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 6)[(twirl:"You feel subtly confident, comparing your former, slightly larger manhood to his average size.","His typical length reminds you of your old, slightly more impressive package, making you feel connected.","You appreciate his average size but can't help but feel a soft sense of superiority, remembering your old, larger cock.","His length brings a sense of quiet triumph, as you recall your former, above-average size.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 6)[(twirl:"You feel a sense of camaraderie as you compare his length to your old, similarly sized cock.","The familiarity of his size to your past package makes you feel connected and eager.","You find comfort in knowing that his length mirrors the memory of your old, above-average cock.","His length leaves you feeling excited and nostalgic, capturing the essence of your previous manhood.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 6)[(twirl:"As his larger size outshines your old, above-average cock, you can't help but feel a bit submissive.","His more imposing length compared to your past self sends a shiver of arousal down your spine.","You feel a twinge of emasculation at the sight of his bigger size, comparing it to the memory of your old cock.","His greater length makes you feel compelled to submit, even though your old cock was only slightly smaller.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 6)[(twirl:"His massive size makes you feel small and submissive, knowing your old, above-average cock couldn't compare.","The sight of his dominating length sends shivers down your spine, making your old cock seem outmatched.","You marvel at his imposing size, feeling a mix of excitement and vulnerability comparing it to your old package.","His impressive length leaves you feeling eager and awestruck, knowing your old, above-average cock was no match for his.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 6)[(twirl:"His titanic length sends waves of submission and arousal through you, making your old, above-average cock seem insignificant.","The sight of his colossal size leaves you feeling humbled, knowing your old package couldn't measure up.","Your old, larger-than-average cock feels like a distant memory when faced with his awe-inspiring length, leaving you eager to submit.","You're completely enthralled by his enormous size, feeling weak and inferior compared to your old, once-above-average self.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 6)[(twirl:"Standing before his gargantuan length, your old, above-average cock feels like nothing but a fading memory.","His awe-inspiring size leaves you feeling completely emasculated, knowing your old package could never compete.","You're left breathless by his monstrous length, your old, above-average cock feeling utterly insignificant in comparison.","The sight of his otherworldly size sends a mixture of awe and arousal through you, making your old, impressive package seem pathetically small.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 7)[(twirl:"You cannot help but chuckle internally at his minuscule member, knowing your old, sizeable cock was in a different league.","Comparing his underwhelming size to your former, above-average cock, you feel a tinge of pity and feminine dominance.","The sight of his little nub reminds you of how much larger your old cock used to be, leaving you with an odd sense of superiority.","In a strange way, his pitiful size makes you glad you've switched genders, rather than sporting a dinky dick like that.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 7)[(twirl:"His below-average length sparks an amused smirk, as you recall your past self sporting a much larger package.","The memory of your old, sizable manhood leaves you feeling powerful compared to his diminutive offering.","You're struck by the disparity between his mediocre size and your old, impressive cock, filling you with a sense of feminine power.","Comparing his unimpressive length to your once larger manhood brings a wicked smile to your lips.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 7)[(twirl:"His ordinary length seems almost quaint compared to your old, above-average cock, making you feel both amused and confident.","Your past self's larger package outshined his average size, leaving you with a sense of feminine pride.","You can't help but find his average size endearing, knowing it pales in comparison to your former, well-endowed self.","His so-so size gives you a feeling of both amusement and control, remembering the superiority of your old, larger cock.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 7)[(twirl:"You feel a twinge of superiority, recalling how your old, larger cock would've made his current size look modest.","His slightly smaller length leaves you feeling a surge of feminine power, as it doesn't compare to your old, impressive manhood.","You can't help but smile, imagining how easily your old, larger cock would've overshadowed his.","The sight of his lesser size reminds you of your old package, leaving you feeling both nostalgic and self-assured.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 7)[(twirl:"His average size, while respectable, leaves you feeling quietly superior, remembering your old, larger cock.","Despite him being an average-sized guy, you can't help but feel a tinge of confidence, knowing your old manhood was even more impressive.","Comparing his decent size to your past self's more sizable package, you feel both proud of what you had and eager as a girl.","His ordinary length leaves you feeling excited, knowing your old, above-average cock might've left him feeling on the smaller side.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 7)[(twirl:"You feel a subtle pride, recalling how your old, slightly larger cock would've given his nice size a run for its money.","A sense of friendly competition arises, comparing your old, above-average package to his attractive offering.","His nearly-as-impressive size reminds you of your past self and stirs up a mix of nostalgia and excitement.","You can't help but feel a little smug, knowing your old, larger cock was just a touch more impressive than his.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 7)[(twirl:"You feel a sense of connection to his equal size, as it mirrors the memory of your old, above-average cock.","His size evokes a feeling of familiarity, as it's nearly identical to what you used to have.","You can't help but appreciate his well-endowed length, knowing it's a fitting match for your former manhood.","A sense of camaraderie washes over you, as his length reminds you of your old, equally impressive cock.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 7)[(twirl:"His larger size leaves you feeling slightly submissive, despite knowing your old cock was still quite impressive.","You can't help but feel a bit emasculated by his more dominant length, even though your old cock was only slightly smaller.","Comparing his bigger size to your old, above-average manhood, you feel a flutter of vulnerability and excitement.","His greater length sends a shiver of arousal through you, realizing just how close his size is to outmatching your old, sizable manhood.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 7)[(twirl:"His intimidating length sends a feeling of submission through you, knowing it surpasses your old, above-average cock.","The sight of his massive size leaves you feeling both humbled and enticed, as it outshines your past self's impressive package.","You can't deny the overwhelming power his colossal size exudes, making your old, above-average manhood seem less significant.","You're filled with a mixture of awe and excitement, as his enormous length dethrones your old, once sizeable cock.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 7)[(twirl:"Confronted with his monstrous length, you feel both ecstatic and emasculated, as it dwarfs your old, above-average cock.","Seeing his otherworldly size fills you with both awe and arousal, making your old, once-impressive package seem like child's play.","You're left breathless by his titanic size, which eclipses your old, above-average manhood and leaves you yearning for more.","The sight of his gargantuan length makes your old, impressive package feel insignificant in comparison, leaving you weak in the knees and ready to submit.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 8)[(twirl:"You can't help so much as stifle a giggle. His poor, little flesh nub barely registers on your cock radar.", "The sight of his micro-member brings back grand memories of your once monumental manhood, now gone but not forgotten.", "While you're usually not one to judge, you can't help but compare his petite package to the well-hung man you once were.", "Against your old, king-sized cock, his little stub would've been comically dwarfed, leaving you feeling a strange mix of pity and superiority.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 8)[(twirl:"His undersized manhood isn't something to laugh at, but in comparison to your old, beautifully massive cock, it's almost humorous.", "Observing his small size versus your previous enormity, you can't help but feel a sense of liberation, not needing to maintain such a large beast anymore.", "His small size is cute, but it's no match for the towering pillar of manhood you once had.", "The modest size of his member compared with the memory of your powerful, larger cock leaves you feeling both dominant and amused.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 8)[(twirl:"His average size is quaint, but it doesn't hold a candle to the memories of your old, colossal cock.", "Your once gargantuan-sized cock makes his look like a child's toy in comparison, and a smirk plays on your lips.", "His medium-sized member is endearing, but pales in comparison to the mammoth stature your old cock held.", "His average size sparks an amused memory of your old, monstrous cock, having been way out of his league.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 8)[(twirl:"His member, while decently sized, would have been utterly overshadowed by your old, towering manhood.", "You can't help but giggle at how modestly sized his cock is compared to the meaty girth and length you once brandished.", "His above-average size still falls short when compared to the glorious memory of your old, hulking cock.", "The sight of his respectable size makes you think of your old, much larger cock, leaving you feeling both nostalgic and amused.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 8)[(twirl:"His average size, while respectable, feels almost underwhelming compared to the memory of your old, impressive cock.", "His perfectly average size does little to stir the fond memories of your old, far superior manhood.", "He's a decent size, but your old self would've made him look modest with your once-majestic cock.", "Seeing his normal-sized cock brings a blushing smile, knowing full well your former, mighty manhood would've outshone it.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 8)[(twirl:"His sizeable package is certainly attractive, but it doesn't quite measure up to the memory of your old, grand cock.", "His larger than average cock sends a jolt of arousal through you, though it's still a fair bit smaller than the beast you once had.", "His impressive size stirs up a mix of nostalgia and anticipation, as it brings back memories of your bigger-than-average past.", "A sense of competitive pride stirs you up, remembering back when you were well-endowed enough to outdo his respectable size.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 8)[(twirl:"His impressive length, while exciting, feels slightly lacking in comparison to the monumental package you proudly had.", "Your old, massive cock probably would've outshone his good size, and the thought stirs an odd sense of pride within you.", "His well-endowed length is quite attractive, but you're confident your old, even more impressive manhood would've held its own.", "A sense of friendly competition rises within you as you remember your past and the prowess your old, extra-large cock held.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 8)[(twirl:"Seeing his large, throbbing member strikes a familiar chord, mirroring the size and girth of your previous glory.", "His impressive size mirrors your old self, and the shared quality stirs up a shared camaraderie and a rush of arousal.", "Seeing his sizeable package, you can't help but feel a twinge of nostalgia for your old, equally impressive cock.", "His endowed length brings a pang of desire, reminding you of the robust, full-bodied manhood you once had.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 8)[(twirl:"His towering manhood, bigger than your old self, leaves you with a twinge of envy mixed with a healthy dose of arousal.", "Faced with his super-sized cock, you can't help but feel a sense of humility as it marginally outdoes your old, hefty cock.", "His intimidating length leaves you feeling a tinge emasculated but thrilled, knowing it surpasses the size of your past self.", "His massive penis sparks a feeling of submissive desire within you, outmatching the impressive size you once owned.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 8)[(twirl:"The sheer enormity of his manhood leaves you in awe and a touch emasculated, knowing it eclipses the impressive size you once sported.", "His gargantuan length leaves you with mixed emotions - a sense of exquisite submissiveness knowing you're outmatched and a rush of feverish lust.", "His titan-sized cock leaves you breathless, bringing feelings of both jealousy and intense desire as it outdoes the size you once had.", "Confronted with his monstrous size, memories of your old, inferior cock surface, leaving you feeling both excited and submissive.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 9)[(twirl:"You can't help but burst into laughter at the sheer hilarity of his undersized cock in comparison to your once freakishly enormous man-weapon.", "The sight of his baby dangle brings back memories of your past behemoth cock, the monument of manhood you used to sport.", "His short stub is almost pathetic compared to the leviathan you once had between your legs.", "The memory of your past towering titan cock makes his minuscule meat stick seem comically undersized.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 9)[(twirl:"His modest cock is utterly dwarfed by the memory of your old, record-breaking manhood.", "Compared to his meager size, you used to tote a whopper of a cock, a true circus freak of a dick.", "The image of his little weiner makes you chuckle, reminding you of your former, larger-than-life schlong.", "The memory of your past, wizard's staff of a dick makes his small nob seem laughably cute.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 9)[(twirl:"His average-sized cock, while charming, is absolutely outclassed by the memory of your previous, god-tier phallus.", "You can't help but compare his decently-sized dick to the towering obelisk of manhood you once swung between your legs.", "Compared to your old, skyscraper cock, his is more like a charming suburban bungalow.", "His medium-sized dick is cute in comparison to the leviathan loins you once owned.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 9)[(twirl:"While his above-average dong is nothing to sneeze at, it's a mere shadow compared to the world wonder that was your cock.", "Compared to your old, titanic trouser snake, his package seems charmingly modest.", "His sizable shaft pales next to the fond memories of your old world-class wonder dong.", "You can't help but smile as you remember the Godzilla of cocks you used to have compared to his respectable, yet smaller package.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 9)[(twirl:"While his average-sized cock is certainly appealing, it's nothing compared to the celestial pillar of masculinity you once had.", "You can't help but feel a fun sense of superiority, remembering your old, award-winning dick next to his modest manhood.", "His decent size pales in comparison to the wrecking-ball sized meat-hammer you were once swinging.", "The memory of your Anaconda-sized cock truly overshadows his size, leaving you feeling a touch superior.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 9)[(twirl:"His sizeable package sparks a wave of nostalgia, but it's still no match for the monstrous python you once sported.", "His larger than average size is enticing but doesn't quite measure up to the memory of your colossal cock.", "You remember your old, gargantuan pleasure-bringer that makes his size seem merely cute in comparison.", "His more-than-decent size can't hold a candle to the memory of your mammoth meat-rocket.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 9)[(twirl:"His impressive length does make your blood boil with lust, but the memory of your past, Moby Dick-sized schlong still outdoes him.", "His well-endowed length makes you blush, but it's nothing compared to the colossus you used to pack.", "Compared to your past skyscraper of a cock, his respectable size seems almost sweet.", "The sight of his commendable manhood triggers a rush of nostalgia for your own past, King Kong-sized cock.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 9)[(twirl:"His large erection stirs you up, but it still falls short compared to your past, real-life Loch Ness Monster.", "His whopper has a strong appeal, but it doesn't quite hit the ego-inflating heights that your past leviathan did.", "Despite his brag-worthy length, your old, monster of a cock still had him beat.", "His substantially sized manhood brings back fond memories of your old, even larger meat torpedo.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 9)[(twirl:"His enormous manhood rivals memories of your own weapon of mass destruction, striking a resonating chord of camaraderie.", "Seeing his massive dong that equals your past glory elicits a shared sense of monstrous size and manliness.", "His impressive cock mirrors your old glory, sparking a twinge of nostalgia mixed with desire.", "The sight of his equally imposing cock spurs on a sense of shared brotherhood, both of you having been members of the big dick club.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 9)[(twirl:"Facing his godlike manhood, even your past beast of a cock seems slightly outdone, leaving you feeling emasculated but irrationally aroused.", "His gargantuan length has your old, pre-X-Change horse-hung size beat, and you're a mix of humbled and incredibly turned on.", "His monstrous cock leaves you in awe, sending jitters of mixed envy and desire - after all, it one-ups even your old supercock.", "His colossal penis makes your old, mega-cock seem merely 'impressive', leaving you feeling submissive and slutty in the best way possible.")]
(if:(cock:"length","npc") is 1 and (cock:"length") is 10)[(twirl:"Glancing at his miniscule manhood, memories of your past thunderous tool, your tectonic trouser snake, come rushing back - the stark difference is comical.", "His tiny pecker is dwarfed by the shadow of your old, anaconda-like appendage that would put even the most endowed of adult stars to shame.", "His little pencil dick elicits a chuckle, a stark reminder of your once monumental meat missile that legends were made of.", "The memory of your past, gargantuan fuck-rod eclipses his micro meat, and the contrast is hilariously arousing.")]
(if:(cock:"length","npc") is 2 and (cock:"length") is 10)[(twirl:"His modest meat is a cute contrast to the titanic destroyer you once had between your thighs.", "His little squirt gun against your past earthshaking one-eyed trouser snake - the difference is delightful and chuckle-worthy.", "The size of his modest manhood makes you remember your colossal cock, the kind that inspired sonnets and left lovers weak in the knees.", "His small manhood, compared to your past monstrous beast, feels like comparing a water gun to a fire hose.")]
(if:(cock:"length","npc") is 3 and (cock:"length") is 10)[(twirl:"His average-sized jackhammer pales in comparison to the memory of your throbbing cruise missile of a cock.", "Memories of your monolithic manhood make his decent dong look like a charming plaything.", "His decent size is cute, in stark contrast to the skyscraping pecker you formerly wielded.", "The sight of his average-sized tool brings back fond memories of your past cock, a truly titanic tower of power.")]
(if:(cock:"length","npc") is 4 and (cock:"length") is 10)[(twirl:"His above-average dong is adorable compared to the memory of your past seismic super-cock.", "His respectable sized equipment has nothing on your past fuckzilla, the awe-inspiring gargantua of a schlong.", "His charming manhood sparks laughter when you remember the otherworldly beast you once swung between your legs.", "The sight of his fairly substantial penis brings back fond memories of your past empire state building of a dick that truly redefined 'well-endowed'.")]
(if:(cock:"length","npc") is 5 and (cock:"length") is 10)[(twirl:"His average cock is pleasing, but nothing can match the fond memory of your leviathan love-club.", "You can't help but smirk as you remember your past godzilla-like cock compared to his decent, average soda can.", "His size, though appealing, is no match for the memory of your monstrous meat scepter.", "While his average manhood is nice, it's certainly no competition for your past, prize-winning cockzilla.")]
(if:(cock:"length","npc") is 6 and (cock:"length") is 10)[(twirl:"His larger than average cock is enticing, but it doesn't quite measure up to the legendary log you once brandished.", "The sight of his decent cock sparks nostalgia, but it is no contest when measured against the memory of your beastly baton.", "You feel a twinge of sympathy for his sizable manhood, having to compete with the memory of your gargantuan girth.", "His above-average dick is sweet, but it's no match for the monstrous mammoth you once had.")]
(if:(cock:"length","npc") is 7 and (cock:"length") is 10)[(twirl:"His impressive manhood, while arousing, is still no comparison to the excalibur of cocks you used to wield.", "His nice-sized dick brings back fond memories of your own gargantuan groin-goliath, the kind that broke records and hearts.", "His well-endowed length brings a flush of lust, but it's no match for the monstrous memory of your mighty meaty mastodon.", "His above average manhood does excite, but it's still dwarfed by the legacy of your penis, a true titan of the trouser domain.")]
(if:(cock:"length","npc") is 8 and (cock:"length") is 10)[(twirl:"His substantial size is exciting, but it still doesn't measure up to the memory of your titanic tool.", "His impressive length stirs up desire, but it pales in comparison to your once earth-shattering erection.", "The sight of his long cock reminds you of your own, even bigger, monstrous meat missile, a marvel of masculine might.", "His commendable manhood, while packing a decent punch, can't outdo your past colossus cock, a feat of nature in its own right.")]
(if:(cock:"length","npc") is 9 and (cock:"length") is 10)[(twirl:"His monster dick certainly impresses, but it still falls short of your past gargantuan goliath.", "You're turned on by his huge manhood, but there's a sense of pride knowing you used to wield an even bigger beast.", "His sizeable schlong does make you hot and bothered, yet it's overshadowed by memories of your legendary lovemuscle.", "His sizeable heat-seeking missile is appealing, but pales when compared to the memory of your world class widener.")]
(if:(cock:"length","npc") is 10 and (cock:"length") is 10)[(twirl:"Finally, a man who matches your past glory. His gargantuan manhood mirrors your own once Everest-sized erection.", "His monstrous cock, the epitome of masculinity, reignites memories of your own legendary length.", "The sight of his titanic trouser snake commands respect, reminiscent of your own past world-shaking weapon.", "His godlike girth strikes a chord, reminding you of your own past cockpit, a testament to exaggerated manliness.")]
(if:(cock:"length","npc") > (cock:"length"))[(set:$gain to (cock:"length","npc") - (cock:"length"))<div class='options'>(display:"gain arousal")</div>]
}(if:$character's "masculinity" > 65 and (twist:1,2) is 1)[(display:"npc compare cock")](else:)[(print:(cock:"rating","npc") of (dm:
1,(twirl:"Is that a clit or a cock?","It's so small it's barely visible.","You'd need a magnifying glass to enjoy that.","It's almost cute in its insignificance.","You almost feel bad for how tiny it is.","A measly excuse for a dick.","It's smaller than your pinky finger.","An embarrassingly inadequate size.","Looks more like a button than a cock.","Microscopic and unimpressive."),
2,(twirl:"That won't satisfy anyone.","More of a snack than a meal.","Comically undersized.","It looks like a baby carrot.","It's like a little nub.","It's like someone hit the shrink button.","A minuscule morsel.","Barely worth a second glance.","Wimpy and unfulfilling.","Looks like it needs some encouragement to grow."),
3,(twirl:"Meh, seen better.","Hardly a jaw-dropping sight.","Leaves much to be desired.","As plain as dicks come.","Unexciting and average.","It's just... there.","Nothing to write home about.","Not the worst, but certainly not the best.","A forgettable piece of flesh.","A generic, unexciting cock."),
4,(twirl:"Now that's a standard-issue dick.","It's perfectly... average.","Not bad, not great, just... fine.","Middle-of-the-road, but somewhat satisfying.","A solid contender in the cock department.","A respectable size.","It's not too shabby.","Pleasantly typical.","A classic, textbook penis.","It's like the vanilla ice cream of cocks."),
5,(twirl:"Starting to look tasty.","You can't help but admire the heft.","A pleasing plumpness.","Substantial enough to catch your eye.","Your mouth begins to water.","A tempting dick is hard to resist.","It's got a little extra girth.","A sturdy, desirable size.","Big enough for some fun.","Your heart rate quickens as you gaze upon it."),
6,(twirl:"Now that's a cock!","A hefty, delicious slab of meat.","It's thick, veiny, and inviting.","You can feel yourself getting wet as you stare.","It triggers a primal hunger in you.","A mouth-watering sight.","You'd love to wrap your lips around it.","It's invitingly thick and hard.","Your submission increases as it grows.","The weight and size stir something within you."),
7,(twirl:"Oh wow, it's really big.","You can't help but feel your pussy throb.","It's throbbing and thick, commanding your attention.","You feel a sudden rush of vulnerability.","You'd need both hands to handle that monster.","You imagine how it'd feel to be filled by it.","A tingle of excitement sparks through your body.","It's so big, you can't take your eyes off it.","You're drawn to its girth and power.","The size makes you feel both nervous and excited."),
8,(twirl:"That's an absolutely massive cock.","It's an imposing, dominating size.","You shiver with anticipation as you stare.","You're captivated by its thickness and length.","You ache to taste it, to feel it fill you.","It feels like a challenge you want to conquer.","The thought of being dominated by it excites you.","You can't help but imagine it pounding into you.","Just looking at it makes your mouth water.","You feel a mix of fear and arousal, unable to resist."),
9,(twirl:"It's like a fucking third leg.","Your mind races with thoughts of submission.","You're entranced by the sheer size and power.","You feel lightheaded just looking at it.","It's an object of absolute worship.","You're unsure if you could handle it, but you crave it.","You feel a surge of sexual energy as you look.","You want to be utterly dominated by it.","A symbol of overwhelming masculinity.","Your knees go weak as you imagine it inside you."),
10,(twirl:"It's a truly awe-inspiring, titanic cock.","You can't help but gasp at the sheer sight.","It's like a monument to manhood.","You feel your pussy aching just looking at it.","The thought of it inside you is both terrifying and thrilling.","You long to submit to its immense power.","It's an intoxicating blend of fear, lust, and admiration.","Never before have you seen such an incredible cock.","You can't imagine anything more powerful or dominating.","You feel an overwhelming urge to worship and obey.")))]
(if:$npc's tags contains "nerd" and not ($npc's tags contains "chad"))["(twirl:"Gosh,","Golly,","Hehe,") (twirl:"I can't believe a girl as hot as you","I can't believe a total bombshell like you","It's amazing that a total hottie like you") (twirl:"is just gonna suck me off","is just gonna blow me","is down on her knees for me","is down sucking my cock")(if:(twist:1,2) is 1)[, (twirl:"haha","heh","heehee")]," the (print:(lowerfirst:$npc's "unfamiliar name")) says. "(twirl:"This is so much better than opening pokemon cards.","This is so much better than hentai.","This is so much better than watching porn in my room.")"](else-if:$npc's tags contains "gentleman")["(twirl:"Don't worry, this will stay just between us,","You're so beautiful. It's an honor to get blown by you,","I'm really excited for this, you're so hot,","You're so gorgeous, I can't wait to see what you can do,","Don't worry, this will be our little secret,")" he says(twirl:", kindly,"," with a smile") (twirl:"indicating","gesturing") for you to begin.](else-if:$npc's age > 39 and not ($npc's tags contains "chad"))["(twirl:"Gosh,","Golly,","Goodness,","Goddamn,","Jiminy,") (twirl:"this is the bomb dot com","this is awesome","this reminds me of my 20s","this really reminds me when I was younger"), (twirl:"getting blown by such a cute young thing like you","having such a cute young thing give me a blowjob","having such a nice young lady to play with","having a beautiful young lady kneeling down for me")," the (print:(lowerfirst:$npc's "unfamiliar name")) says. "(twirl:"You can call me ","Feel free to call me ") (print:$npc's "first name") instead of Mr. (print:$npc's "last name")."(nl:2)"(twirl:"Alright,","Okay,","Alrighty,") (print:$npc's "first name")," (twirl:"you humor the older man","you humor him","smile at him").(if:(Random:1,2) is 1)[ (twirl:"You sort of have to be nice to him, when you're staring down the barrel of his cock.","It's best to be nice, when you're kneeling in front of their cock.")](nl:2)(twirl:"Then he indicates for you to start.","Then he tells you to start.","He tells you to start.")](else-if:$npc's age < 20)["(twirl:"You know I'm only ","You know I'm just ")(print:$npc's age)? (twirl:"And already I'm getting a girl like you to suck me off.","And already girls in their 20s are blowing me.","And already total dime-pieces like you are blowing me.") (twirl:"This is lit,","Prettyyy gucci if you ask me,","This is gonna be such a flex when I tell the boys about it,","This is low key epic,","I've made it, fam,")" he (twirl:"grins","smiles down at you","grins down at you","takes in the moment, victoriously"). "(twirl:"You can start now!","Start anytime, sis!","You can start anytime.","Put that mouth to work now!")"](else-if:(cock:"rating","npc") > 7 and $npc's looks < 4)["(twirl:"Yeah, I might not look like much.","I may not have the looks...","I might not be the handsomest guy out there.") (twirl:"But with a cock like this, girls still go ga-ga for me.","But with a schlong like this, who cares?","But it doesn't matter, cause I got a dick like this.")" (twirl:"He smiles down at you,","He looks down at you,") (twirl:"indicating for you to start","and motions for you to start sucking").](else-if:$npc's tags contains "fuckboy")[(twirl:"He looks at you with a cocky fuckboy smile.","He looks down at you with a degrading smile.") "(twirl:"You can start sucking now.","Well bitch, get to work!","Well hun, get to work!","Well, my cock ain't gonna suck itself.")"](else-if:$npc's tags contains "chubby" and (twist:1,2) is 1)[(twirl:"He looks down at you from over his","He smiles down at you from over his","He gazes down at you from over his") (twirl:"rotund belly","large belly","belly"), (twirl:"and indicates for you to start","and nods for you to start sucking").](else-if:(cock:"rating","npc") > 7 and (twist:1,2) is 1)["(twirl:"With a cock like this,","With a schlong like this,","With a dick like this,")" he says. "(twirl:"Girls basically throw themselves at me.","Women throw themselves at me, really.","It's easy to be popular.") (twirl:"Now suck!","Now, start sucking!")"](else-if:$npc's tags contains "chad")["(if:(twist:1,2) is 1)[(twirl:"People think women are so complicated.","And people say girls are so complicated.","They say women are so hard to figure out.") (if:(twist:1,2) is 1)[(twirl:"But you're all the same really. You all want one thing:","But you're all a slave to one thing, you just don't know it:","But you all want just one thing:") (twirl:"cock","alpha cock","to serve an alpha","to serve an alpha cock").](else:)[(twirl:"But it's clear to me that bitches are simple.","But it's obvious to me that bitches are actually quite simple.") (twirl:"You all melt as soon as they meet an alpha like me.","You melt when you meet an alpha like me.","You get wet as soon as you meet an alpha like me.")]](print:" ")](display:"breathing ambience")(if:$scene_type is "masturbation")[(if:(find:_memory where _memory's id is "got caught") is an empty)[($remember:"got caught",14,"none","none","exhibitionist",$scene_type)]($remember_update:"add","public masturbation","caught")](else:)[($remember:"got caught",14,$npc's name,"none","exhibitionist",$scene_type)]
(if:$scene_type is "sex bedroom")[(display:"sex transactional caught family")](else:)[(set:$song to 0)(display:"play song")(set:$se to "alert")(display:"play sound")(print:"<img class='greyborder' src='img/npc/generic/shocked/" + (text:(twist:1,10)) + ".jpg' width='100%' height=auto>")
(print:$interrupt)(if:(twist:1,2) is 1)[ *(twirl:"Ohhh shit.","Fuck.","Fuck my life.","Oh, goddammit.")*]
"(twirl:"Holy shit!","Holy fuck!!!","Oh my GOD!")" (twirl:"he shouts.","he exclaims.") "(twirl:"What the hell is going on in here?","What the hell's going on in here???","You're... fuck! What the hell are you doing?","What are you DOING?")"(if:($exhib_check:))[($exhib_mood:"blissful","Since you can't stop thinking about how you were caught in the act in public.")(set:$minigame's "masculinity level" to (max:40,$minigame's "masculinity level" - 10))
Having someone catch you in the act like this, it's so hot! (if:$orgasms > 0)[You just want to come again.](display:"exhibitionist check")
<div class='options'>(if:($exhib_check:))[(set:$next to "exhibitionist public orgasm")(link:"It's too much...")[(display:"change screen")]](else:)[(set:$next to "advance time")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")]</div>](else:)[(set:$new_mood to (dm:
"mood","embarrassed",
"emoji","😳",
"strength",4,
"length",3,
"cause","Since you were caught having sex in public.",
"charm buff",-2,
"intellect buff",0
))(display:"new mood")(display:"refresh stats")
(if:$npc_type is "coworker" or ($scene_type is "masturbation" and $room is "DynaPill supply closet"))[(set:$gain to 3)(display:"gain job sexual reputation")]
How humiliating...(if:$orgasms > 0)[(set:$character's "arousal" to 0)(display:"refresh stats") at least you came, though.]
<div class='options'>(set:$next to "advance time")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")</div>]](set:$sex_loop to 0)(display:"play sex loop")(set:$person to (twirl:"stepdad","stepsis"))(if:(find:_memory where _memory's id is "got caught") is an empty)[($remember:"got caught",14,"none","none","exhibitionist",$person)](if:(checkdm:$npc,"id","is","stepdad"))[(set:$person to "stepsis")](set:$song to 0)(display:"play song")($play:"sound","alert")(print:"<img class='greyborder' src='img/npc/family/" + $person + "/shocked.jpg' width='100%' height=auto>")
Too late, you hear the doorknob to your bedroom turn... (if:(twist:1,2) is 1)[ *(twirl:"Ohhh shit.","Fuck.","Fuck my life.","Oh, goddammit.")*]
(if:$person is "stepsis")[(if:$npc's id is "bruce" and $stepsis's "relationship status" is "bruce")[
(if:(twist:1,2) is 1)[The door to your room swings open with a sudden creak. Bruce's hands grip your hips mercilessly as he takes you from behind.
Alexia's eyes widen for a moment at the sight before her.
Her lips curl into a sneer, a complex flicker of hurt, jealousy, and resentment passing through her gaze as she watches how easily you're being manhandled by the man she desires.
(set:$npc_select to "stepsis")(set:$gain_friendship to -3, $gain_attraction to -3, $gain_respect to -3)(display:"change relationship")
"*Really*, $your_name?" Alexia's voice drips with disdain and a hint of amusement. "Squealing and moaning like some *desperate slut* under Bruce? I would've expected a bit more dignity, but then again, you always did stoop lower than anyone's expectations."
Bruce’s laugh rumbles through the room, a sound that vibrates with dominance. "Don't worry, Alexia," he says confidently, not pausing in his brutal rhythm, "you're definitely getting my attention next. I’ve got plenty to go around."
You can feel your face flush. Bruce's grip tightens, a clear indication he relishes displaying such possession and power, not just over you, but over the emotional turmoil brewing in Alexia.
Alexia stands frozen, her expression hard to read. Finally, she scoffs. "Enjoy the scraps, $your_name. Seems like you're really *relishing* being Bruce's plaything," she spits out the words.
With a forced chuckle, she adds, a spiteful glint in her eyes, "Make sure he cleans up his toy when he’s done."
Bruce merely smirks, clearly amused by the family tension his actions have aroused.](else:)[Suddenly, the door swings open, and there stands Alexia, her eyes wide, her mouth agape. For a moment, time seems to freeze—except for Bruce, who doesn’t skip a beat, continuing to *smash* into you with animalistic fervor.
Alexia's cheeks flush a bright pink, but her glare is hard as nails. "Really, *this* is what you two are doing?"
Without missing a beat, Bruce lets out a grunt, his eyes locking onto Alexia's as he delivers one final, punishing thrust into you. You cry out, more in surprise than pleasure, as he pulls out abruptly. He stands, a smirk forming on his lips as he looks back at Alexia, who's still frozen in the doorway.
"Don't worry, your 'stepsis' is getting plenty of attention, Alexia," Bruce says cockily. "I like to take care of the whole family." He positions himself between your trembling thighs, his erect cock poised at your glistening ass.
Then, with a low growl, Bruce *explodes*, jets of cum launching across your ass cheeks, hot and sticky as they trail up the small of your back. His release is a visual claim, marking territory where Alexia can see it clear as day.
(set:$npc_select to "stepsis")(set:$gain_friendship to -3, $gain_attraction to -3, $gain_respect to -3)(display:"change relationship")You’re left gasping, a confused mix of shame and shock as Bruce's sperm starts to drip down your skin. Alexia, still staring, finally finds her voice, though it’s laced with a bitter edge.
"You never were very good at sharing," she says to you, her eyes flicking between Bruce's satisfied smirk and the humiliating streaks of cum coating your back.
Bruce chuckles, stepping back to admire his handiwork. "Just keeping things lively around here," he says, tossing you a wry wink before sauntering towards Alexia, who swallows hard.]](else:)[
"(twirl:"Oh my god! What the hell is going on in here???","Oh my god, I can't believe what I'm SEEING! What are you doing, $your_name???","Oh my god, I can't believe you're really doing this in our house!!!","Holy shit!!! I can't believe you would do this in our house!","Oh my god, what are you DOING??? This is so disgusting!","I can't believe you're actually doing this here!!!","Oh my god, I can't believe you would do something like this in our home!!!","Holy shit!!! I can't believe you're doing this!","Oh my gosh, I can't believe this is happening!!!","What the heck are you two DOING???")" Alexia squeals.]](else:)["(twirl:"What the hell is going on in here?!","Oh my god, I thought I heard a noise! Stop, this instant!","What the hell are you two doing in here?!","What the hell is going on here?")" your stepdad exclaims.(set:$npc's tags to it - (a:"stepdad likes","stepdad dislikes"))(set:$npc's tags to it + (a:"stepdad dislikes"))] (display:"exhibitionist check")(if:$exhibitionist_check is true)[($exhib_mood:"blissful","Since you're obsessed with how you were caught in the act in your room.")(set:$minigame's "masculinity level" to (max:40,$minigame's "masculinity level" - 10))
Having someone catch you in the act like this, it's so hot! (if:$orgasms > 0)[You just want to come again.](display:"exhibitionist check")
<div class='options'>(if:($exhib_check:))[(set:$next to "exhibitionist public orgasm")(link:"It's too much...")[(display:"change screen")]](else:)[(display:"sex transactional caught relationship changes")(set:$next to "advance time")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")]</div>](else:)[(set:$new_mood to (dm:
"mood","embarrassed",
"emoji","😳",
"strength",4,
"length",3,
"cause","Since you were caught having sex in your room.",
"charm buff",-2,
"intellect buff",0
))(display:"new mood")(display:"refresh stats")
(set:$his_name to $npc's name)(if:$npc's tags contains "chad")[(if:$person is "stepsis")[$his_name winks at Alexia, zips up his pants, and leaves.](else:)[$his_name grins at your stepdad, zips up his pants, and leaves.]](else:)[Wordlessly, $his_name walks out.](set:$gain_attraction to -2)(set:$gain_friendship to -2)(display:"change relationship")(if:$person is "stepdad")["(twirl:"I can't believe you would do something like this in our home,","I'm so disappointed in your right now,","I thought you had better judgment than this,","This is unacceptable and disgusting,","You should be ashamed of yourself for behaving this way,","I can't believe you would do something like this,","I expect better from you, and this behavior will not be tolerated in our home,")" (print:$stepdad's name) says, before angrily slamming your door.](else:)["(twirl:"Well well well, looks like someone's beene a little naughty!","Wow. Just, WOW, $your_name.","You're so gross, stepsis!","I'm going to tell dad, he needs to know what you're doing behind his back!")" she says, before leaving and shutting your door.](set:$npc_select to $person)(set:$gain_respect to -2)(set:$gain_friendship to -2)(set:$gain_dom to 2)(display:"change relationship")
(display:"save npc male")How humiliating...(if:$orgasms > 0)[(set:$character's "arousal" to 0)(display:"refresh stats") at least you came, though.]<div class='options'>(set:$next to "advance time")(set:$minigame's "afterwards" to (text:$next))(display:"masculinity crisis link")</div>](set:$sex_loop to 0)(display:"play sex loop"){(if:$disable_caught is "Getting Caught Disabled: True")[(set:$scene's "interrupt chance" to 0)(set:$caught_chance to 0)]<div class='options'><div id="chance-bar"><div class='chance-bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 153, 0.8),
rgba(255, 255, 153, 0.8) 40px,
rgba(255, 255, 153, 0.8) 40px,
rgba(255, 255, 153, 0.8 80px
);'>😲 <span class='shadow'>[$caught_chance%]<chance|</span> 😲 </div></div></div>(display:"update caught chance")}(if:$option is "breeder check")[($cs:"sex transactional breeder check")](else:)[
(set:$orgasm_type to "sex")(set:$quicktime_params to (dm:
"objective","Don't be too loud!",
"type","transactional sex",
"skill check","orgasm control",
"skill check difficulty",50,
"timing message","but not faster than he fucks you.",
"result passage","sex transactional pre result",
"backdrop",$doggy_img,
"sex loop",$doggy_loop,
"time",25,
"rhythm",$doggy_rhythm ,
"interrupt passage","transactional sex describe",
"interrupts",3
))
(set:$scene's "events" to $scene's "events" + (a:"get fucked"))
($cs:"dont cum initialize")](display:"play ambience"){(set:$sex_loop to $doggy_loop)(display:"play sex loop")|image>[(set:$option to "none")(if:$result is "fail" or $your_pleasure >= 10)[<div class='top_left_pic'>(print:$doggy_moan_pic)(display:"sex transactional chance of getting caught")</div>](else:)[(print:$doggy_pic)(display:"sex transactional chance of getting caught")](display:"transactional sex describe")(if:$your_pleasure >= 10)[(if:(is_breeder:) and not ($protection's "active" is "true"))[(unless:$beg_creampie is "true")[(set:$option to "breeder check")]](set:$sex_loop to 0)(display:"play sex loop")(display:"sex transactional orgasm text")(nl:2)(set:$orgasm_type to "sex")(display:"sex orgasm"){(display:"npc describe cock")(if:$orgasms is 1)[(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to "You came so fucking hard on his " + (text:$cock) + ".")](else-if: $orgasms is 2)[(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to (twirl:"How many times did you cum?","How many whimpering orgasms did you have?","You should've seen yourself, cumming like a true slut on his " + (text:$cock) + "."))](set:$minigame's "masculinity level" to (max:50,$minigame's "masculinity level" - 5))}(if:(can_cum:))[(display:"play sound")](nl:2)(display:"sex transactional orgasm aftershock text")($play:"sex loop","heartbeat")(display:"transactional sex describe")](if:$result is "fail")[(set:$gain to 1.5)(display:"sex transactional interrupt chance increase")(if:(twist:1,2) is 1)[(twirl:"You moan","You whimper","You groan","You whimper","You moan","You moan","You whimper"), (twirl:"loudly","and it echoes through the $room","LOUDLY","far too loudly","quite loudly").](else:)[(twirl:"Your moans","Your whimpers","Your moans","Your moans and lewd sex noises","Your debauched sex noises","Your pathetic moans") (twirl:"fill the $room","echo loudly through the $room").](unless:$character's "arousal" > 9)[<div class='options'>(set:$gain to 3)(display:"gain arousal")</div>](else:)[(nl:2)]
(display:"transactional sex describe")](else:)[(display:"transactional sex describe")(unless:$character's "arousal" > 9)[<div class='options'>(set:$gain to 2)(display:"gain arousal")</div>]]]
[(if:$his_pleasure < $his_pleasure_threshold)[(set:$next to "sex transactional get fucked")](else:)[(set:$next to "sex transactional he cums choice")]]<options|}<div class='options'>(if:$result is "fail")[(display:"sex transactional check caught")](else-if:$next is "sex transactional he cums choice")[(display:$next)](else:)[(if:$scene_type is "sex bedroom" and $npc's "cock" is "in you")[(link:"Continue")[(display: "sex transactional bed position options")]](else:)[(link:"Continue")[($cs:"sex transactional get fucked")]]]</div>{
(unless:$his_choice is "none")[
<div class='options'>(link:"Next")[(set:$next to"sex transactional he cums")(display:"change screen")]</div>
](else:)[
(set:$your_choice_taken to "no")
(set:$your_choice to "none")(set:$choice to "none")
(if:$npc's "cock" is "in you")[
(twirl:"His cock twitches inside you.","He tells you he's gonna cum.","He says he's about to nut.")
](else:)[
(twirl:"His cock twitches.","He announces that he's gonna cum.")
]
(if:(checkdm:$npc,"ground rules","contains","always pull out"))[($notification_still:"🕊️ Ground rule in effect: He said he'll pull out. 🕊️")]
<div class='options fading'>
(link:(twirl:"Your choice!","Anywhere!"))[(stop:)(set:$your_choice_taken to "no")(set:$choice to "anywhere")($cs:"sex transactional he cums auto")]
(set:$cum_locations to (twisted:"face","mouth","inside","pull out","moan","moan","moan"))(unless:$npc's "cock" is "in you")[(set:$cum_locations to it - (a:"moan"))]
(for: each _cum_location, ...$cum_locations)[
(if:_cum_location is "face")[(link:"On my face!")[(set:$your_choice to "face")($cs:"sex transactional he cums manual")]]
(if:_cum_location is "mouth")[(link:"In my mouth!")[(set:$your_choice to "mouth")($cs:"sex transactional he cums manual")]]
(if:_cum_location is "pull out")[(if:$npc's "cock" is "in you")[(link:"Pull out!")[(set:$your_choice to "pull out")($cs:"sex transactional he cums manual")]]]
(if:_cum_location is "inside")[(if:$npc's "cock" is "in you")[(link:"Cum inside me!")[(set:$your_choice to "creampie")($cs:"sex transactional he cums manual")]]]
(if:_cum_location is "moan")[(link:(twirl:"Nngh!", "Mmnnn!", "Ah!", "Unh!", "Mmm!", "Huh!", "Nnn!", "Hnn!", "Unh-unh!", "Uhh!", "Ngh!", "Aah!", "Unh-huh!", "Hmm!", "Nn!", "Huh-huh!", "Ah-ah!", "Mm!", "Uhhh!", "Mmm-hmm!", "Uh-huh!", "Aah-ah!", "Huh-nnn!", "Mm-hmm!", "Nnngh!", "Unh-unh-unh!", "Mmm-ah!", "Uhh-ah!", "Nghh!", "Nnn-huh!", "Huh-mm!", "Unh-huh-nnn!", "Nnn-ah!", "Uhh-unh!", "Mmm-huh!", "Ah-ah-ah!", "Unh-nngh!", "Huh-mmm!", "Nnn-unh!", "Aah-hnn!", "Mmm-mm!", "Unh-ngh!", "Ngh-mm!", "Uhh-nngh!", "Huh-nngh!", "Nnn-ahh!", "Unh-huh-mm!", "Mm-ahh!"))[]]
]
</div>
(set:_intellect_factor to (cond:
(get_intellect:) > 5,
1 + ((get_intellect:) - 5) * 0.07,
1 - (5 - (get_intellect:)) * 0.07))
(set: _orgasm_factor to 1 - ($orgasms * 0.05))
(set:_bimbo_factor to (cond:(is_bim:),0.65,1))
(set:_people_pleaser_factor to (cond:(is_pp:),0.75,1))
(set:_personality_factor to (cond:
$npc's "personality" > 5,
1 + ($npc's "personality" - 5) * 0.07,
1 - (5 - $npc's "personality") * 0.07))
(set: _drunk_factor to 1 - (($character's "alcohol status") * 0.1))
(set:$CHI_timeout to (floor:(($npc's stamina)*0.5*1000) * _intellect_factor * _orgasm_factor * _bimbo_factor * _people_pleaser_factor * _personality_factor * _drunk_factor))
(live:$CHI_timeout)[(unless:$choice is "anywhere")[
(if:$your_choice_taken is "no")[(set:$choice to "unclear")
($cs:"sex transactional he cums auto")]
]
(stop:)
]
{(live:($CHI_timeout*2/3))[
(text-style:"shudder")["(if:$npc's tags contains "chad")[(twirl:"Fuck yeah...","Nngh, gonna nut.","Nnngh. Yeah...","Get ready...","You're gonna be my cum-dump...","Fuck yeah, I'm gonna cum.")](else-if:$npc's "tags" contains "gentleman")[(twirl:"Where do you want it?","Quick, where do you want it?","Please let me know where to deposit my love...","Inside or outside?","I'm gonna blow!","I'm about to cum!","I'm gonna finish, where should I do it?")](else-if:$npc's age > 39)[(twirl:"I'm gonna pop...","I'm gonna blow my top, sweetie...","Nggh. I'm gonna shoot my wad.","Gonna give you everything I've got!","I'm gonna pop...","I'm gonna blow my top... fuck...")](else-if:$npc's "tags" contains "nerd")[(twirl:"I'm gonna release!","I'm gonna ejaculate...","Mmmm... this is gonna feel amazing...","You're gonna be my cum dump, just like those hentai girls!","I'm gonna shoot!","This is gonna be a thick load!","I'm gonna give you my semen!","I'm gonna cum!")](else-if:$npc's "age" < 23)[(twirl:"Nngh, I'm gonna bust a nut...","I'm gonna drop a load...","I'm gonna blow my wad...","I'm gonna let it rip...","You're gonna get my DNA...","I'm gonna hit you with my love juice...","I'm 'bout to splooge!","Get ready for my cum cannon to fire!","I'm gonna give you my gooey goodness...","I'm gonna bust...","Get ready for the skeet skeet...")](else:)[(twirl:"Quick, where do you want it?","I can't hold it much longer!","I'm gonna cum...","Fuck, I'm gonna nut...","Fuck, I'm gonna cum...","Shit shit shit, I'm gonna cum...")]"]
]}
<script>
// failsafe if problem with variable access in JS
let t = (typeof $CHI_timeout == "undefined") ? 10*1000: $CHI_timeout;
let setopFunc = () => {
// make sure options are visible. otherwise they won't fade and are just op=0
if ($('.options.fading').is(':visible')) {
$('.options.fading').css('transition','all ' + t + 'ms');
$('.options.fading').css('opacity',0);
} else {
window.setTimeout(setopFunc, 100);
}
};
window.setTimeout(setopFunc, 1000);
</script>
]
}(set:$your_choice_taken to "yes")(display:"sex transactional he cums")(unless:$choice is "anywhere")["(twirl:"Fuck, ","Too late, ")(twirl:"here it cums!","I can't hold it back anymore...")"
](display:"sex transactional he cums"){(unless:$his_choice is $your_choice or $your_choice is "none")[He shakes his head. (if:$npc's tags contains "chad")["(twirl:"Nah, I'm gonna do what I want with you","I make the decisions here","A slut like you doesn't get to choose")," he says.](else-if:$npc's tags contains "fuckboy")["(twirl:"Nice try babe, but nah","Nah, this is my show","That's cute, but no")," he grins.](else-if:$npc's tags contains "gentleman")["(twirl:"I have something else in mind, if you don't mind","I hope you won't be upset, but I'd prefer something else","Pardon me, but I have another preference")," he says politely.](else-if:$npc's age < 20)["(twirl:"Bruh, let me do my thing","Nah fam, I got other plans","Cap, I'm doing what I want")," he says.]](set:$his_choice to (twirl:"pull out","tits"))($char_passage:"sex transactional he pulls out",[(unless:(a:"alina","cassidy","ella","jade","liya","mia") contains $character's "id")[(set:$his_choice to "pull out")(set:$case to "upper")(display:"npc pronoun") pulls out. ](else:)[(set:$his_choice to (twirl:"pull out","tits"))]],[])(display:"sex pull out")(if:$his_choice is "tits")[(display:"describe breasts")(set:$case to "upper")(display:"npc pronoun") angles his cock at your $breasts.(if:$npc's tags contains "chad")[ "(twirl:"These tits were made for painting","Time to glaze these puppies","Your tits are about to get what they deserve")" he growls.](else-if:$npc's tags contains "gentleman")[ "(twirl:"Your lovely breasts deserve some attention","If you'll allow me to decorate your beautiful chest","I hope you won't mind if I finish on your lovely breasts")" he says.]](else:)[(display:"describe butt")(set:$case to "upper")(display:"npc pronoun") angles his cock at your $butt.(if:$npc's tags contains "chad")[ "(twirl:"That ass is mine","Time to mark that ass","Your ass is about to get what it deserves")" he growls.](else-if:$npc's tags contains "fuckboy")[ "(twirl:"Bout to paint that ass","Gonna decorate that booty","Time to frost that cake")" he grins.]](nl:2)
(print:$img)(display:"his cum sounds")(nl:2)
(set:$index to 0)(if:$his_choice is "tits")[(display:"describe breasts")(if:$text contains "wiggle")[(if:$character's "arousal" > 9)[(twirl:"Hopelessly aroused,","Burning with arousal,","Hopelessly horny,","Horny as a bitch in heat,","Like a bitch in heat,","Overwhelmed with horniness,","Overwhelmed by female hormones,") (twirl:"you jiggle your $breasts","you bounce your $breasts","you shake and jiggle your $breasts")(twirl:" to heighten his enjoyment"," for his load"," in anticipation of his load",", all to increase his pleasure",", eager for his load",", to heighten his pleasure").](else-if:(is_bim:))[(twirl:"You jiggle your $breasts like a bimbo.","You grab your $breasts and jiggle them like the stupid bimbo you are.","You jiggle your $breasts like the bimbo you are.")](else-if:$character's "masculinity" > 75)[(twirl:"He tells you to jiggle your $breasts, and you obey.","For some reason, you shake your chest for his load.","Caught up in the moment, you bounce your tits as he's about to blow.","You jiggle your $breasts for his load.")](else:)[(twirl:"You jiggle your $breasts","You bounce your chest","You shake and jiggle your $breasts")(twirl:" to heighten his enjoyment"," for his load"," in anticipation of his load",", all to increase his pleasure",", eager for his load",", to heighten his pleasure").]]]
(else:)[(display:"describe butt")(if:$text contains "wiggle")[(if:$character's "arousal" > 9)[(twirl:"Hopelessly aroused,","Burning with arousal,","Hopelessly horny,","Horny as a bitch in heat,","Like a bitch in heat,","Overwhelmed with horniness,","Overwhelmed by female hormones,") (twirl:"you jiggle your $butt","you bounce your $butt up and down","you shake and jiggle your $butt")(twirl:" to heighten his enjoyment"," for his load"," in anticipation of his load",", all to increase his pleasure",", eager for his load",", to heighten his pleasure").](else-if:(is_bim:))[(twirl:"You jiggle your $butt for him like a good bimbo.","You shake and jiggle your $butt for him like the bimbo slut you are.","You wiggle your $butt like the brainless slut you are.")](else-if:$character's "masculinity" > 75)[(twirl:"He tells you to jiggle your $butt, and you obey.","For some reason, you shake your $butt for his load.","Caught up in the moment, you wiggle your ass as he's about to blow.","You wiggle your $butt for his load.")](else:)[(twirl:"You jiggle your $butt","You bounce your $butt up and down","You shake and jiggle your $butt")(twirl:" to heighten his enjoyment"," for his load"," in anticipation of his load",", all to increase his pleasure",", eager for his load",", to heighten his pleasure").]]](else-if:$text contains "jiggle")[(display:"describe breasts")(if:$character's "arousal" > 9)[(twirl:"Hopelessly aroused,","Burning with arousal,","Hopelessly horny,","Horny as a bitch in heat,","Like a bitch in heat,","Overwhelmed with horniness,","Overwhelmed by female hormones,") (twirl:"you jiggle your $breasts","you cup your $breasts as he achieves orgasm","you jiggle your breasts like a bitch").](else-if:(is_bim:))[(twirl:"You jiggle your $breasts like a bimbo.","You grab your $breasts and jiggle them like the stupid bimbo you are.","You jiggle your $breasts like the bimbo you are.")](else:)[(twirl:"You hold your $breasts, jiggling them.","You cup your $breasts while he orgasms, it feels like the right thing to do.")]]
"(twirl:"Nggh-","Nngggghh-","Nnnnngghhh-","Mnnnghh...","UNNNghhh- aaahhh...") (twirl:"FUCK YES","UNNGHHh YES","YEAH","FUCKKKKK","GODDDD YES","FUCK YEAH","MMMMM","GOD, FUCK YES")(twirl:"!","!!","!!!")" (display:"npc pronoun") (twirl:"grunts, head rolling back","moans, jerking his cock","groans in pleasure","grunts in pleasure","moans in pleasure","is lost in pleasure, head rolling back").
(if:$text contains "runny")[(set:$cum_desc to (twirl:"runny","warm, runny","hot, runny","wet, runny") + " " + (twirl:"cum","cum","jizz","ball snot","spunk","cum","kiddie kretor","sextoplasm","love juice","cum","dick sneeze","spunk","baby gravy"))](else:)[(set:$cum_desc to (twirl:"thick","warm","hot","wet, sticky","hot, gooey","warm, sticky","hot, gooey") + " " + (twirl:"cum","man-cream","cum","jizz","ball snot","spunk","cum","semen","population paste","brogurt","cum","cum","dick-snot","ball-snot","cum","sperm","semen","cum"))]
(if:$character's "masculinity" > 80 and (twist:1,2) is 1)[(set:$cum_desc to (twirl:"gross","thick, wet","pungent, sticky","gross and gooey","gross","wet, sticky","masculinity-erasing","musky","masculinity-erasing") + " " + (twirl:"ball-snot","baby batter","sperm","semen","baby gravy"))]
(set:$ropes_desc to (twirl:"rope after rope","spurts","thick strands","fat spurts","thick ropes","thick jets","ropes","spurt after spurt","squirt after squirt","thick squirts"))
(if:$npc's "age" < 20)[(set:$cum_desc to (twirl:"thick Gen-Z","hot, teenage","hot, sticky, teenage","teenage","sticky teenage") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","cum","cum"))]
(if:$npc's "age" > 39 and (twist:1,2) is 1)[(set:$cum_desc to (twirl:"old man","old guy","hot, sticky, old-guy") + " " + (twirl:"ball-snot","baby batter","sperm","semen","baby gravy","semen","semen"))]
(if:$npc's "tags" contains "fuckboy")[(set:$cum_desc to (twirl:"thick fuckboy","hot, fuckboy","hot, sticky, fuckboy","fuckboy-generated","sticky fuckboy") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","cum","cum"))]
(if:$npc's "tags" contains "nerd")[(set:$cum_desc to (twirl:"thick nerd","hot, nerd","hot, sticky, nerd","nerd-generated","nerd fuckboy","unpasteurized nerd") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","cum","cum"))]
(if:$npc's "tags" contains "smelly")[(set:$cum_desc to (twirl:"thick, disgusting","gross","hot, sticky, and gross","probably-gross","hot, smelly","hot, gross","hot, fetid","sticky, gross-looking","gross-looking","thick, bad-smelling") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","dick-snot","population paste"))]
(if:$text contains "butt")[(display:"describe butt")(set:$case to "upper")(display:"npc pronoun") (twirl:"proceeds to spray $ropes_desc of $cum_desc all over your $butt","fully inseminates your $butt with $ropes_desc of $cum_desc","hoses your $butt down with $ropes_desc of $cum_desc").](else-if:$text contains "tits")[(display:"describe breasts")(set:$case to "upper")(display:"npc pronoun") (twirl:"proceeds to spray $ropes_desc of $cum_desc all over your $breasts","fully inseminates your $breasts with $ropes_desc of $cum_desc","hoses your $breasts down with $ropes_desc of $cum_desc").](else-if:$text contains "belly")[(set:$case to "upper")(display:"npc pronoun") (twirl:"proceeds to spray $ropes_desc of $cum_desc all over your belly","fully inseminates your belly with $ropes_desc of $cum_desc","hoses your body down with $ropes_desc of $cum_desc").]}
(display:"sex transactional end")He cums all over your butt.(set:$position to "doggy")(display:"sex creampie image")(print:$img){(set:$his_choice to "creampie")
(display:"npc describe cock")(display:"describe butt")(set:$fuck to (twirl:"Nggh-","Nngggghh-","Nnnnngghhh-","Mnnnghh...","UNNNghhh- aaahhh...","Mmmnghhh-","NNnggh-","MMmmMMmmm-") + " " + (twirl:"FUCK YES","UNNGHHh YES","YEAH","FUCKKKKK","GODDDD YES","FUCK YEAH","MMMMM","FUCK","MMMnnnAAAHhhh","AaaHhhHH","NnghhAAAahhhh","FUCkkkkk") + (twirl:"!","!!","!!!"))
"(print:$fuck)" (if:(twist:1,2) is 1)[(display:"npc pronoun") (twirl:"groans heavily","grunts","moans heavily","grunts heavily","groans","is lost in pleasure")](else:)[(display:"npc possessive pronoun") (twirl:"head rolls back","eyes roll back","grunts are wild and cut-off")] (twirl:"as he climaxes","as he begins to climax","as he hits his orgasm","as he hits what appears to be a delightful orgasm","as he reaches his limit"). (if:$npc's "tags" contains "breeder")["(twirl:"Get pregnant,","Get fucking pregnant,","I'm fucking breeding you,","Time to get pregnant,") (twirl:"whore","slut","slut","bitch")!"]
(if:(twist:1,2) is 1)[(set:$case to "upper")(display:"npc possessive pronoun") $cock (twirl:"twitches","throbs","pulsates and pushes forward") inside you(if:(twist:1,2) is 1)[ (twirl:"as he goes balls-deep","as he hilts himself deep within you")].](else:)[(set:$case to "upper")(display:"npc possessive pronoun") (if:(cock:"balls","npc") > 8 and (twist:1,2) is 1)[(twirl:"massive","hefty","fully-loaded","giant","big ol' extremely large","large","big")](else:)[(print:$npc's "ballsdesc")] (if:(twist:1,2) is 1)[(twirl:"sack","ballsack","ballsack") (twirl:"tightens and shifts","tightens and twitches","twitches","shifts") (twirl:"against your $butt","against you","against your legs","up against you")(if:(twist:1,2) is 1)[ (twirl:"as it prepares to eject its payload","as it prepares to empty itself inside you","as it prepares to unload its potent contents","as it prepares to unload","as it unloads")].](else:)[(twirl:"balls","testicles","sperm spheres","balls","balls","nuts","juevos","testicles","balls","testes") (twirl:"tighten and shift","tighten and twitch","twitch","shift","tighten") (twirl:"against your $butt","against you","against your legs","up against you")(if:(twist:1,2) is 1)[ (twirl:"as it prepares to eject its payload","as as they eject their contents","as they unload their contents","as they prepare to inseminate your insides")].]]
(display:"describe pussy")(nl:2)
(if:$text contains "runny")[(set:$cum_desc to (twirl:"runny","warm, runny","hot, runny","wet, runny") + " " + (twirl:"cum","cum","jizz","ball snot","spunk","cum","kiddie kretor","sextoplasm","love juice","cum","dick sneeze","spunk","baby gravy"))](else:)[(set:$cum_desc to (twirl:"thick","warm","hot","wet, sticky","hot, gooey","warm, sticky","hot, gooey","scalding hot","blisteringly hot","wriggling","hot","hot, thick","hot, sticky") + " " + (twirl:"cum","cum","jizz","ball snot","cum","semen","population paste","brogurt","cum","cum","dick-snot","ball-snot","cum","sperm","semen","cum","sperm"))](display:"npc describe cock")
(if:$character's "masculinity" > 80 and (twist:1,2) is 1)[(set:$cum_desc to (twirl:"hot, sticky","thick, wet","sticky, masculinity-destroying","gross and gooey","gross","wet, sticky","masculinity-erasing","musky","masculinity-erasing") + " " + (twirl:"ball-snot","baby batter","sperm","semen","baby gravy"))]
(if:$npc's "age" < 20)[(set:$cum_desc to (twirl:"thick Gen-Z","hot, teenage","hot, sticky, teenage","teenage","sticky teenage") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","cum","cum"))]
(if:$npc's "age" > 39 and (twist:1,2) is 1)[(set:$cum_desc to (twirl:"old man","old guy","hot, sticky, old-guy") + " " + (twirl:"ball-snot","baby batter","sperm","semen","baby gravy","semen","semen"))]
(if:$npc's "tags" contains "fuckboy")[(set:$cum_desc to (twirl:"thick fuckboy","hot, fuckboy","hot, sticky, fuckboy","fuckboy-generated","sticky fuckboy") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","cum","cum"))]
(if:$npc's "tags" contains "nerd")[(set:$cum_desc to (twirl:"thick nerd","hot, nerd","hot, sticky, nerd","nerd-generated","nerd fuckboy","unpasteurized nerd") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","cum","cum"))]
(if:$npc's "tags" contains "smelly")[(set:$cum_desc to (twirl:"disgusting","gross","hot, sticky, and probably gross","probably-gross","probably-smelly","hot (and probably gross)") + " " + (twirl:"ball-snot","cum","sperm","dick-sneeze","dick-snot","population paste"))]
(set:$ropes_desc to (twirl:"rope after rope","heavy spurts","thick strands","fat spurts","thick ropes","thick jets","ropes","spurt after spurt","squirt after squirt","thick squirts","thick torrents","spurts"))
(twirl:"You *feel* them, $ropes_desc of $cum_desc injected inside you.","You moan as you feel $ropes_desc of $cum_desc fill you up.","You whimper as you feel $ropes_desc of $cum_desc fill your $pussy.",(upperfirst:$ropes_desc) + " of $cum_desc fill your $pussy.","You moan as you feel your insides shot full of $ropes_desc of $cum_desc.","You feel him fill you up with $ropes_desc of $cum_desc.","You whimper as you feel his $cock pressure-inject you with $ropes_desc of $cum_desc.","Your innermost place gets totally power-washed with $ropes_desc of $cum_desc." )}(nl:1)
(display:"sex creampie")(display:"his cum sounds")
(display:"sex transactional end"){(print:$location_params's "sex location pic")(set:$ambience to $location_params's "ambience")(set:$social_timer to 0)(if:$scene's "events" contains "oral")[(set:$stats's "cunnilingus received" to it + 1)]
(unless:(checkdm:$npc,"id","is","bruce"))[(set:$case to "upper")(display:"npc pronoun") (twirl:"zips up his pants","pulls his pants back on","zips back up"). ](if:$scene_type is "sex bedroom")[(if:(checkdm:$npc,"id","is","bruce"))[(display:"transactional bedroom sex end bruce")](else:)[(display:"transactional bedroom sex end")]](else:)[(if:$his_satisfaction < 3 and $reward is "money")[(if:$npc's tags contains "fuckboy" or $npc's tags contains "chad" and (twist:1,2) is 1)[(set:$reward to "none")He explains that your (twirl:"lackluster performance","poor performance") means (twirl:"no cash","he doesn't need to pay you").](else-if:$npc's tags contains "gentleman")[He says (twirl:"a deal is a deal","he's still honor the deal").](else-if:(twist:1,2) is 1)[He (twirl:"explains","says") that your (twirl:"lackluster performance","sucky blowjob","poor performance") means (twirl:"that you only get half the agreed payment","that you only get half the agreed money","that he can only pay you half").(set:$reward_amount to (ceil:$reward_amount / 2))]](if:$his_satisfaction > 6 and $reward is "money" and $npc's wealth > 3 and (twist:1,2) is 1 and not ($npc's tags contains "fuckboy"))[(inc:'reward_amount',40)(twirl:"He even offers you a $40 *tip* since he loved it so much.","He even offers you a $40 tip.")](if:$reward is "money")[(nl:2)<div class='options'><mark>He gives you $(print:$reward_amount).</mark></div>(set:$character's money to $character's money + $reward_amount)(display:"refresh stats")(display:"refresh portrait")](if:$reward is "card")[(nl:2)He gives you an X-Change trading card.(nl:2)(if:$his_satisfaction < 4)[(set:$card_select to "common")](if:$his_satisfaction > 1)[(set:$card_select to (twirl:"common","uncommon","rare"))](display:"get card")](if:$reward is "office stress relief")[(display:"office sex end scene")](if:$reward is "volleyball")[(display:"volleyball sex transactional post scene")](if:$reward is "lead")[(if:$office_events contains "swp restriction")[(display:"sex transactional restriction outcomes")](else:)[(display:"npc lead reward")]](nl:1)(display:"npc find fuckbuddies")(if:$his_satisfaction > 5 and not ($npc's "tags" contains "fuckbuddy") and not ((checkdm:$npc,"id","is","bruce")))[(if:$fuckbuddies's length > 5)[<div class='options'><mark>You already have 5 fuck-buddies!</mark></div>(display:"sex transactional end final")](else:)[(display:"npc request relationship")]](else:)[(display:"sex transactional end final")]]
}{($notification_still:"You don't get a lead, since the office is upset with you for the SWP restrictions.")(if:$his_choice is "creampie")["(twirl:"Nnnghh... fuck, perfect place for my load - right in the pussy that caused all our problems.","UNGH... take it deep. Not so tough now that you're getting bred in the supply closet, huh?","Nnngh... FUCK YES... getting knocked up by coworkers - that's what happens when you cross Victor.","God... FUCK... getting pumped full of cum beats closing deals, doesn't it slut?","Unngh... breeding the office troublemaker... fuck that's hot...","FUCK... your pussy's taking every drop... least you're good for something after ruining our commissions...","Nnngh... draining my balls right where it counts... bet Victor would love to see this...","Unngh... getting knocked up by the office, that's your new job description...","FUCK YES... filling up the company liability... nnngh... take it all...","Mmmph... this is your real sales target now - taking loads balls deep...")"](else-if:$npc's "sales level" > 7 and $his_choice is "creampie")["(twirl:"As your superior, I think this is a much better use of company resources.","UNGH... this is what happens to employees who fuck with corporate politics...","Consider this a direct deposit from management, you troublemaking slut.","NNNGH... getting bred by executives - quite the career move...","This is your new performance review - taking superior cock and cum...","Upper management has decided this is your new position - office cumdump.","From corner office potential to taking loads in the supply closet. Life comes at you fast.","Nnngh... flooding your pussy with executive cum... that's what you deserve...","Your new promotion path - taking seed from your betters.","Getting filled by management - your only career option after crossing Victor.")"](else-if:$npc's "personality" < 4 and $his_choice is "mouth")["(twirl:"UNGH... swallow it bitch. Choke on the consequences of your actions...","That's it, drink it all you stupid cunt. This is what happens when you mess with our money.","NNNGH... gargle that load, whore. Your mouth's only good for this now...","Unngh... hope you like the taste of failure and cum, office fuckup...","Choke on it, you dumb bitch. Should've thought before crossing Victor...","FUCK... your throat's better at taking cock than your brain is at making decisions...","Nnngh... eat it all, you worthless cumslut... that's your real purpose...","Unngh... from hotshot to throatslut. How's that career change feeling?","Your new commission structure - drinking loads instead of closing deals, dumb whore.","FUCK YES... stuff that stupid mouth full of cum instead of causing problems...")"](else-if:$sales_job's "sexual reputation level" > 4 and $his_choice is "face")["(twirl:"UNGH... another load for the notorious office cumdump who fucked our commissions...","The famous DynaPill slut gets what she deserves... NNNGH... take it all bitch...","Unngh... office whore AND company saboteur... wearing both titles on your face...","FUCK... our favorite cocksleeve still serving even after ruining everything...","Already the office cumrag, now you're Victor's problem too... NNNGH...","Company bike getting what she deserves... god that's fucking perfect...","Nnngh... least you're consistent about taking loads, even if you fuck up everything else...","UNGH... facial for the office legend - both kinds of legend now, aren't you?","DynaPill's favorite cumhole living up to all your reputations... FUCK...","Your face deserves this after what you pulled with Victor... NNNGH...")"](else-if:$npc's tags contains "chad" and $his_choice is "face")["(twirl:"UNGH... alpha cum all over the office fuckup's face. Perfect.","Nnngh... marking my territory on the company problem child... that's right...","Face full of superior seed - that's what crossing the wrong people gets you...","FUCK YES... painting the troublemaker's face... showing you your real place...","This is what happens when you play with the big boys, slut... UNGH...","Nnngh... wearing my load suits you better than playing office politics...","Your face looks better glazed in chad cum than it does making decisions...","UNNGH... this is what real power looks like, painted all over your face...","From thinking you're hot shit to wearing my load... that's corporate karma...","Taking facials from your betters - that's your new career path...")"](else-if:$npc's "personality" > 7 and $his_choice is "mouth")["(twirl:"Mmm... that's better. Much more constructive than causing problems...","Quite the career adjustment, but you seem to be adapting well... UNGH...","A rather unorthodox way to handle workplace disputes, but effective...","Your new conflict resolution strategy seems to be working... NNNGH...","Perhaps this will help you reconsider future corporate decisions... mmm...","A rather dramatic shift in your job duties, but you're managing admirably...","This seems a more suitable application of your skills... UNGH...","Your new approach to workplace relations is... mmm... quite direct...","Unconventional problem-solving, but I can't fault the results... NNNGH...","Consider this an informal performance improvement plan...")"](else:)["(twirl:"NNNGH... marking up the office troublemaker... that's what you get...","Painting the company problem right where everyone can see... UNGH...","Fuck... decorating the girl who fucked our commissions... perfect...","Your body's taking the punishment your career deserves... NNNGH...","This is your severance package - covered in coworker cum... UNGH...","From professional to cum canvas... that's corporate justice... FUCK...","NNNGH... wearing loads looks better on you than making decisions...","Marked up like the office fuckup you are... that's right... UNGH...","Your new bonus structure - taking loads instead of commission... FUCK...","Getting decorated by the coworkers you screwed over... NNNGH...")"]
}{(set:(twirl:"reason 1","reason 2","reason 3") of $minigame to (twirl:"How did you feel, with his cum all over your face?","You just loved letting him paint your face with his cum, didn't you?","He erased whatever masculinity you had left, when he sprayed his cum all over your face."))(set:$minigame's "masculinity level" to (max:50,$minigame's "masculinity level" - 5))}(display:"sex cum on face")(print:$img)(display:"register receive facial")(if:$character's reluctance > 6 and $character's masculinity > 70)[($remember:"cum facial",2 * $character's reluctance,$npc's name,$img,"dream",(cond:$choice is $his_choice,"asked","didnt ask for it"),"dream facial choice")](set:$his_choice to "face")(display:"cum face description")(display:"his cum sounds")(if:$cum_text contains "hair" and not ($hairstyle is 0))[(nl:2)<mark>(print:$npc's "name")'s cum got in your hair, ruining your (display:"hairstyle name")$hairstyle_name.</mark>(set:$hairstyle to 0)(set:$hairstyle_timer to 0)(display:"refresh portrait")
](if:$cum_text contains any of (a:"eyes","cumdump","face","up nose","nose","forehead"))[(display:"ruin makeup")](replace:?portrait)[(print:"<img class='border' src='img/characters/cum/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](set:$character's "status" to "cum")(set:$npc_cum to $npc's "name")
(display:"sex transactional end")(set:$outfit_button to "dont show")(display:"outfit button")(display:"refresh portrait")(display:"sex cum in mouth")(print:$img)(if:$text contains "big load")[(set:$sound to $se)(display:"play sound")](else:)[(display:"his cum sounds")](unless:$your_choice is $his_choice)[(if:(twist:1,2) is 1)["(if:$npc's tags contains "fuckboy")[(twirl:"Nah","Naw"), (if:$his_choice is "mouth")[(twirl:"take your medicine,","you're gonna drink it,")](else:)[(twirl:"I'm gonna make you prettier","I'm gonna make you look good","I'm gonna paint your face"),] (twirl:"ho","thot",$petname),](else-if:(checkdm:$npc,"tags","contains","chad"))[(if:$his_choice is "face")[(twirl:"Prefer painting your face","I prefer cumming on sluts' faces","I'd rather cover your face","I'd rather cum on your face","Nah, I'm nutting on your face"),](else:)[(twirl:"Just take your medicine","You're gonna swallow it","You're gonna take it in your mouth","You're gonna swallow","You're gonna drink it","It's going in your mouth"),]](else:)[(twirl:"I don't think so,","Nah,","No,")]" he grunts](else:)[(twirl:"He shakes his head","He just grunts")](if:$his_choice is "face")[, (twirl:"angling his cock toward your face instead","pointing his cock at your face instead").](else:)[. "(twirl:"Say 'ah'.","Open wide.","Open wide, slut.","Open wide!")"] (if:$text contains "jerk")[(if:$his_choice is "mouth")[(twirl:"Submissively, you take it in your hand and start jerking it, mouth open.","Mouth opening dutifully, you take his erection and start jerking it.","Dutifully, you take his dick in your hands and open your mouth.")]]](else-if:$his_choice is "face")["(twirl:"Hah, sure,","Heh,","NNNnghh...","MMMMnnnn!!!","Oh FUCK yes,","God, yes! NNnnggh-")" (twirl:"he points his cock at your face","he points his cock at your face, as he beats off","he groans mightily, ready to unload").](else-if:$his_choice is "mouth")["(twirl:"Hah, sure....","Heh...","NNNnghh...","MMMMnnnn!!!","Oh FUCK yes...","God, yes! NNnnggh-") (twirl:"Say ah!","Open wide!","Open wide, slut.","Open up...")" (if:$text contains "jerk")[(twirl:"you take a hold of his cock and finish him off, like a good girl.","you grasp his meaty cock to finish him off.")]](if:$text contains "big load")[
(twirl:"Oh FUCK.","Holy FUCK.","God-DAMN!") (twirl:"This is a big load...","This is an absolutely massive load.","This fucking load is absolutely massive.")](else-if:$his_choice is "mouth")[(display:"cum mouth description")]
<div class='options'>(if:$text contains "big load")[(link:"Try not to gag")[(set:$sex_loop_continue to "true")(display:"big load minigame")]](else-if:$text contains "in mouth")[(link:"Spit")[(set:$choice to "spit")($cs:"sex transactional cum spit swallow choice")](link:"Swallow")[(set:$choice to "swallow")($cs:"sex transactional cum spit swallow choice")]](else:)[(display:"sex transactional end")]</div>{
(if:$your_choice_taken is "no")[
(if:$npc's "cock" is "in you")[
(set:$your_choice to (twirl:"creampie","pull out","mouth","face"))
](else:)[
(set:$your_choice to (twirl:"face","mouth"))
]
]
(unless:$current_activity is "Go clubbing")[(set:$song to 0)(display:"play song")]
(if:$npc's "tags" contains "gentleman" or ($npc's "personality" + $his_satisfaction) > ((twist:0,10) + $npc's "dominance") and not ($your_choice is "none"))[
(set:$his_choice to $your_choice)
](else-if:$his_choice is "none")[
(if:$npc's "cock" is "in you")[
(set:$his_choice to (twirl:"creampie","creampie","creampie","pull out",$your_choice,"mouth","face"))
](else:)[
(set:$his_choice to (twirl:"face","mouth",$your_choice))
]
]
(if:$npc's tags contains "breeder" and $npc's cock is "in you")[
(set:$his_choice to "creampie")
](if:$his_choice is "creampie" and (checkdm:$npc,"id","is","stepdad"))[(set:$his_choice to (twirl:"pull out","face","mouth"))]
(if:(checkdm:$npc,"ground rules","contains","always pull out") and $his_choice is "creampie")[(set:$his_choice to (twirl:"pull out","face","mouth"))]
(if:$your_choice_taken is "no")[(set:$your_choice to $his_choice)]
(set:$sex_loop to 0)(display:"play sex loop")
(if:(checkdm:$npc,"id","is","bruce") and $office_events contains "doesnt have sphere")[(set:$his_choice to "creampie")]
(if:$his_choice is "pull out")[
(display:"sex transactional he pulls out")
](else-if:$his_choice is "creampie")[
(display:"sex transactional creampie")
](else-if:$his_choice is "face")[
(display:"sex transactional cum face")
](else:)[
(display:"sex transactional cum mouth")
]
(set:$his_pleasure to 0)
(live:1s)[(display:"update his pleasure")(stop:)]
(set:$cum_npc to $npc)
}{(unless:$current_activity is "Go clubbing")[
(set:$music to (twirl:"yes","no"))
(set:$songs to (twisted:"all a dream","bad intentions","bad times","begging","believe","body wants you","bring the heat","dark","depressing","enemy","fun classical","fun","get fizzy","gun","knock","like it","loser","losing control","losing yourself","move","percussive","porch etude","royals","senorita","snap","soul","subwoofer","tamagotchi","wild","intense","rebuke","heart","la luh","learn","lost in asia","love","monsta","rebuke","underground","dxrk","suck"))
(unless:$character's "race" is "asian")[(set:$songs to $songs - (a:"tamagotchi"))]
(unless:$character's "race" is "latin")[(set:$songs to $songs - (a:"senorita"))]
(unless:$npc's "generation" is "genx")[(set:$songs to $songs - (a:"fun classical"))]
(unless:$npc's "tags" contains "chad")[(set:$songs to $songs - (a:"fun suck"))]
(unless:$npc's "personality" < 6)[(set:$songs to $songs - (a:"bad intentions","bad times","bring the heat","dark","depressing","enemy","gun","losing control"))]
(unless:$npc's "generation" is "genz")[(set:$songs to $songs - (a:"begging","soul"))]
(unless:$npc's "personality" > 5)[(set:$songs to $songs - (a:"believe","fun","get fizzy"))]
(unless:(cock:"rating","npc") > 6)[(set:$songs to $songs - (a:"body wants you"))]
(unless:$npc's "race" is "white")[(set:$songs to $songs - (a:"porch etude"))]
(set:$song to 1st of $songs)
(if:$music is "yes")[(newtrack:$song,"aud/music/sex/transactional/" + $song + ".mp3")
(newtrack:$song + " hit","aud/music/sex/transactional/chorus/" + $song + ".mp3")
(display:"play song no loop")](else:)[(set:$song to 0)]]}{(unless:$current_activity is "Go clubbing")[(if:$music is "yes")[(set:$song to $song + " hit")(display:"play song no loop")]]}{(if:$result is "fail")[(if:$scene's "events" contains "oral")["(twirl:"Come on,","You've got to be kidding me,","Hey, that's no fair,")" (display:"npc pronoun") (twirl:"laughs","chuckles"). "(twirl:"I already did my part - now you do yours.","I already serviced you - now it's your turn.","I already went down on you - you gotta return the favor.")"](else:)["(if:$npc's "tags" contains "fuckboy")[(twirl:"Nice try, $petname,","I don't think so, girlie,","Nah, girlie,")](else-if:$npc's "tags" contains "chad")[(twirl:"I don't think so, $petname,","I don't think so, $your_name,","I'm pretty sure your rightful place is down on your knees, sucking my cock,","I'm not going to tell you again. Suck my fucking dick,")](else-if:$npc's "generation" is "genx")[(twirl:"Kids these days, think everything comes for free...","No, I want to see those pretty lips wrapped around my cock,","Come on, be a sport,","Come on now, honey, do your part,")](else-if:$npc's "tags" contains "selfish")[(twirl:"No, I want you to suck my cock,","No fair - you need to go down on me,")](else-if:$npc's "age" < 20)[(twirl:"Nah, I wanna see you suck my dick!","Nah, I wanna see an older woman suck my DICK! Haha,")](else:)[(twirl:"No, I want you to suck my dick,","No, suck my dick,","Nice try - suck my dick,","No, I want you to suck my dick,","Come on, your spit will be the perfect lube,")]" (display:"npc pronoun") says.]<div class='options'>(link:(twirl:"Fine...","Okay...","Alright..."))[(display:"sex transactional blowjob")]</div>](else:)[(set:$scene's "events" to $scene's "events" + (a:"persuade oral"))
|options>[](display:"sex transactional oral")]}{(replace:?options)[](if:$outfit's "tags" contains "easy access skirt" or $outfit's "tags" contains "easy access dress")[(replace:?options)[(set:$outfit_button to "show")(display:"outfit button")(display:"refresh portrait")(set:$outfit_button to "show")(display:"outfit button")(display:"refresh portrait")<div class='options'>(if:$outfit's "tags" contains "easy access skirt")[(link:"Lift skirt")[(display:"sex transactional strip minimal")]](if:$outfit's "tags" contains "easy access dress")[(link:"Lift dress")[(replace:?options)[](display:"sex transactional strip minimal")]](link:"Take it off")[(replace:?options)[](display:"sex transactional strip remove")]]</div>](else:)[(display:"sex transactional strip remove")](display:"breathing ambience") (display:"exhibitionist warning count")}{
(if:(datanames:$outfit) contains "image" and ($outfit's "tags" contains "fragile" or $outfit's "tags" contains "very fragile" and not ($outfit's "tags" contains any of (a:"push aside","easy access dress","easy access skirt"))))[
(set:_durability to 4)
(if:$outfit's "tags" contains "very fragile")[(set:_durability to 2)]
(set:$tear to "no")
(if:$npc's "fitness" > 7 and (twist:1,3) is 1)[(if:(twist:1,$npc's "fitness") > (_durability + 3))[(set:$tear to "yes")(set:$reason to "strong")]]
(if:$npc's "tags" contains "nerd" and _durability < 4 and (twist:1,3) is 1)[(set:$tear to "yes")(set:$reason to "inexperienced")]
(if:$npc's age <20 and _durability < 4 and (twist:1,2) is 1)[(set:$tear to "yes")(set:$reason to "inexperienced")]
(if:$npc's "tags" contains "fuckboy" and (twist:1,$npc's "fitness") > (_durability + 2))[(set:$tear to "yes")(set:$reason to "careless")]
(if:$npc's "tags" contains "selfish" and (twist:1,$npc's "fitness") > (_durability + 2) and (twist:1,2) is 1)[(set:$tear to "yes")(set:$reason to "careless")]
(if:$npc's "tags" contains "annoying" and (twist:1,$npc's "fitness") > (_durability + 2) and (twist:1,2) is 1)[(set:$tear to "yes")(set:$reason to "careless")]
(if:$npc's "tags" contains "creepy" and (twist:1,$npc's "fitness") > (_durability + 2) and (twist:1,2) is 1)[(set:$tear to "yes")(set:$reason to "creepy")]
(if:$tear is "yes")[
(set:$type to "silent")(set:$select to $outfit's "id")(display:"remove outfit")(live:1s)[(display:"rip sound")(stop:)](twirl:"Oh shit.","Oh fuck.","Dammit.") (set:$case to "upper")(display:"npc pronoun") (set:_outfit to $outfit's "description")(if:$outfit's "description"'s last is "s" and not ((words:$outfit's "description")'s last is "dress"))[(set:$it to "them")](else:)[(set:$it to "it")]
(set:$that to "those")(print:$reason of (dm:
"inexperienced",
"clumsily " + (twirl:"rips","tears","damages") + " your " + _outfit + " while trying to remove " + $it + ".",
"strong",
"roughly " + (twirl:"rips","tears") + " your " + _outfit + " while removing " + $it + ".",
"careless",
"carelessly " + (twirl:"rips","tears","damages") + " your " + _outfit + " while removing " + $it + ".",
"horny",
(twirl:"rips","tears","damages") + " your " + _outfit + " while eagerly removing " + $it + ".",
"creepy",
(twirl:"rips","tears","damages") + " your " + _outfit + " while removing " + $it + " - did he do that intentionally?"
))(unless:$outfit's "category" is "lingerie")[(set:$sex_outfit to "torn")]<div class='options'><mark>Your outfit has been destroyed!</mark></div>]]
}{
(replace:?image)[](replace:?text)[(if:$outfit's "tags" contains "nude")[You're already naked.](else:)[<div class='options'><mark>(text-style:"fade-in-out")[You (twirl:"take off","slip out of","remove") your (print:$outfit's "description").]</mark></div>]](set:$outfit_button to "show outfit")(display:"outfit button")(display:"refresh portrait")(live:2s)[(replace:?text)[(display:"strip")(if:$character's "pussy" is "accessible")[(display:"describe pussy")(set:$case to "upper")(display:"npc pronoun") can see your $pussy now.(print:" ")](else:)[You (twirl:"put","toss","lay") your clothes on the $couch.(display:"no underwear comment make")(print:" ")]](replace:?options)[](display:"sex transactional next")(stop:)](display:"breathing ambience")
}{
(replace:?image)[](replace:?text)[You lift up your (print:$outfit's "bottom")(set:$character's "pussy" to "accessible")(unless:$outfit's "bottom" is $outfit's "pussy")[ and push aside your (print:$outfit's "pussy")].(display:"no underwear comment make")](display:"breathing ambience")
(display:"sex transactional next")(set:$sex_outfit to $outfit's id)
}{(unless:(datanames:$outfit) contains "category")[(set:$outfit's "category" to "casual")](unless:(datanames:$outfit) contains "type")[(set:$outfit's "type" to "outfit")]
(if:(twist:1,3) is 1)[(set:$outfit_desc to (text:$outfit's "category") of (dm:
"beach","that beachy outfit",
"casual","those clothes",
"fetish",(twirl:"that sexy getup","that sexy little number"),
"gym","that workout gear",
"lingerie","that lingerie",
"modest","those modest clothes",
"classy","that classy getup",
"lounge",(twirl:"those comfy clothes","those PJs"),
"office","that workwear",
"stylin",(twirl:"that outfit","those stylish clothes")))](else-if:(twist:1,2) is 1)[
(set:$outfit_desc to "those clothes")(if:$outfit's "category" is "lingerie")[(set:$outfit_desc to "that lingerie")(set:$outfit_desc to (text:$outfit's "style") of
(dm:
"cute",(twirl:"that cute set of lingerie","that adorable lingerie","that cute lingerie","that adorable lingerie"),
"sexy",(twirl:"that sexy lingerie","that super sexy lingerie"),
"slutty","that slutty lingerie",
"professional",(twirl:"those professional clothes","that professional outfit","that office-appropriate 'fit"),
"relaxed","that frumpy lingerie",
"elegant","that elegant outfit",
"classy","that classy getup",
"modest","that 'modest' outfit",
"mens","those guy clothes",
"casual","that lingerie"))](else:)[
(set:$outfit_desc to $outfit's "style" of
(dm:
"cute",(twirl:"that cute outfit","that cute getup","that cute outfit","that adorable outfit"),
"sexy",(twirl:"those sexy clothes","that sexy outfit","that super sexy outfit"),
"slutty",(twirl:"those slutty clothes","that slutty outfit","that super slutty outfit"),
"mens","those guy clothes",
"modest","that 'modest' outfit",
"professional",(twirl:"those professional clothes","that professional outfit","that office-appropriate 'fit"),
"relaxed",(twirl:"that sloppy outfit","those frumpy clothes","that frumpy outfit"),
"elegant",(twirl:"those elegant clothes","that elegant outfit"),
"casual","that outfit"))]
](else:)[
(set:$outfit_desc to $outfit's "bottom")
(if:$outfit_desc's last is "s" and not ((words:$outfit_desc)'s last is "dress"))[(set:$outfit_desc to "those " + $outfit_desc)](else:)[(set:$outfit_desc to "that " + $outfit_desc)]]}{<div style='display: none;'>{
(if:(is_nude:))[](else:)[(display:"stop sound")
(if:$outfit's "lingerie" is "none")[(set:$outfit to (dm:
"top","none",
"id","none",
"type","nude",
"image","<img class='greyborder' src='img/characters/nude/bust/" + (text:$character's "id") + " " + (text:((twist:1,4))) + ".jpg' width='100%' height=auto>",
"breasts","none",
"description","",
"bottom","none",
"pussy","none",
"sluttiness",10,
"price",0,
"category","casual",
"style","slutty",
"bra under","can",
"locations",(a:),
"panties under","can",
"emphasizes",(a:),
"reveals",(a:),
"colors",(a:"none"),
"breast support",0,
"lingerie","none",
"shoes","none",
"tags",(a:"nude")))(display:"nudity check reluctance")](else:)[(set:$select to $outfit's "lingerie")(display:"lingerie check reluctance")(display:"get outfit")(set:$outfit to $select_outfit)(set:$outfit's lingerie to "none")](set:$outfit_button to "show outfit")(display:"outfit button")(display:"refresh portrait")(display:"clothes sound")](if:$outfit's "tags" contains "nude")[(set:$character's "pussy" to "accessible")]
}</div>}{
(unless:$character's "arousal" is 10)[
(display:"arousal alcohol effects")
(set:$img_tag to "<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>")
(if: $stats_refresh is 0)[(set:$stats_refresh to "refresh stats")]
(if: $gain is 1 and (is_fem:) and $character's "reluctance" > (twist:7,9) and (twist:1,2) is 1 and not ($scene_type is "ff"))
[
(set:$gain to 0)
<mark>Arousal gain blocked due to your reluctance of (print:" ")(print:$character's "reluctance").</mark>
]
(else:)
[
<mark>
(unless:$custom_message is 0)[(print:$custom_message)]
(else:)[(if:(is_male:))[
(if:(twist:1,3) is 1)[You gain arousal.](else:)[(display:"gain arousal male text")]
](else:)[
(if:$character's "temp pill" is "true")[You gain arousal.](else:)[
(display:"gain arousal female text")
]]]
{
(set:$gain_lower to 0)
(if:$gain > 1 and (is_fem:) and $character's "reluctance" > (twist:7,9) and (twist:1,2) is 1 and not ($scene_type is "ff"))[(dec:'gain')(set:$gain_lower to 1)]
(print:(str-repeated:(round:$gain), $img_tag))
(if:$gain_lower > 0)[(nl:1)(1 less arousal point gained due to your reluctance of (print:$character's "reluctance").)]
(if:$gain_raise > 0)[(nl:1)(if:$gain_raise is 1)[(print:"1 additional arousal point gained due to alcohol.")](else:)[(print:"$gain_raise additional arousal points gained due to alcohol.")]]
}
</mark>
]
(set:$character's "arousal" to (min:$character's "arousal" + $gain,10))
(set:$custom_message to 0)(display:$stats_refresh)
]
}{
(display:"describe breasts")(display:"describe pussy")
(set:$situation to "alone")
(unless:$npc is 0)[(if:$npc contains "cock")[(set:$situation to "with guy")(if:$npc's "cock" is "in you")[(set:$situation to "having sex")](if:$npc's "cock" is "bj")[(set:$situation to "sees cock")](if:$npc's "cock" is "out")[(set:$situation to "sees cock")]]]
(if:$situation is "with guy")[(display:"gain arousal female text guy")](else-if:$situation is "sees cock")[(display:"gain arousal female text cock")](else-if:$situation is "sex")[(display:"gain arousal female text sex")](else:)[
(display:"gain arousal female text alone")]
}{
(display:"describe your cock")
(if:$character's "masculinity" < 51 and (twist:1,2) is 1)[
(if:$character's "arousal" <= 2)[(twirl:"There's a strange sensation in your groin and, oh, right, " + $your_cock + " is stirring.","You rub your thighs together on instinct, but the sensation is weirdly different - blunt and intrusive.","You barely feel the twinge below - you're more aware of the bareness of your chest.","Your skin tingles, but it's a strange echo of the sensitivity you became accustomed to.","Something flickers in your belly, more distant than it ever was.","Your breath hitches, but it feels weirdly underwhelming.","From nowhere, a spark of frustration prickles at you, rekindling foreign feelings.","There's a tickle in " + $your_cock + ", not unpleasant, but strange and muted.","A tingling in " + $your_cock + " brings a flutter of unfamiliar anticipation.","Your hand mindlessly drifts down to adjust " + $your_cock + ", as a quiet warmth begins to simmer.","You remember once, you were so used to this heat crawling in your lower belly.","The itch building in " + $your_cock + " feels like a melancholy echo of past excitements.","A soft hum starts deep in your belly, strange and warm as it spreads down to " + $your_cock + ".","Your breath catches for a moment, and you realize it's due to the curious stirring in " + $your_cock + ".","You shrug away the odd feeling of your chest’s flatness, focusing instead on the gentle throb of " + $your_cock + ".","An alien warmth begins to bloom in your groin, whispering of the carnal pleasures your body used to be accustomed to.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"Your blood heats, but it's a far cry from the fiery flush you once knew.","The subtle throb in " + $your_cock + " is undeniably pleasant, but it's an alien melody to a song your body no longer sings.","The familiar forceful pulse of arousal feels oddly gentle, a ghost of what it used to be.","The mild twitch in " + $your_cock + " comes as a confusing reminder of your maleness.","A flush creeps up your neck and it's an echo of that feminine blush you're so accustomed to.","A frustrating hum settles in " + $your_cock + ", it's a once familiar caress now dressed as a stranger.","Your cock stirs, it’s an intriguing distraction but feels disappointingly muted.","The familiar bulge in your pants feels alien, detached from the person you’ve become.","The warmth spreading in your gut is a distant star compared to the blazing sun you once had.","A subtle pulse of arousal prickles in your throat, unfurling like a silken ribbon to caress " + $your_cock + ".","Surge of heat runs down your spine, pooling in " + $your_cock + ", throbbing insistently.","Your muscles tense, as your cock stirs, a hardening reminder of the masculinity that still exists within you.","A delicious warmth envelopes " + $your_cock + ", sparking a flicker of an old flame.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"The hardening of " + $your_cock + " feels alien and obnoxious.","Your breathing deepens, but without that feminine headiness, it’s just respiration.","Your cock's erect now and you remember it being so much more... in your face.","Your cock is fully engorged and it feels alien, a foreign concept.","Arousal flutters within you but it's like reading a book in a language you once knew.","You feel " + $your_cock + " throbbing, but it's not the burning fire you once knew.","Beneath the warmth of your arousal, there’s a chilly absence of that delicious feminine heat.","A low murmur of pleasure snakes its way to " + $your_cock + ".","Your cock hardens, begging for attention that it used to command without effort.","Excitement bubbles up in your chest, spilling over and coursing down to " + $your_cock + ".")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"That primal need pulses in your loins, but it's a stranger's request.","Your cock aches for release, but it feels disjointed - a fervor you can’t fully connect with.","There's a heat surging through you, but it's washed-out, like an old photograph.","Your cock is on fire, but the flames aren’t as vivid as they used to be.","Your body screams for release but it's a language you don’t understand like you once did.","There's a thrumming in your body, a tune you can't quite dance to.","A shiver of undeniably pleasant anticipation sends a throbbing pulse to " + $your_cock + ".","You squirm as a jolt of pleasure shoots through your cock.")]
(if:$character's "arousal" > 8)[(twirl:"The throbbing in " + $your_cock + " is insistent but lacks the all-consuming sensation it once had.","Your skin burns with a need that’s a mere ember to the inferno you were once accustomed to.","Your cock is desperate, but it feels superimposed, an ill-fitted costume on your sensibilities.","Your body is like a war zone, with arousal pulsing through you.","Your cock throbs powerfully, demanding attention.","The familiar tug in your groin is muffled, a half-remembered song you can't quite hum to anymore.","Your cock twitches with intensity, but it’s a foreign instrument playing a familiar tune.","Your skin tingles, and your breaths come short as " + $your_cock + "throbs.","A tingling sensation shoots through " + $your_cock + ", and you can't ignore the familiar wave of pleasure that crashes over you.","A wave of arousal hits in full force, making " + $your_cock + " twitch with an intensity you'd almost forgotten.","Your breath hitches as your cock stiffens with an intensity that’s nearly overwhelming.")]
](else:)[
(if:$character's "arousal" <= 2)[(upperfirst:(twirl:"Your breath is steady, but the exhales come out just a touch deeper.","Your hands feel light, like they're itching to grab onto something, someone.","Your brain stumbles on a spicy thought but doesn't dwell on it for too long.","A faint shiver ripples through you, like someone just grazed your thoughts with a feather.","Your muscles twitch with lazy anticipation.","Your body feels like it's idling, humming just a bit with a low-grade heat.",$your_cock + " stirs, like it's debating whether to care or not.","You get a semi.","You feel a slight twitch in " + $your_cock + ".","A tickle stirs you down there.","Your brain fuzzes out, but you shake it off.",$your_cock + " gives a sleepy stretch.","You feel like your brain's dimmer switch just flicked a notch.",$your_cock + " does a half-hearted wiggle.","A lazy itch down below reminds you there's a party potential in your pants.","It's a light tease, like " + $your_cock + " just gave you a wink.","Your brain glitches for a sec, but it's a good glitch, like a lustful hiccup."))]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(upperfirst:(twirl:"You feel a warmth unfurling in your gut, like a cat stretching in the sun.","Your mouth feels a bit dry, thirsty for more than just water.","Your breathing deepens, chest rising and falling with more purpose.","You feel a flush creep into your cheeks.","You're thinking with your dick now, it's got executive control.","Your brain's the passenger now, " + $your_cock + " is in the driver's seat.","You're half-mast and the idea of a quick jerk sounds pretty alright.",$your_cock + " is awake - it wants to play.",$your_cock + " is making itself known. It's annoying but good-annoying.",$your_cock + " stirs.",$your_cock + " pokes your pants, begging for a touch.","Your brain's less 'smart,' more 'fuck.' " + (upperfirst:$your_cock) + " likes it.","Your brain trips over a dirty thought, and " + $your_cock + " approves.",$your_cock + " is playing peek-a-boo with your self-control.","Your head's getting foggy and " + $your_cock + " is liking the weather.","A bolt of need jolts down, making " + $your_cock + " pulse."))]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(upperfirst:(twirl:"Your heart pumps louder, as if cheering you on for the main event.","A shiver runs down your spine, electric, relentless.","A dirty fog settles over your thoughts; " + $your_cock + "'s laying down the law.",$your_cock + "'s hard and obnoxious, like it's shouting at you in all caps.",$your_cock + " is a live wire, zapping any innocent thought that crosses your mind.",$your_cock + " is hard, throbbing for attention.","Brain's out to lunch, " + $your_cock + "'s in charge.",$your_cock + " is hard, ignoring it's not an option.",$your_cock + " is becoming a distraction.",$your_cock + " twitches, like it's tasting something damn good."))]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(upperfirst:(twirl:$your_cock + " is pulsing, aching for release.","You're animal-horny. Decisions? Bad ones look good.","Your cock feels heavy, full of need. Your brain, empty.",$your_cock + " is begging, screaming for attention.","Your blood's lava-hot, and it's all pooling in " + $your_cock + ".","It’s like you’re strapped to a rocket, and your dick’s the one with the controls.","It's tunnel vision; all you see is sex, all you feel is your throbbing cock."))]
(if:$character's "arousal" > 8)[(upperfirst:(twirl:"Every cell in your body demands release, like a chant growing louder and louder.","Your cock's on fire, desperate to bust a fat load.","You're a hair-trigger. Breathing's like panting, and " + $your_cock + " is ready to explode.",$your_cock + " is so hard it hurts. Every throb's a scream for release.","Your mind's one track: Must. Cum. Now.",$your_cock + " is twitching violently, leaking like a faulty tap.",$your_cock + " is so hard.",$your_cock + " is super hard."))]]
}{
(set:$his_name to $npc's "name")
(if:(is_breeder:))[
(if:$character's "arousal" <= 2)[(twirl:"Despite yourself, you feel a flutter in your stomach at $his_name's proximity.", "There's a troubling warmth that rises in your cheeks when you're near $his_name.", "Your new $breasts feel heavier, reacting strangely to $his_name's presence.", "You feel an awkward, compelling pull toward $his_name, something you can't quite ignore.", "Your skin prickles uncomfortably as if anticipating his touch.", "A shiver prickles down your spine, completely unbidden.", "Your $pussy feels unusually sensitive, an alarming experience that leaves you wrong-footed.", "You squirm uncomfortably, your body reacting to $his_name's presence in a way you can't understand.", "You struggle to ignore the unfamiliar warmth that spreads across your body.", "A faint blush creeps onto your cheeks, your body betraying your discomfort near $his_name.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"An embarrassing heat pools in your belly near $his_name.", "Alarmed, you notice your $pussy flutter at $his_name's voice.", "Your $breasts feel tender, an alien sensation that makes you flush.", "Despite your male mind, your female body fidgets near $his_name.", "You blush as your body shows signs of arousal you've never known.", "Your skin tingles uncomfortably, reacting to his presence.", "A blush heats your cheeks as your body yearns for his touch.", "Your female form embarrassingly reacts to $his_name's nearness.", "Your body betrays your mind, a heat spreading through your lower belly.", "Struggling, you try to ignore the warm throb growing in your core.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"Your $pussy throbs uncomfortably, it's as if your body is trying to draw $his_name in.", "An unwanted warmth grows inside you, all because of $his_name.", "Your $breasts feel heavy, while your $pussy clenches without your consent.", "Every instinct inside you screams against this betrayal of your male self.", "Overwhelmingly, you feel a growing heat crawling under your skin.", "Your cheeks sear with humiliation as your $pussy aches at $his_name's presence.", "Your body pulls you toward $his_name, a feeling you're desperate to resist.", "Somewhere within you, a heat pulses at his every movement, leaving you feeling disgraced.", "Your $pussy tingles, an alien sensation that leaves you squirming.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"You're terribly aware of your $pussy clenching, as if begging to be filled to the brim.", "Embarrassment floods through you at the sudden yearning inside your $breasts.", "Your body rebels against your will, aching for something deeper.", "You can't shake the terrible sensation of needing to be inseminated.", "Your cheeks burn as you catch yourself fantasizing about his hot, thick semen.", "Bizarrely, your body seems to crave $his_name's seed.", "You're disgusted by your body's demands, horrible aches that need to be sated.", "The overwhelming urge for his cum makes you squirm in humiliation.", "You feel an alien emptiness in your belly that longs to be filled by his hot seed.", "A part of you recognizes your $pussy's throbbing as your body's way of begging for cum.")]
(if:$character's "arousal" > 8)[(twirl:"Despite your disgust, your body seems desperate for $his_name's potent seed.", "A humiliating longing pulses in your lower belly, yearning for his cum.", "An animalistic desire to be filled with his hot, sticky semen overwhelms you.", "Your $pussy contracts rhythmically.", "Your body betrays you, sending shivers of arousal at the unbidden thought of insemination.", "Your womb throbs with the yearning to carry his progeny.", "A wanting heat spreads deep within you, strangely acknowledging his breeding potential.", "Despite all your resistance, your $pussy seems to yearn for being filled with his sticky cream.", "A molten lava of need pools in you, your body screaming for his load.", "Your $pussy spasms, as if aching to be swamped by his seed.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"A blush burns on your cheeks, as an unthinkable urge echoes through your $pussy.", "Groaning, you fight against your body’s twisted drive to be filled by $his_name.", "Dread blooms within you as your body yearns for the obscene sensation of being bred.", "Your stomach flips in protest as your body demands $his_name’s hot, sticky seed.", "A dreadful, indecent longing builds inside you; it seems to cry out to be filled with cum.", "This bizarre ache, a response to $his_name, leaves you feeling twisted inside.", "Your $pussy throbs pitifully, yearning for something your male mind can't comprehend.", "Your own body betrays you, the shameful craving for a stranger’s cum grows incessantly.", "Against your will, your body seems to beg for $his_name to pin you down and breed you.", "Your cheeks burn with humiliation as your body’s primal urge becomes harder to dismiss.")]
(if:$character's "arousal" > 8)[(twirl:"An unwanted, primal desire engulfs you, your body aching for him to fill you with his seed.", "Shameful waves of warmth crash over you with every throb of your eager $pussy.", "A rising heat consumes you, your body begging to be claimed by a man.", "Every fiber of you rebels against the shocking desire to be inseminated.", "You can’t ignore the rippling urge seeping into your core, dreams of a stranger’s seed blooming within you.", "Your body is demanding something obscene from $his_name, something you can’t utter out loud.", "Disgust curls inside you as your body persistently demands to be filled with hot cum.", "Disturbing visions of $his_name breeding you won’t leave your mind alone.", "Unthinkably, your $pussy clenches, and it feels like a plea from your female body to be filled with $his_name's seed.", "Awash with humiliation, your body betrays you, throbbing with a need to be claimed by $his_name.")]
](else:)[(if:$character's "arousal" <= 2)[(twirl:"Despite yourself, you feel a flutter in your stomach at $his_name's proximity.", "Your new $breasts feel heavier, reacting strangely to $his_name's presence.", "Your skin prickles uncomfortably as if anticipating his touch.", "Being close to $his_name sends a flutter of warmth through you.", "Your heartbeat quickens, a faint blush coloring your cheeks.", "Your body stirs in ways you can’t understand as your $pussy seems to wake up near $his_name.", "Your pulse quickens, an unexpected reaction to $his_name’s proximity.", "A flush covers your face as you feel a warmth in your nether regions.", "A wave of self-consciousness overtakes you as you find yourself reacting to $his_name.", "Your $breasts seem to swell, responding weirdly to his presence.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"A troubling warmth starts to spread through your lower belly around $his_name.", "Surprisingly, you feel your $pussy flutter at $his_name’s voice.", "Your skin buzzes with discomfort, prickling in response to $his_name.", "You squirm uncomfortably, feeling your $breasts react to $his_name’s male energy.", "You flush in embarrassment as you feel your body subtly respond to $his_name.", "A vague sensation of heat spreads through your body, leaving you flustered.", "Your body awkwardly reacts to $his_name, a heat spreading through your lower belly.", "Against your will, your $pussy tingles, an alien sensation that leaves you unsettled.", "Your cheeks burn as your body yearns for his touch.", "Your body begins to react on its own, a fire kindling in your belly.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"You can't ignore the embarrassing warmth growing inside you.", "$his_name's presence sends a strange heat coursing through your body.", "Your body seems to respond to him in ways you can't control.", "Your $breasts feel heavy; your mind struggles to ignore the sensation.", "An uncomfortable throb starts in your $pussy.", "Your face turns red as your body stirs, reacting to $his_name’s nearness.", "A shameful heat blooms in your lower belly, your body betraying your mind.", "You feel a disturbing warmth spreading from your center.", "Every instinct inside you screams against this onslaught of female sensations.", "The sensation of your $pussy throbbing is so foreign and discomforting.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"You blush as your body heats up dangerously.", "A sense of dread builds as your body reacts more strongly to $his_name.", "A flush of heat engulfs your body, sinking into your bones and pooling low in your hips.", "Unsettlingly, a heat overtakes your body, invading every fiber of your being.", "Your face reddens as an intense warmth grows in your lower regions.", "You clench your teeth in humiliation as your $pussy aches at $his_name's presence.", "Deep within you, something seems to stir, reacting to every spoken word from $his_name.", "Your body betrays your desire to remain calm, a heated rush spreading through your veins.")
(if:$character's "arousal" > 8)[(twirl:"Intense heat flares up inside you, an alien desire that leaves you gasping.", "Humiliation burns in your cheeks as your body yearns for a man.", "An embarrassing flush creeps onto your cheeks as your body craves something you can't provide.", "You feel an escalating warmth spreading through your body, leaving you in sheer embarrassment.", "Strong waves of heat inundate you, an explicit desire that leaves you shocked.", "Your body screams for a release that you can’t comprehend, every nerve ablaze with intense sensations.", "Heat engulfs your frame, your body blatantly ignoring your mind's plea for control.", "Inwardly groaning, you feel an embarrassing heat pool in your lower abdomen.", "Your heart races as an unfamiliar yet potent desire unfurls within you.")]]]
}{
(if:(is_breeder:))[
(if:$character's "arousal" <= 2)[(twirl:"A ticklish warmth stirs in your lower belly, and you frown.", "Your $breasts feel heavy, an odd sensation that makes you squirm a little.", "An unfamiliar pulse radiates from your $pussy, leaving you uncomfortable.", "An unexpected flush makes its way onto your cheeks, stirring a strange arousal.", "$his_name's presence ignites a discomforting flutter in your stomach.", "Your $pussy hums with an unexplained need that bewilders you.", "Your skin prickles with a sensitivity you're not accustomed to.", "Your pulse quickens, stirring unsettling sensations in your $pussy.", "An odd warmth blooms in your lower belly, your mind struggling to comprehend it.", "Your body reacts to $his_name, a strange warmth flooding you that your mind rebels against.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"A strange heat begins to stir in your $pussy and it's... displeasingly pleasant.", "Your skin buzzes with discomfort, making you squirm.", "A quaking thrum awakens in your core, a heat that’s both foreign and arousing.", "Your body reacts to $his_name's presence in peculiar ways, making you both restless and warm.", "Your cheeks burn with embarrassment as your female body responds to $his_name.", "A blush warms your face as an uncharacteristic throb pulses in your $pussy.", "Your $pussy feels overly warm, a sensation that unsettles your male mind.", "An unfamiliar ache grows in your lower abdomen, making you squirm in discomfort.", "Your $breasts tingle, an awkward sensation that sends a blush rushing to your cheeks.", "You find yourself flushing crimson as your body responds to $his_name in baffling ways.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"An unexpected surge of heat flares in your $pussy, leaving you rattled.", "A surprising ache spreads through your lower belly, clashing with your rational mind.", "Your $pussy is overly aware of $his_name's presence, an absurd twitching at his proximity.", "Your skin tingles, the heat radiating from your $pussy is embarrassingly noticeable.", "Your $pussy clenches involuntarily, the overwhelming sensation making you gasp.", "A maddening pulse throbs deep within you, stirring up a wave of alien arousal.", "Your $pussy is warm and wet, stirring up an inconceivable desire.", "Your body betrays your rational mind, your $pussy throbbing with a desire that it shouldn’t possess.", "Uncomfortably, a heat pools in your lower belly, an insatiable hunger that your male mind can’t comprehend.", "It's absurd but your body seems to throb in rhythm with his presence, a strange pull in your $pussy.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"Your body crying for a man’s touch feels utterly absurd.", "An intense yeaning radiates from your $pussy, confusing your male psyche.", "Your $pussy throbs, making you squirm with unfulfilled desire.", "A strange craving to be filled gnaws at your lower belly, contradicting your logical mind.", "A deep blush colors your cheeks as your body yearns for that hot, sticky mess.", "Your body betrays you, your $pussy clenching with a need your mind doesn’t want to admit.", "A strange heat flutters in your belly, a disturbing whisper of your body’s bizarre desires.", "Despite your mind's protest, your $pussy pulses with a shameless need for his seed.", "You struggle to ignore the dreadful sensation of your empty womb begging for his cum.", "Your $pussy clenches, the alien need to be filled with cum leaves you flustered.")]
(if:$character's "arousal" > 8)[(twirl:"A furious blush consumes your cheeks as a primal urge to breed takes over.", "Your body cries out for a release that bewilders you, a yearning for his cum.", "A strange ache pulses in your lower belly, begging for his hot, sticky seed.", "Your mind struggles to comprehend the intense desire to be filled to the brim.", "Your body craves the hot, sticky mess your mind abhors.", "Despite your rational mind, your $pussy throbs with the instinctive need to be filled and bred.", "A strong, strange emptiness bellows deep within you, craving for his potent seed.", "You feel your body’s carnal desire to be filled with cum, a sensation that makes you squirm.", "Your $pussy spasms, creating a craving within you for a potent shower of his manhood.", "A devastating heat envelops you, the primal urge to breed dominates you, making you squirm.")]
](else:)[
(if:$character's "arousal" <= 2)[(twirl:"A tingle jolts through your lower belly, followed by a warmth that leaves you puzzled.", "A strange sensation unfurls in your $breasts, sending a blush climbing on your cheeks.", "Heat pulsates from your $pussy, catching you off guard.", "The proximity of $his_name sends an unfamiliar twinge through your abdomen.", "There is an odd, magnetic pull towards $his_name that you find yourself fighting against.", "Your $pussy stirs to life, throwing you in a spin of discomfort.", "Your skin hums with strange energy, making you squirm in your seat.", "Despite yourself, you feel a flutter just beneath your belly button.", "Your $breasts feel heavier, a sensation that is both unusual and arousing.", "Being close to $his_name sends an odd flush of warmth through your body.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"You feel a stir within your $pussy, your insides coiling in an odd anticipation.", "Your $breasts tingle distractingly, your body reacting bizarrely to $his_name's nearness.", "Your cheeks flush as your body shows signs of arousal you've never known before.", "An alarming heat starts spreading in your lower torso, leaving you flustered.", "A shiver of arousal sparks from your $pussy, leaving you squirming.", "Your heart races as the thought of $his_name triggers an unusual throb in your $pussy.", "Every fiber of your body seems to hum, a warmth spreading through your lower belly.", "Heat floods your core, an alien sensation that makes you gulp nervously.", "Your $breasts seem unusually sensitive, your nipples hardening without reason.", "The edges of your mind blur as a strange heat creeps across your lower belly.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"An unexpected pulse of heat flares in your $pussy, a strange need clawing at your insides.", "Your nipples are pert, your $breasts oversensitive to the fabric of your clothes.", "Your $pussy clenches, drawing a gasp from your lips.", "Heat spreads from your core outwards, leaving you quivering in its wake.", "The prickling sensation in your $breasts is distracting, making you restless.", "Wetness builds at your $pussy, a foreign sensation that leaves you blushing.", "Your thighs tighten, a startling heat pooling between them.", "An unfamiliar throb pulses deep within you, a sensation that both scares and intrigues you.", "Electricity shoots through you, relentlessly focusing on your $pussy.", "Your $pussy aches with a need you can’t comprehend.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"A tantalizing pulse dances through your $pussy, shaking you from within.", "An insistent pressure builds in your lower belly, stirring a desire you can't understand.", "Your $pussy is on fire, the arousal spreading in waves through your body.", "Your body aches for something more... something you don't quite understand.", "Heat suffuses you, and your $pussy throbs in accordance.", "A slow burn starts in your $pussy, an explicit desire that leaves you breathless.", "A relentless ache blossoms in your lower belly, stirring the heat within.", "The throbbing in your $pussy is impossible to ignore, stirring an undeniable desire.", "An unfamiliar tightness builds within you, forcing a ragged sigh out of you.", "An odd craving seems to echo from your core, taking your breath away.")]
(if:$character's "arousal" > 8)[(twirl:"A raging heat engulfs your $pussy, turning your mind into a tumultuous mess.", "Your body quivers with desire, focused solely on your throbbing $pussy.", "You stumble on the edge of an intense ache, a pulse deep within your belly that catches your breath.", "Your pulse hammers in your ears, each beat echoing in your $pussy.", "Your $pussy clenches compulsively, craving for something your mind doesn’t dare to utter.", "Heat blooms deep within you, an indecipherable ache that leaves you trembling.", "Your body is in an uproar, your $pussy demanding attention you've never experienced.", "The heat radiating from your core leaves you breathless, your mind in chaos.", "Your female body craves release, a deep-rooted heat consuming your thoughts.", "An overwhelming surge of heat washes over you, prompting an embarrassing moan to escape your lips.")]
]
}{
(set:$his_name to $npc's "name")
(if:$character's "reluctance" > 8 and $character's "masculinity" > 84)[(display:"gain arousal female text guy very reluctant")](else-if:$character's "reluctance" > 6 and $character's "masculinity" > 60)[(display:"gain arousal female text guy reluctant")](else:)[
(if:(is_breeder:))[
(if:$character's "arousal" <= 2)[(twirl:"You can almost feel the heat radiating off $his_name's body.","Being close to $his_name sends a flutter of warmth through you.","Your skin tingles, reacting to $his_name's proximity.","Somehow, your $breasts feel fuller in $his_name's presence.","Your heart skips a beat, $his_name's presence affecting you in strange ways.","You feel a warmth traveling down your belly, settling somewhere lower.","Your $pussy feels unusually sensitive, almost as if reacting to $his_name's male presence.","Being near $his_name makes your skin tingle, almost as if pleading for his touch.","A shiver travels down your spine - it's like your body is reacting to him before your mind has a chance to catch up.","There's a stirring deep within you, a mysterious warmth that seems to swell in $his_name’s presence.","Sitting near $his_name makes you aware of a faint, pleasant heat spreading in your lower belly.","A sudden breathless anticipation fills you, a hot pulse beating somewhere low in your belly.","Your cheeks feel strangely warm, your body reacting to $his_name in a way your heart does not fully understand.","Your heart flutters in an oddly pleasant way, as if your body is aware of him in a primitive, instinctive manner.","A tender heat unfurls in your $pussy, a flicker of desire that promises more with $his_name.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"Your body reacts to $his_name in a surprisingly sensitive way, warmth pooling deep within your belly.","A strange warmth kindles in your lower torso, spreading an odd fullness.","The proximity of $his_name sends heat crawling up your spine, making your body hum.","Your $pussy throbs to a slow, steady rhythm, reacting to $his_name’s male aura.","It's like your body seems to soften around $his_name, craving his touch on your skin.","Your $pussy prickles with an unseen desire, spurred on by $his_name.","A tingle travels down your body, pooling in your $pussy.","It's like $his_name sends this charge through the air, sparking heat within your belly.","Your $pussy blooms with an inviting heat, as if influenced by $his_name’s mere presence.","Heat surges through your body, an intimate warmth suggesting the promise of pleasure close to $his_name.","Your $pussy clenches in silent anticipation – a reaction to $his_name, no matter his plain looks.","Your heartbeat quickens, an odd flutter deep in your belly reacting to $his_name.","You feel this odd warmth in your $pussy, becoming more pronounced around him.","You may not find $his_name attractive, but your body seems to sing a different tune.","Your $pussy feels flushed, as if $his_name’s presence is stirring something inside you.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"A throbbing heat spreads from your $pussy, echoing throughout your body.","Your body tingles in anticipation of $his_name's touch, even if he's not particularly attractive.","Your $pussy pulses with pleasure, taking you by surprise.","An unusual rush of warmth floods through you, seeping into your $pussy.","An insistent beat thumps deep within you, your pussy clenching in response to $his_name.","Surges of warmth ripple through your body, your $pussy aching with each pulse.","A faint throb of desire pulses in your $pussy, urging your body closer to $his_name.","Your $pussy clenches involuntarily, as if begging to be filled by $his_name, no matter how unattractive he might be.","A thrilling warmth unfurls deep within you, a heat that pulses with his every movement.","A secret desire takes hold of you, desire throbbing in your lower belly.","Your mind might not find $his_name attractive, but your body doesn't seem to care, throbbing with suppressed need.","Your $pussy throbs with an unusual heat, craving more of him.","Desire coils deep within your core, reaching out to $his_name with an intensity that shocks you.","Your body yearns for his touch, blushing heat spreading from your $pussy.","A pleasant heat builds within you, your $pussy throbbing in time with your racing heart.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"An insistent throbbing pulses between your legs, demanding your attention.","The world around $his_name blurs, a hunger growing in your belly.","Your $pussy pulses with a needy heat, demanding to be filled.","A kindling heat starts to unfurl in your belly, spreading an insatiable need for him.","A deep warmth spreads within you, locking onto $his_name with a hunger that surprises you.","His presence seems to spark a wild heat within you.","Your $pussy feels incredibly sensitive, reacting to every little shift in $his_name’s voice or posture.","The throbbing between your legs becomes all consuming; your body seems to crave $his_name.","A juncture in your hips pulses with need, a yearning that feels strangely more pronounced in his presence.","An insistent throb pulses in your lower abdomen, your body strangely attracted to $his_name.","Ignorant of his plain looks, your body seems fascinated with $his_name, an aching need blossoming within you.","Your breath hitches, your $pussy pulsating rhythmically, as if in tune with $his_name.","A pulse starts deep in your $pussy, winding through your veins and settling in your $breasts, his presence stirring a carnal dance.","An unfamiliar throbbing starts in your $pussy, almost as if your body acknowledges his masculinity.","Your body seems to recognize something in $his_name, a primitive mating call that has your $pussy pulsing.","Your body tightens involuntarily, some inner part of you reacting to $his_name with an instinctual need.","An odd heat unfurls in your belly, your body stirring in response to him.")
]
(if:$character's "arousal" > 8)[(twirl:"A primal hunger rises in you, your $pussy aching for breeding.","You can't seem to ignore the throbbing ache in your $pussy, desperately yearning for $his_name's cum.","An overwhelming urge envelops you, your body begging for $his_name's baby batter.","You yearn to feel $his_name's hot cum spill inside you, to have him fill you with his potent seed.","An undeniable craving builds in your $pussy, begging to be filled with $his_name’s hot, throbbing cock.","Your body hums with anticipation for $his_name’s load, warmth spreading in your empty womb.","Your $pussy clenches around nothing, greedily pulsating for $his_name’s hot load.","Your body screams for release, your $pussy practically throbbing for a taste of $his_name's warm cum.","An insatiable thirst for $his_name's seed overtakes your body, a deep yearning that only his thick, creamy load can quench.","An unfamiliar sensation takes root in your belly, a desperate hunger that only a heavy dose of $his_name's cum can satisfy.","A primal yearning seizes you, your body demanding to be filled, to be bred by $his_name.","An overwhelming heat engulfs your belly, an echo of what it would feel to carry a baby conceived with $his_name.","A fierce desire to be bred flashes through your body, an animalistic yearning that only $his_name's cum can fulfill.","Your insides clench with anticipation, your body almost salivating at the thought of being filled with his messy, hot load.","A tingle of excitement courses through your body, a tantalizing promise of $his_name's cum seeding your trembling womb.","You feel a strange pull deep within you, an instinctual craving for $his_name's seed.","Despite his looks, an animalistic part of you craves to be filled with the rich warmth of $his_name's potent cum.","Your body throbs with a need to be bred, your womb clenching with every beat in anticipation of $his_name's creamy release.")]
](else:)[(if:$character's "arousal" <= 2)[(twirl:"You can almost feel the heat radiating off $his_name's body.","Being close to $his_name sends a flutter of warmth through you.","Your skin tingles, reacting to $his_name's proximity.","Your heartbeat quickens, a faint blush coloring your cheeks.","A momentary shiver runs down your spine, unfazed by $his_name's plain looks.","Being this close to $his_name sends a delightful warmth spiraling in your stomach.","Your body seems a bit more aware of $his_name, a tingling warmth spreading throughout.","Your belly feels oddly warm, as if your body is reacting to $his_name's masculine presence.","You find yourself surprisingly aware of his presence, a warm heat spreading from your lower belly.","A strange warmth suffuses your body, an inexplicable draw towards $his_name.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"A flush creeps up your neck, your body inexplicably drawn to $his_name.","Your body seems to be reacting to $his_name, a gentle warmth blooming deep within.","Your skin tingles where his shadow dances, a shiver of anticipation running down your spine.","A curious warmth buds in your lower belly, as if responding to $his_name.","Being close to $his_name sends a flutter of warmth through you.","Your breath hitches slightly, an unexpected reaction to $his_name's presence ","A strange warmth wakes in your lower belly, spreading an unfamiliar fullness.","A tingle travels down your body, pooling in your $pussy.","There's something about $his_name's presence that has you feeling this exciting heat low in your belly.","Each breath you draw seems to pull $his_name in closer, tinting your body with an arousing warmth.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"Your body's response to $his_name is surprisingly visceral, a thrum of warmth pulsing in your lower belly.","His presence seems to spark a wild heat within you.","A warmth uncurls in your lower belly, your body reacting to $his_name in unexpected ways.","Your pulse quickens, a fire kindling in the pit of your belly as you watch $his_name.","The warmth spreading through your body is concentrated low in your belly, each pulse strongly echoing $his_name.","A rush of warmth floods through you, seeping into your $pussy.","A wave of heat flushes through your skin, your body surprisingly responsive to $his_name.","Your $pussy clenches without any warning, stirring the gentle warmth in your belly.","Your body reacts to $his_name’s proximity, heat sizzling in your lower body.","A simmering heat uncoils deep within you, your body uncharacteristically drawn to $his_name.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"A flush of heat engulfs your body, sinking into your bones and pooling low in your hips.","There is this heat, a flutter deep in your belly that seems more pronounced around $his_name.","Your skin tingles with an alien desire, an unbidden warmth spreading through your $pussy.","A swell of heat uncoils within you, radiating throughout your body in response to $his_name.","Your body thrums with an unspoken need, an ache that dulls the world around $his_name.")]
(if:$character's "arousal" > 8)[(twirl:"Your body burns with desire, a primal lust that deems $his_name infinitely alluring.","A wave of pure need crashes over you, your body demanding $his_name's touch.","A storm of passion rages within you, your $pussy throbbing in sync with your increased heart rate.","An overwhelming desire clenches your $pussy, spreading a tantalizing warmth through your belly.","Your body screams for release, every nerve ablaze with intense desire.","Heat flares up within you, a sultry need that only $his_name can satiate.","Your body is a live wire, every inch of you screaming for release.","Each heartbeat seems to echo in the heat of your $pussy, triggered by $his_name's presence.","A low keening need hums in your body, drawing you irresistibly to $his_name.","An undertow of desire pulls you in, your body aching for $his_name's touch.")]]]
}{
(set:$panties to $outfit's "pussy")(display:"describe breasts")
(set:$top to $outfit's "top")
(if:(is_breeder:))[
(if:$character's "reluctance" > 7)[
(if:$character's "arousal" <= 2)[(twirl:"You can't ignore the throb in your $pussy, wariness prickling your mind.","Despite yourself, you feel a subtle warmth spread across your $breasts.","A faint thrum pulses in your $pussy, conflicting with your thoughts.","Unwanted heat tickles your $breasts, making you twist in discomfort.","A gentle wave of heat lips at your $pussy, starting a nervous flutter in your chest.","A soft heat wraps around your $breasts, leaving you uneasily aware of their fullness.","A mild throb begins in your $pussy, causing you to squirm.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"You stiffen as an uncomfortable warmth radiates in your $pussy.","Despite your resistance, your $breasts feel heavy, pulsating with an unknown warmth.","You feel the heat pooling in your $pussy, despite your efforts to ignore it.","A growing need stirs within your $pussy, confusing and arousing in equal measure.","An unwanted warmth teases your $breasts, creating an uncomfortable prickling sensation.","Your $pussy throbs, a steady reminder of the unfamiliar territory you’ve found yourself in.","Your $breasts tingle as they crave attention, making you squirm uneasily.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"An intrusive heat fuels your $pussy, making you clench your teeth.","Your $breasts feel heavy and sensitive, every movement sending waves of pleasure you try to ignore.","Your $pussy clenches against nothing, craving a fulfillment you don’t want to give.","A deep throbbing sensation pulses through your $pussy, unsettling and arousing you.","You try to deny the carnal warmth spreading from your $pussy.","Unwanted waves of warmth ripple through your $breasts, stirring a growing pleasure you try to suppress.","A disquieting warmth spreads across your body, centering in a throbbing $pussy.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"A primal heat engulfs your $pussy, a feeling you can no longer ignore.","Despite your best efforts, a wanton heat radiates from your $breasts, spurring a growing need.","Your body betrays you, your $pussy pulsing with an enticing warmth.","An intoxicating wave of heat spreads through your $pussy, your resistance waning.","Your $pussy throbs with a greedy hunger, your reluctance slowly crumbling.","An animalistic heat pulses from your $pussy, tempting your surrendering body.","A powerful wave of heat takes hold of your $pussy, making resistance seem more and more futile.")]
(if:$character's "arousal" > 8)[(twirl:"A wildfire of desire consumes you, your $pussy demanding a hot, sticky release.","An intense throbbing sensation takes over, centering in your $pussy, defying all resistance.","Your body betrays you completely, the heat in your $pussy becomes unbearable.","Despite your reluctance, your $pussy aches for a warm, creamy filling.","An overwhelming need shakes you; your $pussy yearns for the sticky relief only a deep creampie can give.","Your resistance crumbles as a tidal wave of heat pulsates in your $pussy, the need to be filled is all-consuming.","The alluring heat in your $pussy is beyond your control, demanding nothing less than a thick, satisfying load.")]
](else:)[
(if:$character's "arousal" <= 2)[(twirl:"An enticing warmth envelops your $breasts and $pussy, teasing you with the beginnings of your primal need.","A tingling sensation pricks at your $pussy, hinting at the throbbing desire to come.","Your $breasts start to feel heavy and warm, subtly pushing against your $top.","A dull throb begins in your $pussy, a gentle foreshadowing to the raw, primal urge stirring within you.","Your $panties barely conceal the tingling warmth spreading from your needy $pussy.","A soft ache throbs through your body, your $breasts feeling heavy and your nipples subtly hardening under your $top.","A tender heat unfurls in your $pussy, the beginnings of an insatiable yearning that promises surrender.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"An intense heat radiates through your $pussy, heightening your yearning for that sticky, fulfilling relief.","Your $breasts strain subtly against the fabric of your $top, your nipples hardening in anticipation.","A beckoning warmth throbs from your $pussy, promising a taste of the primal ecstasy to come.","Your body throbs with an unfamiliar rhythm; your $pussy aches with need, your $breasts swell with anticipation.","An enticingly erotic heat spreads across your body, your $pussy growing warmer beneath your $panties.","Your body shivers with a delicious anticipation, your $pussy pulsating against the damp fabric of your $panties.","Your $breasts feel heavy, and your $pussy pulses with aching need, a silent plea for a hot, creamy finish.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"A deep, primal heat throbs through your $breasts and $pussy, making you squirm as you crave that fulfilling, slippery release.","Your body arches subtly with every pulse of warmth that throbs within your wet $pussy.","An irresistible yearning takes hold of your $pussy and $breasts, leaving you panting and wild for release.","Your $top tightens against your swollen $breasts, each hard nipple eagerly standing in anticipation.","Your body calls out in desperate longing, your $pussy pulsating and your $breasts heaving, craving to be filled, to be used.","A primal need reverberates within you; your body thrums with anticipation, your $pussy aching, yearning for that hot and sticky conclusion.","An intoxicating heat takes over, your $pussy clenches, soaking your $panties with an unspoken demand for a satisfying, creamy end.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"An overwhelming heat envelops your $pussy, demanding the searing pleasure of a thick, warm creampie.","Your body shudders with raw anticipation, each pulse from your $pussy making you whimper for a hot, sticky release.","A wild, uncontrollable need courses through you, your $pussy throbbing, begging to be filled with hot, thick seed.","Heat sears within your $pussy, every fibre of your body craving the ultimate, sticky reward.","Your body trembles with an unquenchable desire, the throbbing heat within your $pussy, begging to be bred.","A profound thirst taunts your body, your $pussy yearning for the blissful reality of being filled up with a hot, satisfying load.","An untamed desire takes over; your $pussy convulses in aching need, your body trembling with the thought of being filled to the brim.")]
(if:$character's "arousal" > 8)[(twirl:"A wildfire of instinctual desire spreads through your body, your $pussy throbbing with the insatiable yearning to be bred.","Your body aches with a wild, animalistic need, your $pussy throbbs for a hot, creamy gift.","Unchained lust consumes you; your $pussy pulses, urgently demanding satisfaction of a deep, fertile creampie.","Your body shakes with the primal urge to be filled and used, to be given that addictive, sticky relief.","A raw yearning seizes your body; you crave that hot, goopy release, your $pussy pulsing in need.","An overwhelming need takes over; your body screams for the ecstasy of being filled with hot, thick cum.","A searing, primal desire tears through your body; your $pussy is aflame with the need to be stuffed and satisfied with a creamy load.")]]
](else:)[
(if:$character's "reluctance" > 6)[
(if:$character's "arousal" <= 2)[(twirl:"Heat flutters across your skin, causing your $top to stick to your newly formed $breasts.","A pulsating warmth sprawls over your nether region, leaving an odd wetness in your $panties.","Every single beat of your heart seems to be focused on the swelling sensation in your $pussy.","A new sensation, a yearning emptiness, forms in your lower belly.","Your $panties feel increasingly moist, soaking up an unfamiliar, warm dampness.","An odd and foreign warmth trickles through your $pussy, discomforting you.","A sudden tingle in your $breasts sends shivers through your body, your nipples brushing against your $top.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"A sharp warmth prickles in your $pussy, dampening your $panties.","Your $breasts start to feel heavy and warm, sensitive to the touch of your $top.","A tremor originates from your $pussy, leaving you feeling disoriented but intrigued.","An unexpected wetness pools in your $panties, the liquid warmth unsettling.","An alien sensation demands your attention - your $pussy throbs in your $panties.","Your $pussy pulses with a strange heat, your body swelling in anticipation.","An incandescent heat spreads through your $pussy, making you squirm against your clothes.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"Your $pussy throbs insatiably, each pulse leaving a wet patch on your $panties.","Growing heat radiates from your lower belly, the unfamiliar sensation causing your $top to cling to your sweaty $breasts.","Your $pussy clenches hard against your $panties, soaking them with its insatiable desire.","Each breath you take swells your $breasts against your $top and sends heat coursing down to your $pussy.","Your $pussy feels wet and wanting, a heat you are beginning to familiarize with.","An itch builds in your $pussy, are you getting... hornier?","Your $pussy clenches, sending waves of an alien pleasure coursing through your body.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"A throbbing heat flares up in your $pussy, creating a noticeable wet spot on your $panties.","A tide of rousing warmth washes through your body, your $breasts straining against your tight $top.","Your $panties grow uncomfortably wet, your $pussy clamoring for attention.","Your body quakes with a foreign desire, your $pussy throbbing against the thin fabric of your $panties.","An intense yearning seizes your $pussy, your wetness soaking through your $panties.","Your nipples press tantalizingly against the fabric of your $top, the sensitivity matched only by the pulsing heat in your $pussy.")]
(if:$character's "arousal" > 8)[(twirl:"A wave of overwhelming heat rushes through your $pussy, dampness seeping through your clinging $panties.","An alien sensation, a carnal hunger takes over your new body, making you squirm.","You feel a strange but potent yearning in your $pussy, leaving your $panties drenched.","Your arousal peaks, an intense heat engulfs your $pussy, demanding release.","Your body betrays you, a powerful urge surges from your new body, leaving you reeling.","A pulsating heat takes over your $pussy, a heat you've never experienced before.","You feel a need for an intense release, your $pussy throbs for relief, the wetness drenching your $panties.")]](else:)[
(if:$character's "arousal" <= 2)[(twirl:"A pleasant warmth prickles your skin, making you aware of the soft swell of your $breasts.","A familiar sensation of heat draws your attention to your $pussy.","Each pulse of your heart sends a delightful throb to your $pussy.","Your $breasts tingle subtly under your $top, causing a mild shiver.","An inviting warmth begins to pool in your $pussy.","An enticing tingle fills your $breasts, making you softly gasp.","A sweet warmth starts to spread through your $pussy.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"Your breath hitches as an intense warmth spreads in your $pussy.","Your $breasts feel enticingly heavy, throbbing with a pleasant warmth.","An exhilarating tremor runs through your body, originating from your $pussy.","You are delightfully aware of the increasing wetness in your $panties.","Your body responds to the growing need, your $pussy throbbing in anticipation.","A tantalizing heat starts to pour into your $pussy, making you squirm with pleasure.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"An exciting heat builds in your $pussy, each pulse intensifying your need for more.","A tingling sensation spreads from your lower belly, creating a delicious warmth in your $pussy.","Your $pussy clenches in anticipation, aching for more.","An irresistible urge fires up in your $pussy, leaving you yearning for more.","A deep, tantalizing throb pulses through your $pussy, your clothes catching every pulse.","Your $panties are soaked as your $pussy clenches in anticipation, urging for more.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"An intense throbbing spreads from your $pussy, your body responding to its call.","An intoxicating wave of desire washes over you, visibly soaking through your $panties.","Your body moves with a mind of its own, responding to the powerful urges in your $pussy.","Your $pussy craves for something more, a potent yearning that leaves you breathless.","An overwhelming need takes hold of your $pussy, throbbing for satisfaction.","Your body trembles with a pleasurable desire, your $pussy aching for release.")]
(if:$character's "arousal" > 8)[(twirl:"A gasp escapes you as an intense wave of heat surges from your $pussy.","Your body is consumed by a powerful and intoxicating desire, centered on your throbbing $pussy.","You are overwhelmed by a hot, urgent need, your $pussy pulsating for release.","A burning need takes over, consuming every thought while your $pussy throbs incessantly.","Intense heat blazes from your $pussy, demanding release.","A pulsing flame takes over your $pussy, a fierce yearning like no other.","An intense, delicious heat is spreading through your $pussy, the feeling is indescribably good.")]
]]
}{
(unless:$outfit's "tags" contains "nude" or $outfit's "breasts" is "none" or $outfit's "pussy" is "none")[(display:"gain arousal female text alone clothed")](else:)[
(if:$character's "masculinity" > 84 and $character's "reluctance" > 7)[(display:"gain arousal female text alone reluctant")](else:)[
(if:(is_breeder:))[
(if:$character's "arousal" <= 2)[(twirl:"There's an odd, ticklish warmth fluttering around your lower belly.","A prickle crawls up your spine, your skin super-sensitive.","A hazy heat begins to stir in your $pussy.","Your $breasts feel a little heavier, a strange fullness.","Your fingers twitch, drawn to the enticing warmth between your legs.","You suddenly become aware of every pulse and throb in your body.","Your body hums with an unexplained need, throbbing deep within your lower belly.","The seams of your clothes seem to rub against your overly sensitive nipples.","The distinct sensation of wetness between your thighs catches your attention.","Your breath hitches unexpectedly, a slight quiver in your $pussy.","There's a soft fluttering in the pit of your stomach, like a small bird beating its wings.","A warm ripple flows through your body, a blush on your cheeks as your nipples harden.","You are startled by a sudden moistness in your $pussy.","You feel something like a tremor right in your lower belly.","There's a subtle tingle in your $breasts, a shift in your body that you can’t put a word to.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"A delicious heat begins to bloom in your $pussy, you squirm uncomfortably.","Your $breasts feel warm and swollen, your nipples strangely sensitive.","A quaking thrum is awakened within you, an echoing pulse in your hips.","A slick heat is forming in your $pussy, making your thighs sticky.","Your $pussy clenches involuntarily, aching for something...","A subtle throb pulses deep within you, like a hunger asking to be filled.","Your $pussy is becoming too hot, too wet.","An ache begins in your $pussy, spreading warmth all over your lower torso.","Your $breasts feel strangely tender, nipples hardening without reason.","You can almost sense your $pussy throbbing out a needy rhythm, making you squirm.","A deep, warm pull radiates from your lower abdomen, reminding you of your hungry $pussy.","Your $pussy feels warm, damp, a becoming a welcoming chamber of desire.","Your belly feels strangely empty, an echo to every little throb in your tender $pussy.","A needling warmth wraps around your belly, your $pussy pulsating with it.","The ache in your $pussy grows, a neediness that's distinctly animalistic.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"There’s an undeniable throb in your $pussy, almost as if it’s throbbing in sync with your pulse.","You can feel an insistent ache deep within your core, a yearning for... something.","Sticky wetness coats your thighs as your $pussy clenches.","A hungry pulse throbs deep within you, your hips rocking on their own.","Your body feels oversensitive, each graze of cloth against your nipples makes you gasp.","Your $pussy is soaked, heating up with each passing moment.","Heat pools in your lower body, but it's not enough... you need more.","An odd cramp tugs at you low in your belly, becoming entangled with pleasure.","Your body is aching to be filled and stretched in a way that fingers can't satisfy.","Your mind is getting hazy, your hips jerk as your $pussy throbs in a steady rhythm.","Your $pussy feels hot, increasingly wet, your womb responding with an odd twinge.","A foreign sensation takes root in your belly, a demanding pulse that calls out for a drenching of potent seed.","A dull throb radiates from your $pussy, making you squirm with every needy pulse.","Your belly tightens with each pulse, a carnal desire to be bred starts to dominate your senses.","A pull in your womb tugs at your senses, a desperate yearning that only a thick load of cum can satiate.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"An intense heat saturates your $pussy, making you squirm with unfulfilled need.","Your body aches for something more... something deep within you.","Your body cries out for something...a craving to be filled to the brim.","A strange tightness builds within you, somewhere deep within your hips.","Your body is being taken over with a fervent desire to... to breed.", "Each throb of your $pussy feels like it resounds throughout your womb.","Your $pussy clenches and unclenches, aching to be stuffed.","An insistent pulsing builds in your lower belly... it's so intense.","Heat swirls inside you, focused around a point you can feel but don't fully comprehend.","An ache builds within your womb, almost like it’s begging to be filled.","Your body aches for the warm, thick, messy load, your $pussy throbs with anticipation.","Your womb spasms, a call for hot, creamy seed to fill your empty $pussy.","A jolt of need surges in your lower belly, a cry for the hot, sticky liquid.","The throbbing in your $pussy becomes more insistent, pleading for the sensual release of hot cum.","You feel a deep, gnawing emptiness in your belly, a devastating need that only a healthy load of breeding juice can fulfill.")]
(if:$character's "arousal" > 8)[(twirl:"Cramps knot your insides but they are mixed with a molten pleasure.","Your body's desire for seed overpowers your senses.","You feel deliriously empty, your body craving to be filled to the brim.","The throbbing wetness between your thighs begs to be claimed.","A profound yearning screams from your $pussy, the need to be filled overriding everything else.","You can barely think, the sensation of your empty womb consuming you.","Each pulse of your $pussy seems to echo in your womb.","Your body feels engorged, throbbing with a need to breed.","You feel on edge, your $pussy aching with the desire to be filled and claimed.","A strange emptiness bellows deep within you, it’s overwhelming, calling for release.","Desperate whimpers escape your lips, a primal urge to breed takes over.","Your womb feels so empty... you ache for it to be flooded.","Your $pussy clenches, starved for a deep filling.","Need pulsates from your $pussy, for something more... something primal.","Your insides twist with a carnal need, the desire to be filled overrides your thinking.","A primal thirst crests within you, an intense ache that only a thick, heavy load can quench.","Your mind is fogged with the urge to breed, your core craving for the gooey warmth of cum.","The pulsating emptiness in your lower belly screams to be filled with hot, sticky seed.","You feel an onslaught of heat deep within your $pussy, a whisper of the ecstasy that a fat, creamy load would offer.","Your insides clench with a visceral need, your body practically screams to be pumped full of sloppy, gooey nut butter.")]
](else:)[(if:$character's "arousal" <= 2)[(twirl:"Your cheeks feel a touch warmer than usual.","Your skin feels hyper-sensitive, like each graze is a little more electric.","You feel a trickle of warmth blooming in your belly.","Your fingers quiver with tantalizing anticipation.","A whisper of a heat flutters in your lower belly.","You feel a suggestive thrum humming somewhere deep inside.","Your body feels light, like it's floating in a pool of warm honey.","Your $breasts feel fuller somehow.","You feel a bit of dampness in your $pussy.","Your heart skips a beat, as if a feather grazed it.","A little twitch awakens your $pussy.","Your lips part slightly, your breath coming in shallow pants.","The slightest touch sends a jolt of warmth straight to your belly.","A faint blush graces your cheeks, your lips curling into a coy smile.","You feel a tickle of anticipation low in your belly, a simmering heat that begs for more.","Your heart does a little flip, a whisper of a throb pulsing down to your $pussy.","You feel a twinge of interest in your $pussy, almost a polite question.", "A soft sigh hitches in your throat as you chase a naughty thought.","Your $breasts feel slightly fuller, nipples teasing with a gentle prick.","A slow pulse starts knocking in your $pussy, quiet but persistent.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"A soft heat unfurls in your belly, like a kitten stretching after a long nap.","You feel your neck flush.","Your $breasts hum with a deep, slow warmth, your nipples hardening.","Your body feels heavy and light all at once.","Your thighs press together of their own accord.","Your $pussy pulses with warmth.","A blush creeps up your neck, your cheeks burning with heat.","Your $pussy clenches, as if in anticipation of something more.", "Your $pussy dampens.","A soft sigh escapes your lips, your body thrumming with anticipation.","A blush blossoms on your cheeks, a private secret between you and your body.","Your breath hitches in your throat, as a slow tingle works its way from your chest to your $pussy.","You can feel a slow, lingering pulse in your $pussy, a whisper of a promise.","A warm flush floods your body, as if you've sipped on a glass of rich, red wine.","Your $breasts tingle, nipples pebbling with an unfocused desire.","A stirring in your $pussy demands attention.","A shiver of anticipation ripples through your body.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"Your body quivers, your senses prickling with need.","You feel a clenching heat in your lower belly, demands pulsing from your $pussy.","Your $breasts tighten, your nipples poking out with insistent throbs.","Your breath comes in heavy pants, your brain foggy with need.","You feel a slick wetness between your thighs.","Your $pussy aches, throbbing for attention.","A shiver of pleasure shoots up your spine, your body begging for more.","Your $pussy clenches, slick with desire.", "Your $pussy feels warm and wet.","You bite your lip to suppress a little whimper.","Your heartbeat trips over itself, a throb of warmth spreading through your belly.","Your tongue darts out to moisten your lips, your breath coming in shaky pants.","A sharp pulse in your $pussy interrupts your train of thought, ushering in a fog of desire.","Your $breasts feel full and tight, your nipples hardening with a keen sensitivity.","The world tilts off its axis as a slow throbbing heat radiates from your $pussy.","A wild desire clings to your skin, making your body hum with anticipation.", "Your $pussy aches for attention, pulsing with heat.","Your breath hitches in your throat, your body on high alert for the promise of pleasure.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"Your body feels like its burning, every nerve ending on fire.","Your $breasts seem heavier, your nipples painfully hard.","Your $pussy throbs with needy pulses, demanding attention.","Pleasure spirals through your body, warm arousal spreading from between your thighs.","Your $pussy quivers, slick and eager.", "The pulsating heat in your $pussy is all-consuming.","Your heartbeat thuds in your ears, heat pooling in your lower belly, begging for release.","Your $pussy feels swollen and sensitive.","Your skin is flushed.","A flush of heat engulfs your body, sinking into your bones and pooling low in your hips.","The needy pulse in your $pussy is all you can focus on, each throb demanding more.","Your $pussy feels heavy with need, a gnawing hunger that must be satiated.","Your $breasts tighten, straining for attention, your nipples painfully aware.","The low throbbing in your $pussy becomes a constant companion.","Your breath becomes shallow and ragged, a mirrored rhythm to the longing between your legs.")]
(if:$character's "arousal" > 8)[(twirl:"Need pulsates from your $pussy, urgent and demanding.","A throbbing heat spreads throughout your body, your $pussy begging for more.","Your heart hammers against your chest, pleasure radiating from your needy core.","Your $pussy clenches, dripping with desire.","Your body screams for release, every nerve ablaze with intense desire.","Your $pussy is soaked, aching to be filled.", "The dripping wetness between your thighs is impossible to ignore.","Desperate whimpers escape your lips, your body shaking with need.","A torrent of desire sweeps through your body, turning your $pussy into a throbbing epicenter of need.","You ache to be filled, your $pussy slick and inviting.","The pulse between your legs has a rhythm of its own, a throbbing symphony crying out for release.","A thrilling heat coils in your belly, ready to explode any moment.","Heat flares in your lower belly, your $pussy dripping with anticipation.","Each breath you take fans the flames of your desire, leaving you burning for more.","Your heart pounds in your chest, the rhythm echoed by the throbbing need in your $pussy.","Your body is a live wire, every inch of you screaming for release, your $pussy throbbing with anticipation.")]]]]
}{
(if:(is_breeder:))[
(if:$character's "arousal" <= 2)[(twirl:"Your lower belly hums with a foreign warmth, unexpected but not unpleasant.","Faint chills of heat ripple through your skin, stirring curiosity.","A strange fullness in your $breasts startles you.","Despite the oddness of it, a delicate yearning whimpers in your tender $pussy.","You can't help noticing a nagging, radiant warmth between your legs, strangely inviting.","You swallow, trying to understand the restless heat seeping into your lower belly.","The annoyingly tempting fullness in your breasts gives you pause. This is... interesting.","The peculiar warmth in your $pussy feels... strangely compelling.","The alien sensation of wetness between your thighs is uncomfortable, but you can't ignore the sudden thrill it gives you.","Despite your resistance, you are struck by the exciting throb emanating from your $pussy.","A strange sensation, a soft pulsing, arouses curiosity in your lower abdomen.","Your $breasts suddenly feel too heavy, igniting a distressing but intriguing sensation in your chest.","Despite yourself, you can't help but notice the strange but not unpleasant sensation in your $pussy.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"A persistent heat radiates from your $pussy, troubling and alien, yet you can't ignore it.","Your $breasts feel warm, the sensation is different and makes you squirm.","Despite your best efforts, you are drawn to the growing warmth in your $pussy.","A strange ache spreads in your $pussy, conflicting signals sparking an internal debate.","A burning pulse pulsates deep within you, your body's primal call blaring in pulsations.","An unexpected heat clings to your $pussy, making it uncomfortably slick.","A tingling awareness in your $pussy is hard to shake off.","A low throb insists within your lower abdomen, you find yourself stifling a gasp.","You feel a strange tingle in your $breasts, quite a perplexing sensation to you.","A challenging throb in your $pussy stubbornly pulls at your attention.","Your new female body rebels against you, an insatiable heat radiating from your $pussy.","A startling sensation creeps up on you, your $pussy's cry for attention refusing to be ignored.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"Your $pussy throbs persistently, the strange sensation battling your resistance.","The demanding pulse from your lower belly stirs an uneasy mix of pleasure.","The foreign sensation of your $pussy being wet and ready scrambles your senses.","An unfamiliar, strong throb raises alarm in your $pussy.","Your body disobeys you, a firestorm blazing in your needy $pussy.","You struggle to understand this new heat emanating from your $pussy.","Despite your reluctance, your body throbs with anticipation of being filled.","A peculiar throbbing in your $pussy startles you, your body's craving overriding logic.","The sensation of being aroused in this body, the needing to be filled is foreign.","Your body yearns for something, the heat in your $pussy resonating a desire you never knew.","You can practically feel your $pussy's desperate cries for a creamy load.","The animalistic need to breed starts to dominate your senses.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"A sudden, intense heat saturates your $pussy, your body craving a release from this bizarre tension.","The ache in your $pussy bears an animalistic desire to be filled and claimed.","An alien yearning for a creamy load pulses from within your $pussy.","Your body pines for release, aching to be filled with a hot, thick load.","You lament your body's betrayal as your $pussy cries for a filling", "Your body demands satisfaction, a primal urge to breed in the throbs of your $pussy.","You are startled by your body's desire to be filled with warm, heavy cum.","An urgent pulsating need from your $pussy distracts you, it yearns to be filled.","You're split between confusion and the undeniable want brewing from your $pussy.","The deep, primeval ache in your stomach calls for a warm, slick load, a liberation from this peculiar tension.","A strange, powerful urge commands your body, a pulsating crave for a dense release.","An overwhelming craving to be filled surges from your $pussy, demanding urgent attention.","Despite yourself, you can't ignore the primal desire to be bred that echoes with each pulse of your $pussy.")]
(if:$character's "arousal" > 8)[(twirl:"The pulsating desire in your $pussy becomes unbearable, screaming for a drenching load.","A shocking craving peaks within you, your $pussy practically begging for a hot, creamy release.","The pulsating emptiness in your $pussy cries out to be filled with potent seed.","The alien sensation of your empty womb yearning for an intense release is distressing but impossible to ignore.","A sudden, violent need to be filled crashes over you, your $pussy throbbing painfully.","Your body screams for satisfaction, a strange yearning to be pumped full of warm, thick seed.","An unwelcomed, yet powerful need to be filled possesses you, your body crying out for an explosive release.","Your body betrays your resistance, the primal need to be filled to the brim with hot, sticky cum is too strong to ignore.","Your body screams for release, an intense craving to be flooded with creamy cum.")]](else:)[
(if:$character's "arousal" <= 2)[(twirl:"Your skin prickles, flushes with heat.","An unfamiliar sense of warmth draws your attention to your $breasts.","Suddenly aware of every pulse, you swallow as heat unfurls in your belly.","You feel an odd fluttering in the pit of your stomach, almost like a bird beating its wings.","A gentle warmth washes over your $pussy, the unfamiliar sensation kindles discomfort.","Your body feels strange, a prickly warmth creeping into your belly.","A peculiar tingle in your $breasts takes you off guard.","Your $pussy feels different, warmth flooding in.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"Your breathing hitches as an unexpected heat prickles in your $pussy.","You wince as your $breasts throb with a strange warmth.","A sudden quiver runs through your body, originating from your $pussy.","You feel disoriented as a curious wetness gathers in your $pussy.","An unknown sensation, like a throb, demands your attention from your $pussy.","Your body feels strange, a confusing combination of heat and anticipation.","A burning heat begins to pour into your $pussy, making you squirm.","Your $pussy tightens unexpectedly, the sensation is unfamiliar and jarring.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"The relentless throbbing from your $pussy stirs unrest in your thoughts.","A growing heat radiates from your lower belly, disconcerting but not entirely unpleasant.","Despite your resistance, an alien heat engulfs your $pussy compellingly.","Caught off guard, your $pussy clenches, an urge you're not used to.","Heat flares in your $pussy, confusing and intense.","You feel a flush of warmth and wetness between your legs.","Your body seems to disobey you, aching in places you didn’t expect.","An unfamiliar pulse in your $pussy takes your attention, a puzzling, sensual rhythm.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"A throbbing heat spreads through your $pussy, the strange sensation hard to ignore.","A tide of desire washes over you.","Your $pussy feels wetter, the slickness strange but not unpleasant.","Every heartbeat echoes a throb in your $pussy, stirring a curious yearning.","Your $pussy clenches, the odd sensation sending waves of alien pleasure through your body.","You feel a foreign yearning, an unexpected heat pooling deep within your lower belly.","A throbbing heat threatens to drown your senses, unsettling and strong from your $pussy.","Your body trembles with a foreign desire, your $pussy throbbing for attention.")]
(if:$character's "arousal" > 8)[(twirl:"A wave of intense heat surges through your $pussy, a shocking reminder of the changes your body has undergone.","Every fibre of your body seems to yearn for release, an alien sensation but commanding.","A strange, heavy need takes hold of your $pussy, throbbing relentlessly.","A primal desire that you've never known takes hold of your $pussy, demanding satisfaction.","An overwhelming craving washes over you, your $pussy feels like a center of a burning storm.","Your body betrays you, a powerful urge surges from your new body, leaving you reeling.","A pulsating heat takes over your $pussy, an intensity you've never experienced before.","Your body craves an intense release, centering on your throbbing $pussy.","You feel a strange but potent yearning for relief, your $pussy aches with a need you never felt as a man.")]]}{
(display:"npc describe cock")
(if:$character's "reluctance" > 7 and $character's "alcohol status" < 3)[
(if:$character's "arousal" <= 2)[
(twirl:"Unable to comprehend the sensation of his $cock within you, a shameful heat forms within your lower belly.","With his $cock penetrating you, a mix of humiliation and arousal takes hold, turning your whole body flush.","The feeling of him against your inner walls is a reminder of your new vulnerability, a shameful heat creeping through your body.","A shudder ripples through you as his $cock fills your formerly male body to the brim, a confusing sense of arousal and mortification taking hold.","His $cock inside you feels so foreign, yet it stirs a strange heat within your $pussy.","His virile presence within you triggers a shameful yet unavoidable arousal in your body.","The feeling of his engorged $cock violating you fills you with a sense of humiliation, yet an unfamiliar heat trembles within.","His $cock, penetrating you, is a stark reminder of your changed circumstances, making your $pussy uncomfortably warm.","Being used by him in your female form feels so wrong, yet there's a peculiar heat rising within you.","A confusing sense of arousal flutters in your belly as his $cock invades your feminine body.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"His $cock fills you to the brim, stirring an unfamiliar warmth in your $pussy.","The feeling of him deep inside you, his $cock violating your feminine form, brings a sense of defeat along with a strange heat in your core.","A feeling of submissiveness washes over you every time his $cock thrusts inside of you, your body growing warmer against your will.","The feeling of his $cock stretching you out, combined with the shameful realization of your arousal, sends a rush of heat through you.","The firmness of his $cock, so alien yet alluring, pushes you to a state of reluctant enjoyment, your $pussy growing warmer.","The sensation of his $cock penetrating your female body stirs an embarrassing mix of discomfort and arousal.","Every thrust of his $cock inside your body sends teasing waves of warmth throughout your core.","A reluctant heat takes hold of you as his $cock invades your femininity.","The sensation of his $cock invading your changed body brings a shameful blush to your cheeks, your $pussy growing warmer.","Feeling his $cock push deeper inside you, your body warms up in a mix of humiliation and arousal.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"Your body betrays you as his $cock moves within, drawing out an intense throb from your $pussy.","The shame of your arousal is rivalled by the heat of need his $cock stirs within you.","Being filled with his $cock makes you feel vulnerable, yet an intense heat spreads across your body.","His $cock moves inside you, stirring feelings of shame and an unexpected surge of pleasure.","His $cock inside you brings both an uneasy heat and a sense of submission to the surface.","Every movement of his $cock inside you intensifies the waves of hot arousal spreading across your body.","The presence of his powerful $cock inside you triggers an intense blush and a wave of heat throughout your body.","His $cock stretches your feminine body, causing an embarrassing blush and a sudden heatwave.","Despite feeling awkwardly submissive, each thrust of his $cock inside you sends waves of heat coursing through your body.","Your body surrenders to the pulsating rhythm with his $cock, igniting an unexpected yet intense heat within.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"The insistent rhythm of his $cock inside you intensifies the heat coursing through your body, adding an edge of submission to your actions.","Feeling his $cock fill you completely, you're unable to contain a whimper of surrender.","His $cock buries deep inside you, each solid thrust stirring an unsettling pleasure you can't ignore.","Your reluctant body betrays you, wetness pooling inside, from the relentless pounding of his $cock.","The sturdy presence of his $cock within you compels your hips to meet each stroke, the humiliating need to be taken overriding your mind.","As his $cock fills you over and over, a contradictory sensation of pleasure and shame consumes you.","Your body tightens around his $cock, your instinctual response to submit clashing with your logical mind.","His $cock plunges into you, each thrust awakening a submissive desire that you're unprepared for.","Your novel femininity is further emphasized by the throbbing presence of his $cock within you, your body's response to his dominance deeply unsettling.","Under his weight, you feel small and vulnerable, his $cock driving into you with insistent force, evoking a reluctant arousal.","The unsettling sensation of being so completely filled by his $cock has your body betraying your mind, the pleasure derived from being used intensifying.","His $cock intrudes deeply within you, the relentless pace stirring a mixture of shame, pleasure and reluctant submission within your feminine form.")]
(if:$character's "arousal" > 8)[(twirl:"Against your will, you find yourself clinging to him as his $cock drives into you, each stroke subverting your resistance.","Your mind screams in protest, but your body sings in delight.","Despite yourself, you feel a perverse excitement building within you as his $cock fills you, a reminder of your newly found femininity.","Each powerful thrust of his $cock leaves you gasping and desperate, your body helplessly responding to the primal stimuli.","The relentless pounding of his $cock within you sends waves of pleasure, forcing a whimper of surrender to escape your lips.","The fullness within you intensifies with each stroke of his $cock, your body betraying your mental resistance in search of release.","A strangely intoxicating sensation of vulnerability washes over you as his $cock invades deeply into your feminine core.","His $cock moves rhythmically inside you, each thrust stirring a shameful pleasure within your feminized body.","Overwhelmed by the sensation of his $cock filling you, a wave of reluctant pleasure crashes through your submissive form.","Despite the cognitive dissonance, the constant pounding of his $cock within you ignites a fervor of unwanted enjoyment.","His $cock drives into you relentlessly, stirring an unfamiliar but intoxicating feeling of being taken, used, dominated.")]](else:)[
(if:$character's "arousal" <= 2)[
(twirl:"As his $cock fills you, an intoxicating warmth begins to spread through your body.","His $cock inside you, hot and insistent, stirs a satisfying heat in your lower belly.","Feeling his $cock penetrating you, waves of heat begin to radiate from your $pussy.","His $cock slides into you, sending a rush of heady warmth through your entire body.","The sensation of his $cock stretching out your $pussy sends a delicious warmth coursing through you.","As his $cock penetrates you, a primitive heat begins to blossom within your core.","Being filled by his $cock, a gentle warmth unfurls in the pit of your stomach.","Your body welcomes his $cock, the feeling of being filled kindling a simmering warmth within.","His $cock slides inside you, igniting a faint yet tantalizing heat that slowly begins to spread.","Your senses light up as his $cock expands within you, a soothing warmth caressing your inner walls.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"Each thrust of his $cock inside you amplifies the warmth spreading through your body.","His $cock moves within you, stirring a wonderful heat that grows with each motion.","Feeling his $cock stretching you out fills your body with a tantalizing heat.","His $cock plunges in and out of you, intensifying the delicious warmth blooming within.","As his $cock moves inside you, a sweet warmth continues to build, fogging your mind with pleasure.","Feeling his $cock delving deeper into you, the warmth within your body amplifies, rippling out in mesmerizing waves.","Your body pulses with a delightful warmth each time his $cock pushes deeper inside.","The sensation of his $cock stretching you from within sends a soft, tantalizing warmth spiraling through your body.","His $cock moves inside you, the intimate contact spreading a seductive warmth that begins to cloud your senses.","With every stroke of his $cock, waves of delightful warmth wash over you, filling you with an insatiable need.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"His $cock fills you completely, sending waves of searing heat across your skin.","The feeling of his $cock driving in and out of you fuels a blazing heat within, turning your entire body flush.","Your body tightens around his $cock, each thrust sending a wonderful heat coursing through you.","His $cock plunges deep into you, each powerful stroke whipping up a volatile heat that threatens to consume you.","His $cock invades your body, its steady rhythm stirring up an irresistible heat that floods your senses.","His $cock rubs against your inner walls, each stroke turning the warmth within you into a blazing heat.","Each time his $cock plunges into you, a molten heat spreads through your body, leaving you breathless.","His $cock fills you perfectly, stoking a roaring flame of carnal heat within your core.","Your body trembles with the rising warmth, his $cock buried deep inside, each thrust igniting your senses.","With his $cock buried deep inside, you're awash in a flood of pleasurable heat that leaves you gasping for breath.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"The steady rhythm of his $cock inside you fans the flames of your arousal, driving you closer to the edge.","His engorged $cock slides in and out of you, igniting a pulsating heat that dances along your nerves.","Feeling him plunge his $cock into your $pussy, you're awash in a torrent of sensations, a radiant heat blooming within.","Each insistent thrust of his $cock sends shivers of hot pleasure through your body, your mind tantalizingly close to the brink.","With his $cock burying deeper with each rhythmic thrust, the heat in your body builds to a searing crescendo.","His $cock moves with an intoxicating rhythm, every stroke sending surges of molten warmth through you.","Feeling his $cock stretching out your inner walls, the warmth in your body becomes an overwhelming flame of pure desire.","Every thrust of his $cock intensifies the sweltering heat building within you, your body pulsating with arousal.","Your $pussy throbs around his $cock, each penetration amplifying the pulsing heat within, enveloping your senses.","The relentless rhythm of his $cock ignites a torturous, mesmerizing heat that dances along your nerves.")]
(if:$character's "arousal" > 8)[(twirl:"His $cock fills you completely, sensation flooding you, and the heat in your body flares to an exhilarating peak.","The sensation of his $cock pounding relentlessly inside you sends a tsunami of breath-snatching heat coursing through your body.","With his $cock plunging deep within, the heat within you explodes into an all-consuming blaze, threatening to shatter your senses.","Driven by the relentless rhythm of his $cock invading you, the heat inside you surges to a mind-numbing peak, the world around you blushes to a hazy red.","As his $cock fills you over and over again, an incandescent heat consumes your body, threatening to sweep away your sanity.","His $cock fills you completely, igniting an intense blaze within you, the heat a throbbing, fervent pulse beneath your skin.","The rhythm of his $cock plunging into your $pussy brings the heat within you to a crescendo, each nerve-end alight with intense pleasure.","With his $cock buried deep within you, an all-consuming heat swallows up your senses, leaving you breathless in its wake.","His $cock strokes an intense blaze within you, the reverberating heat racing through your body, blurring the world around you.","His $cock fills you again and again, sending a burning heat pulsing through you, consuming your senses and leaving you in a fever of desire.")]
]
}{
(set:$balls to $npc's "ballsdesc" + " balls")(display:"npc describe cock")
(if:$character's "reluctance" > 7)[
(if:$character's "arousal" <= 2)[(twirl:"You feel a perplexing warmth form in your lower belly as your eyes unwillingly fall onto his $cock.","A shiver involuntarily travels down your spine, despite your reluctance, noticing his $cock.","Your femininity feels foreign as your $pussy stirs at the sight of his $cock.","You feel a sense of humiliation as your $breasts react to his formidable $cock.","You feel an odd discomfort with this foreign arousal toward $his_name's virility.","Discomfort twinges within you as the sight of his $cock strikes a chord.","A strange warmth spreads despite your disquiet, his $cock wholly demanding your attention.","His $cock seems like a foreign entity, yet you feel an urge stir within.","You grapple with the embarrassing reality, the sight of his $cock setting some unknown fire within.","You squirm under the odd sensations his $cock seems to evoke within you.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"Under your reluctant gaze, his $cock stirs an unsettling warmth in your $pussy.","A sense of defeat washes over you as your $breasts react to his virility.","Your mind struggles to reconcile with the throbbing need his $cock evokes.","The wetness between your thighs is a shaming reminder of your body's betrayal at the sight of his $cock.","An unfamiliar urge grips your $pussy, causing you discomfort as you acknowledge his $cock.","A reluctant admission takes hold as your body reacts to his $cock.","His $cock stands proud and daunting, stirring an unwelcome heat within you.","Beneath the confusion, you feel a twinge of submissiveness tugged by his $cock.","A reluctant heat takes hold of you as your gaze lingers on his $cock.","You’re filled with awkward anticipation, his $cock stirring unfamiliar desires.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"His $cock commands attention, inducing an embarrassing throb in your $pussy.","Despite your unease, his $cock draws out a desperate need within your core.","Against your better judgement, a longing for his $cock dawns within you.","A blush creeps onto your cheeks as you look at his $cock, a shiver of anticipation running down your spine.","A wave of unfamiliar lust crashes over you at the sight of his $cock.","Despite your initial reluctance, his $cock stirs an unfamiliar curiosity within your $pussy.","The sight of his $cock brings a wave of embarrassment yet an undeniable stirring of desire.","From your $pussy, an aching need for his $cock grows, making you feel awkwardly submissive.","A shameful yearning echoes within you, his $cock commanding an unusual level of fascination.","A reluctant desire, fueled by the sight of his virile $cock, surges within you.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"With a blush of discomfort, you find yourself entranced by his $cock.","His $cock instills an all-consuming hunger within you, stirring your reluctant femininity.","The sight of his $cock flusters you, but an undeniable desire pulses within.","His $cock looms tall and dominant, eliciting a deep yearning within your $pussy.","His $cock stands proud and commanding, stirring a strange desire within your female form.","His $cock looms before you, the visual creating an uncomfortable tension within your $pussy.","A blush rises to your cheeks as the sight of his $cock stirs an intense lust within.","The sight of his erect $cock stirs a heat of embarrassment and desire deep within.","His $cock, so powerful and commanding, stirs an undefinable lust within you.","Your body reacts with a primal instinct to his $cock, causing a flush of embarrassment.")]
(if:$character's "arousal" > 8)[(twirl:"His $cock causes a tumultuous wave of arousal to course through your body, despite your resistance.","A primal instinct takes over, his $cock stirring a desperate need within your $pussy.","His masculine $cock looms before you, stirring an intense, humiliating desire.","His $cock stands tall, compelling a sense of submission within you against your better judgement.","A sense of irony grips you as you find yourself yearning for his $cock.","The sight of his $cock overwhelms you, a wave of guilt and desire washing over.","An embarassing adoration for his $cock takes hold, your body betraying your mind.","The sight of his $cock triggers a wave of intense and humiliating desire.","A reluctant surrender takes hold as you find yourself swayed by the presence of his $cock.","Your logical mind fights against the primal urge his $cock induces within you.")]
](else:)[
(if:$character's "arousal" <= 2)[(twirl:"The sight of $his_name's $cock makes you feel a peculiar warmth in your lower belly.","Feeling susceptible to the power of bare $cock, a shiver runs down your spine.","There's a sensation beginning to stir within your $pussy, as your gaze lingers on his $cock.","A tinge of heat fills your $breasts as your eyes feast on his $cock.","Your attention is riveted to his $cock.","Every beat of your heart echoes the throbbing in your lower belly, his $cock somehow commanding your complete attention.","The heat of your body gravitates towards the sight of his $cock.","An unexpected force tugs at your senses, his $cock standing tall and proud.","You feel an unusual ripple deep within you, a sense of awe instilled by the sight of his $cock.","The subtle pulsating within your $pussy becomes more noticeable, his $cock appearing quite... fascinating.")]
(if:$character's "arousal" > 2 and $character's "arousal" <= 4)[(twirl:"The sight of his $cock conjures a delicious warmth, spreading from your $pussy.","An uneasy tension hangs in the air as your $breasts seem to tighten, $his_name's virility too conspicuous to ignore.","Your mind is filled with the powerful imagery of his $cock, a throb spreading through your body.","The mere sight of his $cock triggers a wetness between your thighs.","You feel an urge deep down your $pussy, a magnetic pull towards his $cock.","An undeniable sense of fascination towards his $cock hijacks your senses.","Every beat of your heart echoes the pulsating heat in your $pussy, his $cock appearing tantalising.","You feel an odd tingle deep within you, the sight of his $cock inducing a raw primal urge.","Your hips unconsciously squirm at the thought of his $cock, a yearning starting to form.","A sense of animalistic curiosity invades your senses, his $cock causing an unbidden heat within you.")]
(if:$character's "arousal" > 4 and $character's "arousal" <= 6)[(twirl:"The sight of his $cock triggers an intense throb within your $pussy.","An insatiable desire threatens to consume you, his throbbing $cock a daunting symbol of what's to come.","Your body is flush with a warmth that's impossible to ignore, his $cock demanding your submission.","Overwhelmed by the sight of his $cock, a desperate need pulses deep within.","A soft moan escapes your lips as you look at his $cock.","Your mind races with carnal thoughts, his $cock representing an unrestrained primal energy.","A chaotic pleasure twists and turns within you, the sight of his $cock impossible to resist.","Every beat of your heart echoes the rhythmic throbbing in your $pussy.","A heady wave of arousal envelopes you, the sight of his $cock stirring raw desire within you.","A powerful yearning grows in your lower belly, imitating the rise and fall of his $cock.")]
(if:$character's "arousal" > 6 and $character's "arousal" <= 8)[(twirl:"The sight of his $cock makes you dizzy with lust, a heatwave igniting from your $pussy.","An insistent pulse within you seeks the commanding presence of his $cock.","His $cock sways hypnotically, each throb matching the rhythm of your rapidly heating core.","An intoxicating wave of need rises within you, his virile $cock calling to the deepest recesses of your body.","Your $pussy clenches involuntarily at the sight of his $cock, a silent plea for his touch.","A carnal energy courses through you, the sight of his $cock evoking the most primal desires.","Your nipples harden at the thought of his $cock inside you, a deep and longing ache spreading through your belly.","His $cock stands tall and triumphant, triggering a compulsion within you that's difficult to ignore.","An insatiable lust courses through you, your whole being entranced by the sight of his $cock.","You gasp involuntarily, a wave of raw desire crashing within you as your eyes lock onto his $cock.")]
(if:$character's "arousal" > 8)[(twirl:"Your body trembles before the daunting presence of his $cock, a wildfire of desire spreading through your core.","A burning need takes over your senses, his $cock symbolising a world of uncharted pleasure.","An overwhelming ache floods your lower belly, demanding the hot throbbing length of his $cock.","A primal instinct leads your gaze to his $cock, a yearning for submission consuming you.","A colossal wave of arousal washes over you, his $cock being the trigger of your undoing.","A desperate whimper escapes your lips, the sight of his $cock teasing your body beyond belief.","A hot wave of anticipation courses through you, the sight of his $cock stirring an instinctual need to be filled.","An insatiable desire pulses through your veins, the sight of his $cock pushing you to your limits.","A frenzy of need overpowers your senses, as if your entire existence is now centered around his $cock.","A delirious craving engulfs your senses, as the sight of his $cock sends you spiralling into an abyss of unquenchable desire.")]]
}{
(if:(cock:"length") > 7)[(set:$your_cock to (twirl:"your massive cock","your mega-schlong","your godlike cock","your big cock","your big member","your hefty wang","your porn-star-sized dick","your impressive rod","your huge tool","your monster shaft","your fuck-rod"))]
(else-if:(cock:"length") < 4)[(set:$your_cock to (twirl:"your cock","your little cock","your little dick","your dick","your stubby dick","your dickling","your micro-peen","your petite package","your mini-wang","your tiny tool","your penis"))]
(else:)[(set:$your_cock to (twirl:"your cock","your dick"))]
(if:(cock:"balls") > 7)[(set:$your_balls to (twirl:"your big balls","your heavy balls","your massive orbs","your hefty nuts","your swollen gonads","your gigantic testicles","your oversized plums"))(set:$your_ballsack to (twirl:"your heavy ballsack","your hefty nutsack","your bulky sack"))]
(else:)[(set:$your_balls to (twirl:"your balls","your nuts","your testicles","your gonads","your balls","your balls"))(set:$your_ballsack to (twirl:"your ballsack","your nutsack","your sack","your scrotum"))]
}{<mark>(set:$lubrication to (min:$lubrication + $gain,10))(set:$gain to 0)(print:" ")Lubrication: (if:$lubrication is 10)[💧 FULLY LUBRICATED 💧](else:)[💧(if:$gain > 1)[💧](if:$gain > 2)[💧](if:$gain > 3)[💧](if:$gain > 4)[💧](if:$gain > 5)[💧](if:$gain > 6)[💧](if:$gain > 7)[💧](if:$gain > 8)[💧](if:$gain > 9)[💧]](display:$stats_refresh)</mark>}{
(if:$gain < 0)[(if:$character's "alcohol status" > 0)[(set:$gain to 0)]]
(set:$gain_raise to 0)
(if:$gain > 0)[
(if:$character's "alcohol status" > 3)[(inc:'gain',3)(set:$gain_raise to 3)(set:$gain_raise to 3)](else-if:$character's "alcohol status" > 2)[(inc:'gain',2)(set:$gain_raise to 2)](else-if:$character's "alcohol status" > 0)[(inc:'gain')(set:$gain_raise to 1)]
]
}{
(display:"arousal alcohol effects")
<div class='options'>
(if:$stats_refresh is 0)[(set:$stats_refresh to "refresh stats")]
(set:$character's "arousal" to (max:(min:$character's "arousal" + $gain,10),0))
(set:$lubrication to (max:(min:$lubrication + $gain,10),0))
(if:$gain is 1 and (is_fem:) and $character's "reluctance" > (twist:7,9) and (twist:1,2) is 1 and not ($scene_type is "ff"))[<mark>Arousal gain blocked due to your reluctance of (print:$character's "reluctance").</mark>](else-if:$gain > 0)[<mark>(display:"gain arousal female text")(if:$gain > 0)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 1)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 2)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 3)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 4)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 5)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 6)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 7)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](if:$gain > 8)[<img src='img/ui/stats/512Arousal2.png'; width=30px; height=auto>](print:" ")Lubrication: (if:$lubrication is 10)[💧 FULLY LUBRICATED 💧](else:)[(str-repeated:(abs:$gain),"💧")]
</mark>](else-if: $gain < 0)[<mark>Your arousal and lubrication decreases... 😒</mark>]
(display:$stats_refresh)
(set:$custom_message to 0)</div>
}{
(unless:($character's "identity" is 100 and $gain > 0) or $gain is 0)[
<div class='options'>
(if:$stats_refresh is 0)[(set:$stats_refresh to "refresh stats")]
(set:$character's "identity" to (clamp:$character's "identity" + $gain,0,100))
<mark>(if:$gain > 0)[(if:$custom_message is 0)[Some of your identity is restored.](else:)[$custom_message](if:$gain > 0)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 1)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 2)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 3)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 4)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 5)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 6)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 7)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$gain > 8)[<img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>]
](else:)[<mark>Your identity is slipping away... (display:"identity icon small")]</mark>
(display:$stats_refresh)
(set:$custom_message to 0)
</div>]
}{
($centered:[{<mark>
(if:$gain < 0)[
<script>window.estim.shock(1)</script>
(twirl:"You feel less manly.","You lose some masculinity.","Your masculinity takes a hit.","You're less masculine.")(display:"update movie femininity")
<img src='img/ui/stats/512Femininity.png'; width=30px; height=auto>
](else-if:$gain>0)[(twirl:"You feel more manly.","You gain some masculinity.","Your masculinity increases.","You're more masculine.")(display:"update movie masculinity")
<img src='img/ui/stats/512Masculinity.png'; width=30px; height=auto>]
</mark>
(set:$character's "masculinity" to (min:(max:$character's "masculinity" + $gain,0),100))(display:$stats_refresh)}])
}{
(if:$gain < 0)[<script>window.estim.shock(1)</script>(display:"update movie femininity")](else-if:$gain>0)[(display:"update movie masculinity")](set:$character's "masculinity" to (min:(max:$character's "masculinity" + $gain,0),100))(display:$stats_refresh)
}{
(unless:$character's "masculinity" < 5)[(set:$movie_femininity to it + (abs:$gain))]
}{
(unless:$character's "masculinity" > 95)[(set:$movie_femininity to it - (abs:$gain))]
}{
(unless:$gain is 0)[
(if:$stats_refresh is 0)[(set:$stats_refresh to "refresh stats")]
(set:$control to (min:(max:$control + $gain,0),10))
(set:$character's "arousal" to (min:$character's "arousal" + $gain,10))
<div class='options'>
<mark>
(if:$control > 9)[
You're in full control now!
](else:)[
You (cond:$gain > 0, "gain","lose") control!
] (str-repeated:(round:(abs:$gain)),"🔥")
</mark>
</div>
(set:$gain to 0)
(display:$stats_refresh)
]
}{
(unless:$gain is 0)[
(if:$character's "side effects" contains "Submissive pleasure" and $position_type is "passive")[(set:$gain to $gain * 2)]
(set:$your_pleasure to (min:$your_pleasure + $gain,10))
<div class='options'>
<mark>
(if:$your_pleasure > 9)[
Your pleasure is maxxed out!
](else-if:$your_pleasure > 0)[
Your pleasure (twirl:"builds","increases")! (if:$character's "side effects" contains "Submissive pleasure" and $position_type is "passive")[(doubled due to side effect)]
](else-if:$your_pleasure < 0)[
Your pleasure decreases!
] (str-repeated:(abs:(round:$gain)),"💦")
</mark>
</div>
(set:$gain to 0)
(display:"update your pleasure")
]
}{
(unless:$gain is 0)[
(if:$scene_type is "ff")[
(set:$emoji to "💦")
(set:$his to (twirl:"Her",$npc's name + "'s"))
](else:)[
(set:$emoji to "🍾")
(set:$his to (twirl:"His",$npc's name + "'s"))
]
<div class='options'>
(set:$his_pleasure to (max:0,(min:$his_pleasure + $gain, $his_pleasure_threshold)))
<mark>
(if:$gain < 0)[
$his pleasure is reduced! (str-repeated:(round:(abs:$gain)), $emoji)
](else:)[
(if:$his_pleasure > $his_pleasure_threshold)[
$his pleasure is maxed out!
](else:)[
$his pleasure (twirl:"builds","increases")!
] (str-repeated:(round:$gain), $emoji)
]
</mark>
</div>
(set:$gain to 0)
(display:"update his pleasure")
]
}{
(unless:$gain is 0)[
(if:$scene_type is "ff")[
(set:$his to (twirl:"Her",$npc's name + "'s"))
](else:)[
(set:$his to (twirl:"His",$npc's name + "'s"))
]
(set:$his_satisfaction to (min:(max:$his_satisfaction + $gain,0),10))
<div class='options'>
<mark>
(if:$gain > 0)[
$his satisfaction increases. (str-repeated:(round:$gain),"😋")
](else:)[
$his satisfaction decreases. (str-repeated:(abs:(round:$gain)),"😒")
]
</mark>
</div>
(display:"npc stats update sex guy")
(set:$gain to 0)
]
}{(link:"Inventory")[(display:"click")(display:"inventory separate buttons")]}{[(link:"Pills")[(display:"click")(display:"pill inventory")]]<pill_inventory|(if:$card_inventory's length > 0)[(link:"Cards")[(display:"click")(replace:?screen)[(display:"card inventory")]]](if:$protection's "have" > 0 or length of ((a:"chronograph watch","unisex watch","ladies watch","gmt watch","dive watch") - $items) < 5 or length of $bubba_zipple > 0 or length of $handbag_inventory > 0)[(link:"Items")[(display:"click")(display:"item inventory")]]}{
|item_inventory>[](display:"refresh item inventory")
}{
|item_inventory>[](display:"refresh item inventory zipple")
}{
(replace:?item_inventory)[
(if:length of $bubba_zipple > 0)[<div class='options'>(link:"Bubba Zipple")[(display:"bubba zipple inventory")]</div>]]
}{
(replace:?item_inventory)[(if:$protection's "have" > 0)[
(link:"Protective Serum 🛡️ (" + (text:$protection's "have") + ")")[
(if:$protection's "active" is "true")[
*You've already injected yourself with serum. More could be dangerous.*
](else:)[
(set:$se to "defense")
(display:"play sound")
*You inject yourself with protective serum.*
(set:$protection's "active" to "true")
(set:$protection's "have" to $protection's "have" - 1)
]
]
]
(if:length of ((a:"chronograph watch","unisex watch","gmt watch","dive watch","ladies watch") - $items) < 5)[(link:"Watches")[(display:"select watch")]]
(if:length of $bubba_zipple > 0)[(link:"Bubba Zipple")[(display:"bubba zipple inventory")]]
(if:length of $handbag_inventory > 0 and (is_fem:) and $time < 1)[(link:"Handbags")[($cs:"equip handbags")]]
($passage_tags:"inventory_items")]
}{
(if:(count:$items,$select) > 1)[
(set:$items_held to (find:_item where _item is $select, ...$items))
(set:$items_held to (subarray:$items_held, 2, ($items_held's length)))
(set:$items to $items - (a:(text:$select)))
(set:$items to $items + $items_held)
]
}{
(if:(pills:) is 0)[
*(twirl:"Your pill inventory is empty.","You don't have any pills.")*
](else-if:(is_fem:))[
*You're already female.*
(nl:1)
You have the following pills:
(nl:1)
(for: each _pill, ...(data-entries:$pill_inventory))[
(if:_pill's "value" > 0)[
(text: _pill's name + " (" + (text:_pill's value) + ")")
(nl:1)
]
]
(nl:1)
](else:)[
(for: each _pill, ...(data-entries:$pill_inventory))[
(if:_pill's "value" > 0)[
(set:_opt to _pill's name + " (" + (text:_pill's value) + ")")
(link:_opt)[
(display:"click")
(unless:(is_male:))[
*X-Change™ pink pills have no effect while female.*
](else:)[
(set:_pill's name of $pill_inventory to it - 1)
(set:$select to _pill's name)
(replace:?screen)[{(display:"take pill")(replace:?pill_inventory)[]}]
]
]
]
]
]
}{
<!--
Green Gush: +1 charm, +1 intellect, +1 AP - sour apple flavor!
"Dive into the tart twist, where sour meets savvy!"
Lemon Zip: +2 fitness, -1 charm, +1 AP - EXTREMELY lemony
"Pucker up for the lemony lightning bolt that jolts you into high gear!"
Blue Blitz: +2 intellect, -1 fitness, +1 AP - supposedly blue raspberry, but really just taste quite chemical-y
A smarty party in every sip!
Swirlin' Surprise (expensive limited edition flavor, hard to find): 25% XP boost for 1 time slot, +2 AP
"Get swirlin', get winnin' with Swirlin' Surprise – the rare flavor jackpot!"
Frosty Grape: +1 AP, -10 arousal (doesn't affect Breeders as strongly)
"Chill out with Frosty Grape, the cool wave that calms the storm within!"
Outrageous Orange: +2 AP
"SQUEEZE the day!"
Cherry Pop: max arousal, 25% XP boost for 1 time slot, +1 AP
"Pop your cherry with the flavor that turns the heat ALL the way up!"
-->
(if:(count:$today_events,"drink zipple")>2)[<div class='options'><mark>You're too jittery from caffeine to drink another one - you stash it back in your inventory.(set:$bubba_zipple to it + (a:(text:$drink_select)))(display:"refresh item inventory")(newtrack:"clink","aud/se/clink.mp3")($play:"sound","clink")</mark></div>](else-if:(knows_preg:) and (count:$today_events,"drink zipple")>1)[<div class='options'><mark>You shouldn't have more than 200mg of caffeine per day while pregnant. You stash the bottle instead of drinking it.(set:$bubba_zipple to it + (a:(text:$drink_select)))(display:"refresh item inventory")(newtrack:"clink","aud/se/clink.mp3")($play:"sound","clink")</mark></div>](else:)[
(set:$current_zipple to $drink_select)
<div class='options'><mark>You gulp down the bottle of (print:$drink_select of (dm:"green gush","Green Gush","lemon zip","Lemon Zip","blue blitz","Blue Blitz","swirlin surprise","Swirlin' Surprise","frosty grape","Frosty Grape","outrageous orange","Outrageous Orange","cherry pop","Cherry Pop"))! (twirl:"Bubbly.","Mmm.","Refreshing.","Bubbly, with a hint of zip.","It puts a pep in your step.")</mark></div>(display:"drink something")
(set:$today_events to it + (a:"drink zipple"))
(if:$time > 2)[(set:$today_events to it + (a:"night caffeine"))]
(set:$gain to (cond:(a:"outrageous orange","swirlin surprise") contains $current_zipple, 2,1))(set:$action_points to ($clamp:$action_points + $gain,1,$max_action_points))
<div class='options'><mark>$gain (cond:$gain is 1,"Action Point","Action Points") restored.</mark></div>(if:$current_zipple is "cherry pop")[(set:$character's "arousal" to 10)<div class='options'>(set:$gain to 10)(display:"gain arousal")</div>](if:$current_zipple is "frosty grape")[(if:(is_breeder:))[<div class='options'><mark>Arousal cut in half! (Not fully cleared(if:$pill_known is "true")[, because you're on a Breeder pill])</mark></div>(set:$character's "arousal" to (round:it / 2))](else:)[<div class='options'><mark>Arousal cleared!</mark></div>(set:$character's "arousal" to 0)]](if:(a:"cherry pop","swirlin surprise") contains $current_zipple)[<div class='options'><mark>XP boosted by 25% today!</mark></div>](css:"display:none")[
(newtrack:"drink zipple","aud/se/drink/zipple.mp3")($play:"sound","drink zipple")
(display:"update action points")
(display:"check buffs")
(display:"score multiplier recalc")
(display:"refresh stats")]]
}{
(if:$status's status is "cum breath")[(display:"reset status")](set:$time_events to $time_events - (a:"dance"))(set:$time_events to $time_events + (a:"drink"))
}{
(replace:?text)[(set:$today_events to it + (a:"check fridge"))
($play:"sound","open fridge")
(if:$rent_this_week > 74)[(display:"fridge bubba zipple")](else:)[<div class='options'><mark>The fridge is empty.</mark></div>](display:"house chores location options")]
}{
(set:$bubba_zipple to it + (a:(twirl:"green gush","lemon zip","blue blitz","green gush","lemon zip","blue blitz","swirlin surprise","frosty grape","outrageous orange","cherry pop","frosty grape","outrageous orange","cherry pop")))(display:"refresh item inventory")
<div class='options'>(newtrack:"clink","aud/se/clink.mp3")($play:"sound","clink")
<mark>You find a Bubba Zipple™ (print:$bubba_zipple's last of (dm:"green gush","Green Gush","lemon zip","Lemon Zip","blue blitz","Blue Blitz","swirlin surprise","Swirlin' Surprise","frosty grape","Frosty Grape","outrageous orange","Outrageous Orange","cherry pop","Cherry Pop")) in the fridge!(print:"
")(You can drink it anytime from the Items menu.)</mark>
</div>
(replace:?right_options)[(set:$zipple_image to $bubba_zipple's last)(display:"bubba zipple image with tooltip")]
}{
(set:$bubba_zipple_availability to (dm:))
(set:_vending_machine_locations to (a:"mall", "bar", "club", "work"))
(set:_zipple_variants to (a:"green gush","lemon zip","blue blitz","swirlin surprise","frosty grape","outrageous orange","cherry pop"))
<!-- _sold_out_chance_percent could potentially go into a global
setting, to be able to change with time or with game conditions.
Making some items harder to get by, or make items temporarily
sold out in a period, etc.-->
(set:_sold_out_chance_percent to (dm:
"mall", (dm:
"green gush", 20,
"lemon zip", 20,
"blue blitz", 20,
"swirlin surprise", 100,
"frosty grape", 30,
"outrageous orange", 30,
"cherry pop", 10),
"bar", (dm:
"green gush", 30,
"lemon zip", 30,
"blue blitz", 20,
"swirlin surprise", 100,
"frosty grape", 35,
"outrageous orange", 30,
"cherry pop", 10),
"club", (dm:
"green gush", 20,
"lemon zip", 20,
"blue blitz", 20,
"swirlin surprise", 100,
"frosty grape", 35,
"outrageous orange", 20,
"cherry pop", 10),
"work", (dm:
"green gush", 30,
"lemon zip", 20,
"blue blitz", 30,
"swirlin surprise", 100,
"frosty grape", 45,
"outrageous orange", 30,
"cherry pop", 10)
))
(for: each _location, ..._vending_machine_locations)[
(set:$bubba_zipple_availability to it + (dm:
(text:_location), (dm:)
))
(for: each _variant, ..._zipple_variants)[
(set:$bubba_zipple_availability's (text:_location) to it +
(dm:(text:_variant),
(twist:0,100) > _sold_out_chance_percent's (text:_location)'s (text:_variant))
)
]
]
}{
(unless:$today_events contains "bubba zipple stock")[(display:"generate bubba zipple availability")(set:$today_events to it + (a:"bubba zipple stock"))]
(replace:?drink_options)[<mark>All standard flavors cost $25.[]<vending_machine_display|</mark>(nl:1)
(set: _location to $current_location of (dm:
"Paradise Mall", "mall",
"The Broken Drum", "bar",
"The Electric Pickle", "club",
"Break Room", "work",
))
(if:(money:) >= 25)[
($show_tooltip:[{
(link-rerun:"Green Gush")[{
(if:$bubba_zipple_availability's (text:_location)'s "green gush")[
(set:$drink_select to "green gush")
(display:"purchase bubba zipple")
]
(else:)[(replace:?vending_machine_display)[(nl:1)*Green Gush* is temporarily out of stock. We apologize for the inconvenience.]]
}]
}],[(display:"bubba zipple info green gush")])
($show_tooltip:[{
(link-rerun:"Lemon Zip")[{
(if:$bubba_zipple_availability's (text:_location)'s "lemon zip")[
(set:$drink_select to "lemon zip")
(display:"purchase bubba zipple")
]
(else:)[(replace:?vending_machine_display)[(nl:1)*Lemon Zip* is temporarily out of stock. We apologize for the inconvenience.]]
}]
}],[(display:"bubba zipple info lemon zip")])
($show_tooltip:[{
(link-rerun:"Blue Blitz")[{
(if:$bubba_zipple_availability's (text:_location)'s "blue blitz")[
(set:$drink_select to "blue blitz")
(display:"purchase bubba zipple")
]
(else:)[(replace:?vending_machine_display)[(nl:1)*Blue Blitz* is temporarily out of stock. We apologize for the inconvenience.]]
}]
}],[(display:"bubba zipple info blue blitz")])
($show_tooltip:[{
(link-rerun:"Swirlin' Surprise")[{
(if:$bubba_zipple_availability's (text:_location)'s "swirlin surprise")[
(set:$drink_select to "swirlin surprise")
(display:"purchase bubba zipple")
]
(else:)[(replace:?vending_machine_display)[(nl:1)*Swirlin' Surprise* is unavailable.]]
}]
}],[(display:"bubba zipple info swirlin surprise")])
($show_tooltip:[{
(link-rerun:"Frosty Grape")[{
(if:$bubba_zipple_availability's (text:_location)'s "frosty grape")[
(set:$drink_select to "frosty grape")
(display:"purchase bubba zipple")
]
(else:)[(replace:?vending_machine_display)[(nl:1)*Frosty Grape* is temporarily out of stock. We apologize for the inconvenience.]]
}]
}],[(display:"bubba zipple info frosty grape")])
($show_tooltip:[{
(link-rerun:"Outrageous Orange")[{
(if:$bubba_zipple_availability's (text:_location)'s "outrageous orange")[
(set:$drink_select to "outrageous orange")
(display:"purchase bubba zipple")
]
(else:)[(replace:?vending_machine_display)[(nl:1)*Outrageous Orange* is temporarily out of stock. We apologize for the inconvenience.]]
}]
}],[(display:"bubba zipple info outrageous orange")])
($show_tooltip:[{
(link-rerun:"Cherry Pop")[{
(if:$bubba_zipple_availability's (text:_location)'s "cherry pop")[
(set:$drink_select to "cherry pop")
(display:"purchase bubba zipple")
]
(else:)[(replace:?vending_machine_display)[(nl:1)*Cherry Pop* is temporarily out of stock. We apologize for the inconvenience.]]
}]
}],[(display:"bubba zipple info cherry pop")])
]
(else:)[<mark>Not enough money for Bubba Zipple.</mark>]
(link:"Back")[
(set:$next to $back)
(display:"next")
]]
}{
(replace:?drink_options)[(set:$se to "kaching")(if:$current_activity is "Go to the mall")[(newtrack:"vending machine coin","aud/se/vending machine coin.mp3")(set:$se to "vending machine coin")](display:"play sound")(link:"Drink now")[(replace:?drink_options)[(display:"drink bubba zipple")(link:"Buy more")[(display:"bubba zipple purchase drink")](link:"Back")[(set:$next to $back)(display:"next")]]](link:"Stash in inventory")[(replace:?drink_options)[<mark>(set:$bubba_zipple to it + (a:(text:$drink_select)))(display:"refresh item inventory")Bottle placed in your inventory.(newtrack:"clink","aud/se/clink.mp3")($play:"sound","clink")</mark>(nl:1)(link:"Buy more")[(display:"bubba zipple purchase drink")](link:"Back")[(set:$next to $back)(display:"next")]]]]($pay_money:25)
}{
(replace:?item_inventory)[
(if:$bubba_zipple contains "green gush")[
($show_tooltip:[(link:"Green Gush (x" + (text:(count:$bubba_zipple,"green gush")) + ")")[(set:$drink_select to "green gush")(display:"drink and refresh inventory")]],[(display:"bubba zipple info green gush")])]
(if:$bubba_zipple contains "lemon zip")[
($show_tooltip:[(link:"Lemon Zip (x" + (text:(count:$bubba_zipple,"lemon zip")) + ")")[(set:$drink_select to "lemon zip")(display:"drink and refresh inventory")]],[(display:"bubba zipple info lemon zip")])]
(if:$bubba_zipple contains "blue blitz")[
($show_tooltip:[(link:"Blue Blitz (x" + (text:(count:$bubba_zipple,"blue blitz")) + ")")[(set:$drink_select to "blue blitz")(display:"drink and refresh inventory")]],[(display:"bubba zipple info blue blitz")])]
(if:$bubba_zipple contains "swirlin surprise")[
($show_tooltip:[(link:"Swirlin' Surprise (x" + (text:(count:$bubba_zipple,"swirlin surprise")) + ")")[(set:$drink_select to "swirlin surprise")(display:"drink and refresh inventory")]],[(display:"bubba zipple info swirlin surprise")])]
(if:$bubba_zipple contains "frosty grape")[
($show_tooltip:[(link:"Frosty Grape (x" + (text:(count:$bubba_zipple,"frosty grape")) + ")")[(set:$drink_select to "frosty grape")(display:"drink and refresh inventory")]],[(display:"bubba zipple info frosty grape")])]
(if:$bubba_zipple contains "outrageous orange")[
($show_tooltip:[(link:"Outrageous Orange (x" + (text:(count:$bubba_zipple,"outrageous orange")) + ")")[(set:$drink_select to "outrageous orange")(display:"drink and refresh inventory")]],[(display:"bubba zipple info outrageous orange")])]
(if:$bubba_zipple contains "cherry pop")[
($show_tooltip:[(link:"Cherry Pop (x" + (text:(count:$bubba_zipple,"cherry pop")) + ")")[(set:$drink_select to "cherry pop")(display:"drink and refresh inventory")]],[(display:"bubba zipple info cherry pop")])]]
}{(replace:?item_inventory)[(set:_add_back to (repeated:(count:$bubba_zipple,$drink_select) - 1,$drink_select))(set:$bubba_zipple to it - (a:$drink_select))(set:$bubba_zipple to it + _add_back)(display:"drink bubba zipple")]}{
<div class='options'>
(print:"<img class='noborder' src='img/ui/items/bubba zipple/green gush.png' width=128px height=auto>")
(nl:1)
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ Green Gush]
(nl:1)
Dive into the tart twist, where sour meets savvy!
(nl:1)
Boosts your charm and intellect by 1. (+1 AP)
</div>
}{
<div class='options'>
(print:"<img class='noborder' src='img/ui/items/bubba zipple/lemon zip.png' width=128px height=auto>")
(nl:1)
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ Lemon Zip]
(nl:1)
Pucker up for the lemony lightning bolt that jolts you into high gear!
(nl:1)
+2 fitness, but -1 charm. (+1 AP)
</div>
}{
<div class='options'>
(print:"<img class='noborder' src='img/ui/items/bubba zipple/blue blitz.png' width=128px height=auto>")
(nl:1)
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ Blue Blitz]
(nl:1)
A smarty party in every sip!
(nl:1)
Elevates intellect by 2, but lowers fitness by 1. (+1 AP)
</div>
}{
<div class='options'>
(print:"<img class='noborder' src='img/ui/items/bubba zipple/swirlin surprise.png' width=128px height=auto>")
(nl:1)
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ Swirlin' Surprise]
(nl:1)
<span class='chromatic'>LIMITED EDITION!</span>
(nl:1)
Get swirlin', get winnin' with Swirlin' Surprise – the rare flavor jackpot!
(nl:1)
Unleashes a 25% XP boost for a time slot. (+2 AP)
</div>
}{
<div class='options'>
(print:"<img class='noborder' src='img/ui/items/bubba zipple/frosty grape.png' width=128px height=auto>")
(nl:1)
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ Frosty Grape]
(nl:1)
Chill out with Frosty Grape, the cool wave that calms the storm within!
(nl:1)
Cools down your arousal (as long as you're not on a Breeder). (+1 AP)
</div>
}{
<div class='options'>
(print:"<img class='noborder' src='img/ui/items/bubba zipple/outrageous orange.png' width=128px height=auto>")
(nl:1)
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ Outrageous Orange]
(nl:1)
SQUEEZE the day!
(nl:1)
Double the action with +2 AP.
</div>
}{
<div class='options'>
(print:"<img class='noborder' src='img/ui/items/bubba zipple/cherry pop.png' width=128px height=auto>")
(nl:1)
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ Cherry Pop]
(nl:1)
Pop your cherry with the flavor that turns the heat ALL the way up!
(nl:1)
Max out arousal and get a 25% XP boost for a time slot. (+1 AP)
</div>
}{
($show_tooltip:[(print:"<img class='noborder'
src='img/ui/items/bubba zipple/" + (text:$zipple_image) + ".png' width=128px height=auto>")],[(display:"bubba zipple tooltip info")])
}{
<span class='shadow'>(css:"font-size:1.2em")[Bubba Zipple™ (print:$zipple_image of (dm:"green gush","Green Gush","lemon zip","Lemon Zip","blue blitz","Blue Blitz","swirlin surprise","Swirlin' Surprise","frosty grape","Frosty Grape","outrageous orange","Outrageous Orange","cherry pop","Cherry Pop"))]</span>(nl:1)(if:$zipple_image is "swirlin surprise")[<span class='chromatic'>LIMITED EDITION!</span>(nl:1)]
(print:$zipple_image of (dm:
"green gush", "Dive into the tart twist, where sour meets savvy!",
"lemon zip", "Pucker up for the lemony lightning bolt that jolts you into high gear!",
"blue blitz", "A smarty party in every sip!",
"swirlin surprise", "Get swirlin', get winnin' with Swirlin' Surprise – the rare flavor jackpot!",
"frosty grape", "Chill out with Frosty Grape, the cool wave that calms the storm within!",
"outrageous orange", "SQUEEZE the day!",
"cherry pop", "Pop your cherry with the flavor that turns the heat ALL the way up!"
))(nl:1)
(print:$zipple_image of (dm:
"green gush", "Boosts your charm and intellect by 1. (+1 AP)",
"lemon zip", "+2 fitness, but -1 charm. (+1 AP)",
"blue blitz", "Elevates intellect by 2, but lowers fitness by 1. (+1 AP)",
"swirlin surprise", "Unleashes a 25% XP boost for the day. (+2 AP)",
"frosty grape", "Cools you down with -10 arousal (reduced cooling effect if you're on a Breeder). (+1 AP)",
"outrageous orange", "Double the action with +2 AP.",
"cherry pop", "Get a 25% XP boost for the day, but your arousal gets maxxed out. (+1 AP)"
))
}{
<div style="position: relative; width: auto; height: auto;margin-bottom: 12px;"><img class='greyborder' src="img/places/bar/wide vignette.jpg" style="width: 100%; height: auto; display: block;"><img src="img/ui/items/bubba zipple/bubba zipple.svg" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; padding:1px;"></div>
The bartender non-judgmentally shows you the Bubba Zipple menu.(unless:$global_events contains "bubba zipple song")[ Funny enough, the bar TV is playing an ad for it...](display:"bubba zipple play song")
<div class='options'>[]<drink_options|(display:"bubba zipple purchase drink")(set:$back to "Hit the bar")</div>
}{
<div style="position: relative; width: auto; height: auto;margin-bottom: 12px;"><img class='greyborder' src="img/places/mall/vending machine.jpg" style="width: 100%; height: auto; display: block;"><img src="img/ui/items/bubba zipple/bubba zipple.svg" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; padding:1px;"></div>(set:$current_location to "Paradise Mall")
You find a vending machine stocked with Bubba Zipple.(unless:$global_events contains "bubba zipple song")[ It has a little screen playing the TV ad on repeat...](display:"bubba zipple play song")($play:"ambience","vending machine ambience")
<div class='options'>[]<drink_options|(display:"bubba zipple purchase drink")(set:$back to "Go shopping")</div>(display:"location and time")
}{
<div style="position: relative; width: auto; height: auto; margin-bottom: 12px;"><img class='greyborder' src="img/places/office/vending machine.jpg" style="width: 100%; height: auto; display: block;"><img src="img/ui/items/bubba zipple/bubba zipple.svg" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; padding:1px;"></div>(set:$current_location to "Break Room")
You find a vending machine stocked with Bubba Zipple.(unless:$global_events contains "bubba zipple song")[ It has a little screen playing the TV ad on repeat...](display:"bubba zipple play song")($play:"ambience","vending machine ambience")
<div class='options'>[]<drink_options|(display:"bubba zipple purchase drink")(set:$back to "work break")</div>
}{
<div style="position: relative; width: auto; height: auto; margin-bottom: 12px;"><img class='greyborder' src="img/places/office/vending machine.jpg" style="width: 100%; height: auto; display: block;"><img src="img/ui/items/bubba zipple/bubba zipple.svg" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; padding:1px;"></div>(set:$current_location to "Break Room")
You find a vending machine stocked with Bubba Zipple.(unless:$global_events contains "bubba zipple song")[ It has a little screen playing the TV ad on repeat...](display:"bubba zipple play song")($play:"ambience","vending machine ambience")
<div class='options'>[]<drink_options|(display:"bubba zipple purchase drink")(set:$back to "secretary break")</div>
}{
<div style="position: relative; width: auto; height: auto;margin-bottom: 12px;"><img class='greyborder' src="img/places/club/bar vignette.jpg" style="width: 100%; height: auto; display: block;"><img src="img/ui/items/bubba zipple/bubba zipple.svg" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; padding:1px;"></div>
The barbot opens a minifridge in its midriff, stocked with an array of chilled Bubba Zipple bottles.
<div class='options'>[]<drink_options|(display:"bubba zipple purchase drink")(set:$back to "club bar")</div>
}{
(unless:$global_events contains "bubba zipple song")[(set:$today_events to it + (a:"bubba zipple song"))(set:$global_events to it + (a:"bubba zipple song"))(newtrack:"bubba zipple tv spot","aud/se/bubba zipple tv spot.mp3")(set:$song to "bubba zipple tv spot")(display:"play song no loop")](else-if:not ($today_events contains "bubba zipple song"))[(newtrack:"bubba zipple jingle","aud/se/bubba zipple jingle.mp3")(set:$song to "bubba zipple jingle")(display:"play song no loop")(set:$today_events to it + (a:"bubba zipple song"))]
}{[(set:_can_get_sore to (is_fem:) and (big_boobs:) and $soreness > 9 and not (($status's status is "sore") and not ($soreness_toggle is "Breast Soreness Mechanics: Off") and not ($outfit's "breast support" > 4)))(display:$location_params's "location refresh")(if:$turns < 1)[(display:"location event location intro passage")](else-if:_can_get_sore)[(display:"location soreness")](else:)[(inc:'turns')[(display:"check trigger tags")(display:"make comment")(if:(is_fem:) and not ((mood:"ashamed")))[(if:(twist:1,3) is 1 or $trigger is "cum")[(if:$comment is "coworker greet")[(if:$notice_board_viewing is 0)[(display:$comment)(if:$comment is "catcall")[(display:"npc screen update")]]]](if:$location_params contains "girl portrait passage" and $comment is "overheard" and $commenter is "female")[(display:$location_params's "girl portrait passage")](else-if:$comment is "catcall")[](else:)[(display:$location_params's "location refresh")]](display:"check shame")]](display:"location event spike checks")(display:"location event finalize")]<text|}(display:"breathing ambience"){(set:$options to "true")
(display:"check shame")
(if:$options is "true")
[(display:$location_params's "intro passage")]
(inc:'turns')
}{
(if:$options is "true" and $turns > (twist:1,3) and $location_params contains "girl passage" and not ($time_events contains "seen girl"))
[
(display:$location_params's "location refresh")
(display:$location_params's "girl passage")
]
(else:)
[
(if:$options is "true")
[(display:$location_params's "options passage")]
]
(if:(is_male:))
[(display:$location_params's "location refresh")]
(if:(is_fem:) and $options is "false")
[(display:"location and time")]
}(replace:?text)[(if:$location_params contains "location text passage")[(display:$location_params's "location text passage")](display:"check trigger tags")(display:"make comment")(display:"location event refresh contents")](inc:'turns'){
(if:(is_fem:) and not ((mood:"ashamed")))[
(display:$comment)(if:$location_params contains "girl portrait passage" and $comment is "overheard" and $commenter is "female")[(display:$location_params's "girl portrait passage")]
(else-if:$comment is "catcall")[(display:"npc screen update")]
(else-if:$options is "false")[(display:"location and time")]
(else:)[(display:$location_params's "location refresh")]]
(else-if: (is_male:) and ($npc_type is "coworker"))[(display:$comment)]
(if:$options is "true" and ($turns > (twist:1,3)) and $location_params contains "girl passage" and not ($time_events contains "seen girl"))[(display:$location_params's "girl passage")]
(else:)[(if:$options is "true")[(display:$location_params's "options passage")]]
}{
(set:$triggers to (a:"id","id","id"))
(if:(a:"bubble","big") contains $character's "butt")[(set:$triggers to $triggers + (a:"butt"))]
(if:(datanames:$outfit) contains "emphasizes" and not ($outfit's tags contains "mens"))[
(if:$outfit's "sluttiness" > 5)[(set:$triggers to $triggers + (a:"clothes"))]
(if:$outfit's "sluttiness" > 7)[(set:$triggers to $triggers + (a:"clothes"))]
(if:$outfit's "sluttiness" > 8)[(set:$triggers to $triggers + (a:"clothes"))]
(if:$outfit's "emphasizes" contains "butt" or $outfit's "emphasizes" contains "asscheeks")[(set:$triggers to $triggers + (a:"butt","butt","butt"))]
(if:$outfit's "emphasizes" contains "boobs" or $outfit's "emphasizes" contains "cleavage" or $outfit's "emphasizes" contains "underboob" or $outfit's "emphasizes" contains "sideboob")[(set:$triggers to $triggers + (a:"breasts","breasts","breasts"))]]
(if:$character's "butt" is "bubble")[(set:$triggers to $triggers + (a:"butt"))]
(if:(a:"A") contains $character's "breasts")[(set:$triggers to $triggers - (a:"breasts"))]
(if:(a:"C","D","E","F") contains $character's "breasts")[(set:$triggers to $triggers + (a:"breasts"))]
(if:(a:"D","E","F") contains $character's "breasts")[(set:$triggers to $triggers + (a:"breasts"))]
(if:(a:"E","F") contains $character's "breasts")[(set:$triggers to $triggers + (a:"breasts"))]
(unless:$character's "race" is "white")[(set:$triggers to $triggers + (a:"id"))]
(if:$character's "status" is "cum")[(set:$triggers to (a:"cum","cum","cum"))]
(if:$character's "arousal" > 5)[(set:$triggers to $triggers + (a:"arousal","arousal"))]
(if:$character's "arousal" > 7)[(set:$triggers to $triggers + (a:"arousal","arousal"))]
(if:$npc_type is "coworker")[
(if:$sales_job's "sexual reputation level" > 1)[(set:$triggers to it + (a:"reputation"))]
(if:$sales_job's "sexual reputation level" > 2)[(set:$triggers to it + (a:"reputation"))]
(if:$sales_job's "sexual reputation level" > 3)[(set:$triggers to it + (a:"reputation"))]
(if:$sales_job's "sexual reputation level" > 4)[(set:$triggers to it + (a:"reputation"))]
(if:$sales_job's "sexual reputation level" > 5)[(set:$triggers to it + (a:"reputation"))]
]
(set:$triggers to (twisted:...$triggers))
(set:$trigger to 1st of $triggers)
}{(set:$options to "true")(set:$word_game to (dm:))(set:$comment to "thought")(if:$trigger is "butt")[(set:$comment to (twirl:"catcall","overheard","thought","overheard"))](else-if:$trigger is "breasts")[(set:$comment to (twirl:"catcall","overheard","thought","thought","overheard"))](else-if:$trigger is "clothes")[(set:$comment to (twirl:"overheard","thought"))](else-if:$trigger is "cum")[(set:$comment to (twirl:"thought","overheard"))](else-if:$trigger is "arousal")[(set:$comment to (twirl:"thought","catcall","thought"))](else-if:$trigger is "id")[(set:$comment to (twirl:"catcall","thought"))](if:$location_params's "sleaze" is 0 and $comment is "overheard")[(set:$commenter to (twirl:"male","female"))](else-if:$location_params's "sleaze" is 1)[(set:$commenter to (twirl:"male","male","female"))](else-if:$location_params's "sleaze" > 1)[(set:$commenter to (twirl:"male","male","male","male","female"))](unless:$time_events contains "grope")[(if:$location_params's "sleaze" > 0 and (twist: 1,12) is 1)[(set:$comment to "grope")]](if:$location_params contains "bj location name")[(if:$param is "catcall" and (a:"butt","breasts","clothes","cum","arousal","id") contains $trigger)[(set:$comment to "catcall")]](else:)[(set:$param to "none")(if:$comment is "catcall")[(set:$comment to "thought")]](if:$comment is "catcall" and $npc_type is "coworker")[(set:$comment to "coworker greet")](if:(is_male:))[(set:$trigger to "male")](if:$safeword is "Safeword: Enabled" and $comment is "grope")[(set:$comment to "thought")](if:$location_params's "crowded" is "no" or $marked_timer > 0)[(set:$comment to "thought")](set:$param to "none")}(display:"breathing ambience"){
(unless:$location_params's "crowded" is "no" or $npc_type is "coworker")[(if:(mood:"ashamed"))[(twirl:"You don't feel like being around anyone right now.","You don't feel like being out in public right now.","You definitely don't feel like being out in public right now.") 😔(nl:1)
(set:$options to "false")
<div class='options'>(link:(twirl:"Leave","Exit","Just leave...","Make a quick exit..."))[(display:"advance time")]</div>]]
}{
<!--
Memories are anything that happens in XCL, which can be referenced at other points in time. Each memory has a day stamped on them, a timestamp, a strength, and tags, a high-level ID as well as potentially a set of tags. Tags can be whatever details you want to define about the scene. Additionally there is an npc ID field to indicate which npc this was with (that ID can be used to retrieve NPC info, for example.)
Strength indicates how many days before the memory is wiped (you're not gonna remember something super minor several weeks from now. Whenever the age of the memory exceeds the strength level, the memory will be cleared from this set. Memories with a strength of -1 are never removed - bear in mind that this means they can grow. Memories with the same ID replace each other.)
(set:$memories to (a:))
(set:$memories to (a:
(dm:
"id","stepsis shoplifting",
"day",$day,
"time",$time,
"strength",14,
"tags",(a:"took her place","took pill in office","didnt yell at her"),
"npc","stepsis")
))
This registers a new memory.
($remember:"stepsis shoplifting",14,"stepsis","none","didnt yell at her","caught shoplifting")
Dreams have the final tag be the passage of the dream.
($remember:"cum facial",8,"none","none","dream","dream facial choice")
This adds the tags took her place, and took pill in office, to current "stepsis shoplifting" memory.
($remember_update:"add","stepsis shoplifting","took her place","took pill in office")
This removes the tags took her place, and took pill in office, from the current "stepsis shoplifting" memory.
($remember_update:"remove","stepsis shoplifting","took her place","took pill in office")
This clears a memory and removes it from the databank (used if you want to have the memory mentioned once and not brought up again, leaving room for others.)
($forget:"stepsis shoplifting")
To get memories, make use of the (find:) macro in harlowe. It is very high performance (by Harlowe standards) and is good at doing operations like this.
Gets a random stepsis memory:
(set:$memory to (twirl:...(find:_memory where _memory's npc is "stepsis")))
The twirl function is like either, except that it doesn't return an error if nothing is found, just returns 0, so you can use this to account for no memory being brought up:
(unless:$memory is 0)[]
Check specifically for shoplifting memory:
(set:$memory to (find:_memory where _memory's id is "stepsis shoplifting"))
-->
(set: $remember to (macro: str-type _id, num-type _strength, str-type _npc, str-type _media, ...str-type _tags, [
(set: _current_memory to (find: _memory where _memory's id is _id, ...$memories))
(set:_activity_locations to (dm:
"Shower","in the shower",
"Do chores","at your house",
"Do your makeup","at your house",
"Do laundry","in the laundry room",
"Watch a movie","in your living room while watching a movie",
"Workout","during your workout",
"Go to the mall","at the mall",
"Go shopping","while shopping",
"Go to the beach","at the beach",
"Find a job","at the office",
"Give sales demo","while giving a sales demo",
"Go to work","at the office",
"Hit the bar","at the bar",
"Go clubbing","at the club",
"Nothing","while hanging out",
"Night","in your bedroom"
))
(set: _tags to (a:(cond:$character's "arousal" > 7,"horny",$character's "arousal" > 3,"aroused","not horny")) + _tags)
(set: _tags to (a:(cond:$character's "alcohol status" > 2,"drunk",$character's "alcohol status" > 1,"buzzed","not drunk")) + _tags)
(if:(datanames:_activity_locations) contains $current_activity)[(set:$location to _activity_locations's $current_activity)](else:)[(set:$location to "while hanging out... you forget where")]
(if: _current_memory's length > 0)[
(put: _current_memory's 1st into _memory)
(set: _memory's strength to _strength)
(set: _memory's media to _media)
(set: _memory's day to $day)
(set: _memory's time to $time)
(set: _memory's tags to _tags)
(set: _memory's npc to _npc)
(set: _memory's location to $location)
](else:)[
(set: $memories to it + (a: (dm:
"id", _id,
"day", $day,
"time", $time,
"strength", _strength,
"media", _media,
"tags", _tags,
"npc", _npc,
"location", $location
)))
]
(out:)[]]))
(set: $remember_update to (macro: str-type _operation, str-type _id, ...str-type _tags, [
(set: _current_memory to (find: _memory where _memory's id is _id, ...$memories))
(if: _current_memory's length > 0)[
(put: _current_memory's 1st into _memory)
(if: _operation is "add")[
(set: _memory's tags to _tags + it)
](else-if: _operation is "add media")[
(set: _memory's media to (1st of _tags))
](else-if: _operation is "remove")[
(set: _memory's tags to it - _tags)
]
(unless:_memory's tags contains "non-unique")[(set: _memory's tags to (unique: ..._memory's tags))]
]
(out:)[]]))
(set: $recall to (macro: str-type _id, [
(set: _current_memory to (find: _memory where _memory's id is _id, ...$memories))
(if: _current_memory's length > 0)[
(put: _current_memory's 1st into $memory)
](else:)[(set:$memory to "none")]
(output-data:(cond:$memory is "none",false,true))]))
(set: $forget to (macro: ...str-type _params, [
(if:_params contains "remove dream" and ($recall:1st of _params))[(if:$memory's tags contains "dream")[(set:$overnight_messages to it - (a:last of ($memory's tags)))]]
(out:)[(set: $memories to (find: _memory where _memory's id is not (1st of _params), ...$memories))]]))
(set: $memory_time to (macro: dm-type _memory, [
(set:_time to (
(cond:
$day is _memory's day,
(cond:
$time is _memory's time, (twirl:"earlier","just now"),
_memory's time is 1, (twirl:"this morning","today","this morning","earlier today"),
_memory's time is 2, (twirl:"this afternoon","today","earlier today"),
_memory's time is 3, (twirl:"earlier this evening","just now","earlier this evening","tonight"),
(twirl:"today","earlier","just now")),
$day is _memory's day + 1,
(cond:
_memory's time is 1, (twirl:"yesterday"),
_memory's time is 2, (twirl:"yesterday"),
_memory's time is 3, (twirl:"last night","yesterday","yesterday","last night","last night"),
(twirl:"yesterday","last night","last night")),
$day is _memory's day + 2,
(cond:_memory's time is 3,
(twirl:"the other night","two nights ago"),
(twirl:"the day before yesterday","a couple days ago")),
$day > _memory's day + 2 and $day <= _memory's day + 7,
(cond:_memory's time is 3,
(twirl:"the other night","a few nights ago"),
(twirl:"the other day","a few days ago")),
$day > _memory's day + 7 and $day <= _memory's day + 14,
"last week",
$day > _memory's day + 14 and $day <= _memory's day + 30,
(twirl:"a couple weeks ago","a few weeks ago"),
$day > _memory's day + 30 and $day <= _memory's day + 60,
"last month",
$day > _memory's day + 60,
(twirl:"a while ago","some time back")
))
)
(output-data:_time)
]))
}{(replace:?cheat_button)[(input-box: bind $cheat_code, "X", 1, "")[(link:"Submit cheat code")(display:"enter cheat")]]}{
(unless:$pregnancy is 0)[
(set:$pregnancy's weeks to 0)
(set:$character's pregnant to "false")
(set:$character's "pregnancy known" to "false")
(if:(knows_preg:))[(display:"refresh possible activities pregnancy")]
]
(set:$preg_npc to 0)
}{
<div>($highlight:[(css:"font-size:2em")[Money & Stats]])</div>
<div>
(link-repeat:"-$10")[(display:"register cheat")($pay_money:10)]
(link-repeat:"-$100")[(display:"register cheat")($pay_money:100)]
(link-repeat:"-$1000")[(display:"register cheat")($pay_money:1000)]
(link-repeat:"-$5000")[(display:"register cheat")($pay_money:5000)]
(link-repeat:"+$10")[(display:"register cheat")($gain_money:10)]
(link-repeat:"+$100")[(display:"register cheat")($gain_money:100)]
(link-repeat:"+$1000")[(display:"register cheat")($gain_money:1000)]
(link-repeat:"+$5000")[(display:"register cheat")($gain_money:5000)]
</div>
<div>
(link-repeat:"Min Intellect")[(set_intellect:"minimum level",1)(set_intellect:1)(display:"register cheat")]
(link-repeat:"-1 Intellect")[(set_intellect:"minimum level",1)(gain_intellect:-1)(display:"register cheat")]
(link-repeat:"+1 Intellect")[(set_intellect:"maximum level",(get_intellect:"maximum bound"))(gain_intellect:1)(display:"register cheat")]
(link-repeat:"Max Intellect")[(set_intellect:"maximum level",(get_intellect:"maximum bound"))(set_intellect:(get_intellect:"maximum bound"))(display:"register cheat")]
</div>
<div>
(link-repeat:"Min Fitness")[(set_fitness:"minimum level",1)(set_fitness:1)(display:"register cheat")]
(link-repeat:"-1 Fitness")[(set_fitness:"minimum level",1)(gain_fitness:-1)(display:"register cheat")]
(link-repeat:"+1 Fitness")[(set_fitness:"maximum level",(get_fitness:"maximum bound"))(gain_fitness:1)(display:"register cheat")]
(link-repeat:"Max Fitness")[(set_fitness:"maximum level",(get_fitness:"maximum bound"))(set_fitness:(get_fitness:"maximum bound"))(display:"register cheat")]
</div>
<div>
(link-repeat:"Min Charm")[(set_charm:"minimum level",1)(set_charm:1)(display:"register cheat")]
(link-repeat:"-1 Charm")[(set_charm:"minimum level",1)(gain_charm:-1)(display:"register cheat")]
(link-repeat:"+1 Charm")[(set_charm:"maximum level",(get_charm:"maximum bound"))(gain_charm:1)(display:"register cheat")]
(link-repeat:"Max Charm")[(set_charm:"maximum level",(get_charm:"maximum bound"))(set_charm:(get_charm:"maximum bound"))(display:"register cheat")]
</div>
<div>
(link-repeat:"Min Identity")[(set:$character's "identity" to 0)(display:"register cheat")]
(link-repeat:"-10 Identity")[(set:$character's "identity" to (max:$character's "identity" - 10,0))(display:"register cheat")]
(link-repeat:"+10 Identity")[(set:$character's "identity" to (min:$character's "identity" + 10,100))(display:"register cheat")]
(link-repeat:"Max Identity")[(set:$character's "identity" to 100)(display:"register cheat")]
</div>
<div>
(link-repeat:"+10 Masculinity")[(set:$gain to 10)(display:"gain masculinity")(display:"register cheat")]
(link-repeat:"+10 Femininity")[(set:$gain to -10)(display:"gain masculinity")(display:"register cheat")]
</div>
<div>
(link-repeat:"0 Arousal")[(set:$character's "arousal" to 0)(display:"register cheat")]
(link-repeat:"-1 Arousal")[(set:$character's "arousal" to (max:$character's "arousal" - 1,0))(display:"register cheat")]
(link-repeat:"+1 Arousal")[(set:$character's "arousal" to (min:$character's "arousal" + 1,10))(display:"register cheat")]
(link-repeat:"10 Arousal")[(set:$character's "arousal" to 10)(display:"register cheat")]
</div>
<div>(link:"Give yourself a godlike cock!")[(set:$character's "cocklength" to 10)(set: $character's "cockfatness" to 10)(set: $character's "ballsize" to 10)(display:"register cheat")($play:"sound","oh my god")<mark>Oh yeah. Ohhh YEAH!!!</mark>]</div>
<div>(link:"Give yourself a tiny cock..")[(set: $character's "cocklength" to 1)(set: $character's "cockfatness" to 1)(set:$character's "ballsize" to 1)(display:"register cheat")]</div>
(nl:1)
<div>($highlight:[(css:"font-size:2em")[Gameplay]])</div>
<div>
(cycling-link: bind $minigame_skip, $minigame_skip, ...((a:"Skippable Minigames: Off","Skippable Minigames: On") - (a:$minigame_skip)))
(if:$disable_chores is 0)[(set:$disable_chores to "Chores Disabled: False")]
(cycling-link: 2bind $disable_chores, "Chores Disabled: False", "Chores Disabled: True")
(if:(is_fem:))[
(link:"Pill expires soon")[(display:"register cheat") *Your X-Change will wear off soon!* (set:$pill_timer to 2)]
]
(if:$disable_caught is 0)[(set:$disable_caught to 'Getting Caught Disabled: False')]
(cycling-link: 2bind $disable_caught, "Getting Caught Disabled: False", "Getting Caught Disabled: True")
(if:$interrupting_mode is 0)[(set:$interrupting_mode to "Minigame Interruption Style: Arrows Reverse")]
(cycling-link: 2bind $interrupting_mode, "Minigame Interruption Style: Arrows Reverse", "Minigame Interruption Style: Prevent Interaction")
(if:$curiosity_quests_active is 0)[(set:$curiosity_quests_active to "Curiosity Quests: Active")]
(cycling-link: 2bind $curiosity_quests_active, "Curiosity Quests: Active", "Curiosity Quests: Inactive")
(link:"Reset NPC scenes so they can be replayed.")[(display:"click")(set:$completed_scenes to (a:))]
</div>
(nl:1)
<div>($highlight:[(css:"font-size:2em")[Side Effects]])</div>
<div>
(link-repeat:"Clear all side effects")[(display:"register cheat")(set:$character's "side effects" to (a:))]
(if:$character's "side effects" contains "maid")[(link-repeat:"Remove 'Live-In Maid' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it - (a:"maid"))]]
(if:(is_pp:))[(link-repeat:"Remove 'People Pleaser' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it - (a:"people pleaser","people pleaser temp"))]]
(if:(is_bim:))[(link-repeat:"Remove 'Brainless Bimbo' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it - (a:"bimbo"))]]
(if:(is_exhib:))[(link:"Remove 'Exhibitionist' Side Effect")[(display:"register cheat")(set:$exhib_gain to 0)(set:$character's "side effects" to it - (a:"Exhibitionist"))(display:"exhibitionist expires")]]
(if:$character's "side effects" contains "Submissive pleasure")[(link-repeat:"Remove 'Submissive Pleasure' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it - (a:"Submissive pleasure"))]]
(if:$character's "side effects" contains "Libido overdrive")[(link-repeat:"Remove 'Libido Overdrive' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it - (a:"Libido overdrive"))]]
(if:$character's "side effects" contains "secretary orgasm")[(link-repeat:"Remove 'Softened Physique' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it - (a:"secretary orgasm"))]]
(link-repeat:"Add 'Live-In Maid' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it + (a:"maid"))]
(link-repeat:"Add 'People Pleaser' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it + (a:"people pleaser"))]
(link-repeat:"Add 'Brainless Bimbo' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it + (a:"bimbo"))]
(link-repeat:"Add 'Exhibitionist' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it + (a:"Exhibitionist"))]
(link-repeat:"Add 'Submissive Pleasure' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it + (a:"Submissive pleasure"))]
(link-repeat:"Add 'Libido Overdrive' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it + (a:"Libido overdrive"))]
(link-repeat:"Add 'Softened Physique' Side Effect")[(display:"register cheat")(set:$character's "side effects" to it + (a:"secretary orgasm"))]
</div>
(nl:1)
<div>($highlight:[(css:"font-size:2em")[Pregnancy]])</div>
<div>
(if:(knows_preg:))[
(link-repeat:"Remove Pregnancy")[
(display:"remove pregnancy")
(display:"register cheat")
]
(link:"Advance Pregnancy to Next Stage")[
(display:"register cheat")
(if:$pregnancy's weeks < 8)[*You are now 8 weeks pregnant.*
(set:$pregnancy's weeks to 8)
](else-if:$pregnancy's weeks < 12 and $pregnancy's "weeks" >= 8)[
(set:$pregnancy's weeks to 11)*You are now 11 weeks pregnant.*
]
(display:"refresh stats")
]
](else:)[
(Some cheats not shown because your MC is not pregnant... or doesn't know they're pregnant)
]
</div>
(if:$everyone_breeds is 0)[(set:$everyone_breeds to "Every NPC Mysteriously Wants to Breed You: Disabled")]
($show_tooltip:[(cycling-link: bind $everyone_breeds, $everyone_breeds, ...((a:"Every NPC Mysteriously Wants to Breed You: Disabled","Every NPC Mysteriously Wants to Breed You: Enabled") - (a:$everyone_breeds)))],[(print:"This will also increase the odds that getting spiked with a pill will be with a Breeder pill.")])
<div>
(link-repeat:"Enable lactation (6 months)")[(set:$milk_timer to 180)(set:$lactation to "Lactation Enabled: True")]
(link-repeat:"End lactation")[(set:$milk_timer to 0)]
</div>
(nl:1)
<div>($highlight:[(css:"font-size:2em")[Skillz]])</div>
<div>
[(display:"cheat change skills")]<skills|
</div>
(nl:1)
<div>($highlight:[(css:"font-size:2em")[Relationships]])</div>
<div>
(link-repeat:"-1 stepdad dom")[(display:"register cheat")(set:$relationships's stepdad's dom to it - 1)]
(link-repeat:"+1 stepdad dom")[(display:"register cheat")(set:$relationships's stepdad's dom to it + 1)]
</div>
<div>
(link-repeat:"-1 stepdad respect")[(display:"register cheat")(set:$relationships's stepdad's respect to it - 1)]
(link-repeat:"+1 stepdad respect")[(display:"register cheat")(set:$relationships's stepdad's respect to it + 1)]
</div>
<div>
(link-repeat:"-1 stepdad friendship")[(display:"register cheat")(set:$relationships's stepdad's friendship to it - 1)]
(link-repeat:"+1 stepdad friendship")[(display:"register cheat")(set:$relationships's stepdad's friendship to it + 1)]
</div>
<div>
(link-repeat:"-1 stepdad attraction")[(display:"register cheat")(set:$relationships's stepdad's attraction to it - 1)]
(link-repeat:"+1 stepdad attraction")[(display:"register cheat")(set:$relationships's stepdad's attraction to it + 1)]
</div>
<div>
(link-repeat:"-1 stepsis dom")[(display:"register cheat")(set:$relationships's stepsis's dom to it - 1)]
(link-repeat:"+1 stepsis dom")[(display:"register cheat")(set:$relationships's stepsis's dom to it + 1)]
</div>
<div>
(link-repeat:"-1 stepsis respect")[(display:"register cheat")(set:$relationships's stepsis's respect to it - 1)]
(link-repeat:"+1 stepsis respect")[(display:"register cheat")(set:$relationships's stepsis's respect to it + 1)]
</div>
<div>
(link-repeat:"-1 stepsis friendship")[(display:"register cheat")(set:$relationships's stepsis's friendship to it - 1)]
(link-repeat:"+1 stepsis friendship")[(display:"register cheat")(set:$relationships's stepsis's friendship to it + 1)]
</div>
<div>
(link-repeat:"-1 stepsis attraction")[(display:"register cheat")(set:$relationships's stepsis's attraction to it - 1)]
(link-repeat:"+1 stepsis attraction")[(display:"register cheat")(set:$relationships's stepsis's attraction to it + 1)]
</div>
(if:$bruce_deal is "true")[(link:"Break off deal with Bruce.")[(display:"clear bruce deal")(display:"register cheat")($notification:"Bruce will no longer demand sex, and any existing debt is cleared...")]]
(nl:1)
<div>($highlight:[(css:"font-size:2em")[Work Reputation]])</div>
(if:$sales_job's "status" is "not hired")[
<div>(Cheats disabled because you haven't been hired yet.)</div>
](else:)[
(if:$sales_job does not contain "sexual reputation")[(set:$sales_job's "sexual reputation" to 0)]
(if:$sales_job does not contain "sexual reputation level")[(set:$sales_job's "sexual reputation level" to 1)]
(set:_sexrep_levels to (dm:1,"Totally Professional",2,"Rumors Spreading",3,"Water Cooler Gossip",4,"You're Easy",5,"Office Slut",6,"Office Mattress"))
<div class='shadow'>Sexual Reputation Score: |rep_score_text>[(print:$sales_job's "sexual reputation")]</div>
<div>
(link-repeat:"-5 sexual reputation")[(display:"register cheat")(set:$sales_job's "sexual reputation" to (max:0, it - 5))(replace:?rep_score_text)[(print:$sales_job's "sexual reputation")]]
(link-repeat:"+5 sexual reputation")[(display:"register cheat")(set:$sales_job's "sexual reputation" to it + 5)(replace:?rep_score_text)[(print:$sales_job's "sexual reputation")]]
</div>
<div>
(link-repeat:"-10 sexual reputation")[(display:"register cheat")(set:$sales_job's "sexual reputation" to (max:0, it - 10))(replace:?rep_score_text)[(print:$sales_job's "sexual reputation")]]
(link-repeat:"+10 sexual reputation")[(display:"register cheat")(set:$sales_job's "sexual reputation" to it + 10)(replace:?rep_score_text)[(print:$sales_job's "sexual reputation")]]
</div>
<div>
(link-repeat:"-25 sexual reputation")[(display:"register cheat")(set:$sales_job's "sexual reputation" to (max:0, it - 25))(replace:?rep_score_text)[(print:$sales_job's "sexual reputation")]]
(link-repeat:"+25 sexual reputation")[(display:"register cheat")(set:$sales_job's "sexual reputation" to it + 25)(replace:?rep_score_text)[(print:$sales_job's "sexual reputation")]]
</div>
(nl:1)
<div class='shadow'>Sexual Reputation Level: |rep_level_text>[(print:$sales_job's "sexual reputation level" of _sexrep_levels)]</div>
<div>
(link-repeat:"-1 sexual reputation level")[
(display:"register cheat")
(set:$sales_job's "sexual reputation level" to (max:1, it - 1))
(replace:?rep_level_text)[(print:$sales_job's "sexual reputation level" of _sexrep_levels)]
]
(link-repeat:"+1 sexual reputation level")[
(display:"register cheat")
(set:$sales_job's "sexual reputation level" to (min:6, it + 1))
(replace:?rep_level_text)[(print:$sales_job's "sexual reputation level" of _sexrep_levels)]
]
</div>
]
(display:"office babes cheats")
}{
<script>
if (!window.harlowe){
window.harlowe = {"State": State};
}
</script>
<!-- List all values in the State variable -->
<script>
for (var key in harlowe.State.variables) {
console.log(key + ":", harlowe.State.variables[key]);
}
</script>
}{
<style type="text/css">
#decodedDataContainer {
background-color: #1e1e1e;
color: #d4d4d4;
font-family: 'Consolas', 'Courier New', monospace;
min-height: 200px;
max-height: 900px;
overflow: auto;
border: 1px solid #ccc;
margin-top: 10px;
padding: 10px;
position: relative;
text-align: left;
font-size: 14px;
}
#saveInfoContainer {
background-color: #1e1e1e;
color: #d4d4d4;
font-family: 'Consolas', 'Courier New', monospace;
min-height: 100px;
max-height: 400px;
overflow: auto;
border: 1px solid #ccc;
margin-top: 10px;
padding: 10px;
position: relative;
text-align: left;
font-size: 14px;
}
#decodedData, #saveInfo {
white-space: pre-wrap;
word-wrap: break-word;
}
.button {
position: absolute;
top: 5px;
right: 5px;
font-size: 14px;
padding: 5px 10px;
border: 1px solid #d4d4d4;
background-color: transparent;
color: #d4d4d4;
cursor: pointer;
transition: all 0.3s;
}
.button:hover {
background-color: #d4d4d4;
color: #1e1e1e;
}
.json-key { color: #9cdcfe; }
.json-string { color: #ce9178; }
.json-number { color: #b5cea8; }
.json-boolean { color: #569cd6; }
.json-null { color: #569cd6; }
</style>
<input type="file" id="saveFileInput">
<div id="saveInfoContainer">
<div id="saveInfo"></div>
</div>
<div id="decodedDataContainer">
<div id="decodedData"></div>
<button id="copyButton" class="button">Copy to Clipboard</button>
</div>
<script>
const COMPRESSION_MARKER = "COMPRESSED_";
function decodeSaveData(data) {
console.log("Initial data:", data.substring(0, 100) + "...");
let decodedData = data;
// Step 1: Check if data is compressed with LZString
if (decodedData.startsWith(COMPRESSION_MARKER)) {
console.log("LZString compression detected");
decodedData = LZString.decompressFromUTF16(decodedData.slice(COMPRESSION_MARKER.length));
console.log("After LZString decompression:", decodedData.substring(0, 100) + "...");
}
// Step 2: Try Base64 decoding
try {
const base64Decoded = atob(decodedData);
console.log("After Base64 decoding:", base64Decoded.substring(0, 100) + "...");
decodedData = base64Decoded;
} catch (e) {
console.log("Base64 decoding failed, proceeding with original data");
}
// Step 3: Remove any null characters (e.g., \u0000)
decodedData = decodedData.replace(/\u0000/g, '');
return decodedData;
}
function getSaveInfo(saveData) {
try {
let parsedData = saveData;
// Try parsing saveData as JSON if it's a string
if (typeof saveData === 'string') {
try {
parsedData = JSON.parse(saveData);
} catch (e) {
console.log("First JSON parsing attempt failed, trying to fix JSON...");
parsedData = JSON.parse(fixJSON(saveData));
}
}
let info = `Save Version: ${parsedData.version || 'Unknown'}\n`;
if (parsedData.data) {
let dataContent = parsedData.data;
if (typeof dataContent === 'string') {
// Try parsing dataContent as JSON
try {
dataContent = JSON.parse(dataContent);
} catch (e) {
console.log("Parsing dataContent failed, trying to fix JSON...");
dataContent = JSON.parse(fixJSON(dataContent));
}
}
if (Array.isArray(dataContent) && dataContent.length > 0) {
const lastState = dataContent[dataContent.length - 1];
if (lastState.variables) {
const vars = lastState.variables;
const character = vars.character || {};
info += `Character Name: ${character['female name'] || 'Unknown'}\n`;
info += `Gender: ${character.gender || 'Unknown'}\n`;
info += `Day: ${vars.day || 'Unknown'}\n`;
info += `Money: $${character.money || 'Unknown'}\n`;
info += `Charm: ${character.charm || 'Unknown'}\n`;
info += `Fitness: ${character.fitness || 'Unknown'}\n`;
info += `Intellect: ${character.intellect || 'Unknown'}\n`;
}
info += `Passages visited: ${dataContent.length}\n`;
}
}
return info;
} catch (e) {
return `Save info extracted.`;
}
}
// Function to attempt to fix common JSON issues
function fixJSON(jsonString) {
// Remove any characters after the last closing brace/bracket
let lastBrace = Math.max(jsonString.lastIndexOf('}'), jsonString.lastIndexOf(']'));
if (lastBrace !== -1) {
jsonString = jsonString.substring(0, lastBrace + 1);
}
// Remove any trailing commas
jsonString = jsonString.replace(/,\s*([\]}])/g, '$1');
// Remove any comments (/* */ and //)
jsonString = jsonString.replace(/\/\*[\s\S]*?\*\/|\/\/.*$/gm, '');
// Remove unnecessary backslashes
jsonString = jsonString.replace(/\\+"/g, '"');
// Remove escaped unicode null characters
jsonString = jsonString.replace(/\\u0000/g, '');
return jsonString;
}
function syntaxHighlight(json) {
if (typeof json != 'string') {
json = JSON.stringify(json, undefined, 2);
}
json = json
.replace(/\\u0000/g, '') // Remove unicode null characters
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>');
return json.replace(
/("(\\u[\da-fA-F]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(\.\d*)?([eE][+\-]?\d+)?)/g,
function (match) {
let cls = 'json-number';
if (/^"/.test(match)) {
if (/:$/.test(match)) {
cls = 'json-key';
} else {
cls = 'json-string';
}
} else if (/true|false/.test(match)) {
cls = 'json-boolean';
} else if (/null/.test(match)) {
cls = 'json-null';
}
return `<span class="${cls}">${match}</span>`;
}
);
}
document.getElementById('saveFileInput').addEventListener('change', function(event) {
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = function(e) {
const fileContent = e.target.result;
let saveData;
try {
// Extract JSON array from the file content
const jsonArrayMatch = fileContent.match(/\[\s*\{[\s\S]*\}\s*\]/);
if (jsonArrayMatch) {
let jsonString = jsonArrayMatch[0];
saveData = JSON.parse(fixJSON(jsonString));
} else {
// If no match, try parsing the entire fileContent as JSON
saveData = JSON.parse(fixJSON(fileContent));
}
} catch (error) {
console.error("Error parsing file content:", error);
document.getElementById('decodedData').innerText = "Error: Unable to parse save file.\n\n" + error.message;
return;
}
if (Array.isArray(saveData) && saveData.length > 0 && saveData[0].data) {
const decodedData = decodeSaveData(saveData[0].data);
// For syntax highlighting, ensure decodedData is a string
let displayData = typeof decodedData === 'string' ? decodedData : JSON.stringify(decodedData, null, 2);
// Remove unnecessary escape characters
displayData = displayData.replace(/\\+"/g, '"').replace(/\\\\/g, '\\').replace(/\\u0000/g, '');
document.getElementById('saveInfo').innerText = getSaveInfo(decodedData);
document.getElementById('decodedData').innerHTML = syntaxHighlight(displayData);
} else {
document.getElementById('decodedData').innerText = "Error: Invalid save file structure.";
}
};
reader.readAsText(file);
});
document.getElementById('copyButton').addEventListener('click', function() {
const textArea = document.createElement('textarea');
textArea.value = document.getElementById('decodedData').innerText;
document.body.appendChild(textArea);
textArea.select();
document.execCommand('copy');
document.body.removeChild(textArea);
alert('Copied to clipboard');
});
</script>
}{
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_orgasm_control:"minimum level", 1)(gain_orgasm_control:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Orgasm Control (Current Level: (print:(get_orgasm_control:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_orgasm_control:"maximum level", (get_orgasm_control:"maximum bound"))(gain_orgasm_control:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_arousal_denial:"minimum level", 1)(gain_arousal_denial:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Willpower (Current Level: (print:(get_arousal_denial:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_arousal_denial:"maximum level", (get_arousal_denial:"maximum bound"))(gain_arousal_denial:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_blowjob:"minimum level", 1)(gain_blowjob:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
BJ Skill (Current Level: (print:(get_blowjob:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_blowjob:"maximum level", (get_blowjob:"maximum bound"))(gain_blowjob:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_titfuck:"minimum level", 1)(gain_titfuck:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Tittyfucking Skill (Current Level: (print:(get_titfuck:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_titfuck:"maximum level", (get_titfuck:"maximum bound"))(gain_titfuck:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_handjob:"minimum level", 1)(gain_handjob:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Handjob Skill (Current Level: (print:(get_handjob:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_handjob:"maximum level", (get_handjob:"maximum bound"))(gain_handjob:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_pleasuring_girls:"minimum level", 1)(gain_pleasuring_girls:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Pleasuring Women Skill (Current Level: (print:(get_pleasuring_girls:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_pleasuring_girls:"maximum level", (get_pleasuring_girls:"maximum bound"))(gain_pleasuring_girls:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_dom_sex:"minimum level", 1)(gain_dom_sex:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Active Sex Skill (Current Level: (print:(get_dom_sex:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_dom_sex:"maximum level", (get_dom_sex:"maximum bound"))(gain_dom_sex:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_sub_sex:"minimum level", 1)(gain_sub_sex:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Passive Sex Skill (Current Level: (print:(get_sub_sex:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_sub_sex:"maximum level", (get_sub_sex:"maximum bound"))(gain_sub_sex:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_gag_reflex:"minimum level", 1)(gain_gag_reflex:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Gag Reflex (Current Level: (print:(get_gag_reflex:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_gag_reflex:"maximum level", (get_gag_reflex:"maximum bound"))(gain_gag_reflex:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_female_masturbation:"minimum level", 1)(gain_female_masturbation:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Female Masturbation Skill (Current Level: (print:(get_female_masturbation:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_female_masturbation:"maximum level", (get_female_masturbation:"maximum bound"))(gain_female_masturbation:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_male_masturbation:"minimum level", 1)(gain_male_masturbation:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Male Masturbation Skill (Current Level: (print:(get_male_masturbation:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_male_masturbation:"maximum level", (get_male_masturbation:"maximum bound"))(gain_male_masturbation:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_sexy_dancing:"minimum level", 1)(gain_sexy_dancing:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Sexy Dancing Skill (Current Level: (print:(get_sexy_dancing:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_sexy_dancing:"maximum level", (get_sexy_dancing:"maximum bound"))(gain_sexy_dancing:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_preg:"minimum level", 1)(gain_preg:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Pregnancy Skill (Current Level: (print:(get_preg:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_preg:"maximum level", (get_preg:"maximum bound"))(gain_preg:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
<div>
(link-repeat:"-1 ")[(set:$cheated to "yes")
(set_milking:"minimum level", 1)(gain_milking:-1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
Milking Skill (Current Level: (print:(get_milking:"level")))
(link-repeat:" +1")[(set:$cheated to "yes")
(set_milking:"maximum level", (get_milking:"maximum bound"))(gain_milking:1)
($play:"sound","skill up")(replace:?skills)[(display:"cheat change skills")]]
</div>
(link-repeat:"Decrease All Skills")[
(set:$cheated to "yes")
(set_orgasm_control:"minimum level", 1)(gain_orgasm_control:-1)
(set_arousal_denial:"minimum level", 1)(gain_arousal_denial:-1)
(set_blowjob:"minimum level", 1)(gain_blowjob:-1)
(set_titfuck:"minimum level", 1)(gain_titfuck:-1)
(set_handjob:"minimum level", 1)(gain_handjob:-1)
(set_pleasuring_girls:"minimum level", 1)(gain_pleasuring_girls:-1)
(set_dom_sex:"minimum level", 1)(gain_dom_sex:-1)
(set_sub_sex:"minimum level", 1)(gain_sub_sex:-1)
(set_gag_reflex:"minimum level", 1)(gain_gag_reflex:-1)
(set_female_masturbation:"minimum level", 1)(gain_female_masturbation:-1)
(set_male_masturbation:"minimum level", 1)(gain_male_masturbation:-1)
(set_sexy_dancing:"minimum level", 1)(gain_sexy_dancing:-1)
(set_preg:"minimum level", 1)(gain_preg:-1)
(set_milking:"minimum level", 1)(gain_milking:-1)
($play:"sound","skill up")
(replace:?skills)[(display:"cheat change skills")]
]
(link-repeat:"Increase All Skills")[
(set:$cheated to "yes")
(set_orgasm_control:"maximum level", (get_orgasm_control:"maximum bound"))(gain_orgasm_control:1)
(set_arousal_denial:"maximum level", (get_arousal_denial:"maximum bound"))(gain_arousal_denial:1)
(set_blowjob:"maximum level", (get_blowjob:"maximum bound"))(gain_blowjob:1)
(set_titfuck:"maximum level", (get_titfuck:"maximum bound"))(gain_titfuck:1)
(set_handjob:"maximum level", (get_handjob:"maximum bound"))(gain_handjob:1)
(set_pleasuring_girls:"maximum level", (get_pleasuring_girls:"maximum bound"))(gain_pleasuring_girls:1)
(set_dom_sex:"maximum level", (get_dom_sex:"maximum bound"))(gain_dom_sex:1)
(set_sub_sex:"maximum level", (get_sub_sex:"maximum bound"))(gain_sub_sex:1)
(set_gag_reflex:"maximum level", (get_gag_reflex:"maximum bound"))(gain_gag_reflex:1)
(set_female_masturbation:"maximum level", (get_female_masturbation:"maximum bound"))(gain_female_masturbation:1)
(set_male_masturbation:"maximum level", (get_male_masturbation:"maximum bound"))(gain_male_masturbation:1)
(set_sexy_dancing:"maximum level", (get_sexy_dancing:"maximum bound"))(gain_sexy_dancing:1)
(set_preg:"maximum level", (get_preg:"maximum bound"))(gain_preg:1)
(set_milking:"maximum level", (get_milking:"maximum bound"))(gain_milking:1)
($play:"sound","skill up")
(replace:?skills)[(display:"cheat change skills")]
]
}{
(set:$cheated to "yes")(display:"check buffs")(display:"refresh stats")(display:"click")(display:"score multiplier recalc")
}{
(set: _storage_cycling_link to (macro: str-type _variable, (a:...str)-type _options, [
(set: _variable_name to (str-replaced:"$","",_variable))
(set: _default to 1st of _options)
(print: "(if:" + _variable + " is 0)[(set:" + _variable + " to (get_storage:'local','" + _variable_name + "', '" + _default + "'))]")
(out:)[{
(hook: _variable_name)[
(print: '(link:' + _variable + ')[
(set: ' + _variable + ' to 2nd of (rotated-to: where it is ' + _variable + ', ..._options))
(set_storage: "local","' + _variable_name + '", ' + _variable + ')
(rerun: (hooks-named: "' + _variable_name + '"))
]')
]
}]
]))
(set: _setting_button to (macro: str-type _variable, (a:...str)-type _options, str-type _tooltip_text, [
(out:)[{
(set: _content to [(_storage_cycling_link: _variable, _options)])
(set: _tooltip to [_tooltip_text])
<div class='flex'>($show_tooltip:_content,_tooltip)</div>
}]
]))
(set: _temptagged to (altered: via its name, ...(passages: where its tags contains "mod_options")))
(if: _temptagged's length is not 0)[
<div class='options'>Mod Options:</div>
(for: each _passage, ..._temptagged)[<div class='options'>(display:_passage)</div>]
]
(nl:1)
<div class='options'><div>Audio settings:</div>
<div class='flex-container'>
(display:"audio button")
(_setting_button:
"$male_vo",
(a:"Male NPC Voiceovers: Enabled","Male NPC Voiceovers: Disabled"),
"Some male NPCs have voiced lines. Setting this to disabled will mostly disable them - note that it will not remove them from sex noises, etc. Note that if audio is muted, voices are muted too.")
(_setting_button:
"$female_vo",
(a:"Female NPC Voiceovers: Enabled","Female NPC Voiceovers: Disabled"),
"Some female NPCs have voiced lines. Setting this to disabled will mostly disable them - note that it will not remove them from sex noises, etc. Note that if audio is muted, voices are muted too.")
<div class="break"></div>
</div>
(nl:1)
<div>Minigame settings:</div>
<div class='flex-container'>
(_setting_button:
"$babecock",
(a:"Masculinity Minigame: Disabled","Masculinity Minigame: Enabled"),
"Toggles a minigame to determine how severe the effects of losing masculinity are on your identity - it’s a memory game that involves matching pictures of hot girls with pictures of cocks.")
(_setting_button:
"$mobile_mode",
(a:"Real Time Minigames: Enabled","Real Time Minigames: Disabled"),
"Mobile browsers may struggle with the real time minigames. If you disable minigames, you will get the option to only resolve the minigame outcome by a skill check dice roll. However, the dice roll will have an increased probability compared to the usual, and you will not receive any XP penalties for doing dice rolls.
You may also want this as a pure gameplay style choice, if you don't want to be pressing arrow keys and stuff all the time. We're all different!
Does not affect any minigame that does not already have a dice roll option (for example, the masculinity minigame).")
(_setting_button:
"$quicktime_difficulty",
(a:"Quicktime Difficulty: Normal","Quicktime Difficulty: Hardcore","Quicktime Difficulty: Easy"),
"This toggle makes some minigames more difficult, or easier - you’ll earn more XP at higher difficulties!")
(_setting_button:
"$interrupting_mode",
(a:"Minigame Interruption Style: Arrows Reverse", "Minigame Interruption Style: Prevent Interaction"),
"When playing the 'keep the bar in the middle' minigame (often used when resisting certain effects, orgasms, or moaning), sometimes you will get interrupted by in-scene text. 'Arrows reverse' means that while the text is shown, your controls will get flipped, while 'Prevent interaction' means you simply cannot do anything while the text is shown.")
(_setting_button:
"$tetris_buttons",
(a:"Tetris: Up drops, Space rotates","Tetris: Up rotates, Space drops"),
"Allows you to set your preference for how the buttons for the tetris minigames behave.")
</div>
(nl:1)
<div>Gameplay settings:</div>
<div class='flex-container'>
(_setting_button:
"$achievement_notifications",
(a:"Achievement Notifications: Enabled", "Achievement Notifications: Disabled", "Achievement Notifications: Silent"),
"Toggling these off will disable the floating banner notifications. Additionally, you can make them silent and disable the cute little dingle they make.")
<div class="break"></div>
(_setting_button:
"$drugging",
(a:"Non-con: Enabled","Non-con: Disabled"),
"Leaving this option disabled will prevent the main character from ever being transformed against their will. Enabling it will enable Non-con which may alter the main character’s mind, so please leave this disabled if you would prefer not to see non-consensual content of that nature. Please note that this setting isn't perfect but I'm trying to put as much relevant content behind this setting for those who aren't interested in that kind of content.")
(_setting_button:
"$makeup_debuffs",
(a:"Makeup debuffs: Enabled","Makeup debuffs: Disabled"),
"By default, very feminine characters will start experiencing small charm debuffs if they appear in public without makeup. Turning this off will still allow you to get buffs from makeup, but you won't get any debuffs from NOT wearing it.")
(_setting_button:
"$safeword",
(a:"Safeword: Disabled","Safeword: Enabled"),
"Setting this to Enabled will allow you to avoid unwanted sex encounters. Look for an option with the symbol 🚫")
(_setting_button:
"$activity_icons",
(a:"Activity Icons: Enabled","Activity Icons: Disabled"),
"Common activities will be represented as emojis if this is enabled. Certain important activities may still be represented as text.")
(_setting_button:
"$autosave_timer_setting_text",
(a:"Autosave Interval: 1 Day","Autosave Interval: 3 Days","Autosave Interval: 5 Days","Autosave Interval: 10 Days","Autosave: Disabled"),
"Allows you to change how often the Autosave slot is overwritten. This can be disabled. Autosaves will not begin until Day 5, regardless of your interval setting.")
(_setting_button:
"$set_cock_size",
(a:"Set Cock Size: Automatic","Set Cock Size: Manual"),
"'Automatic' will assign your cock size based on your personality type and starting masculinity. 'Manual' will let you adjust your cock size before starting the game fully.")
</div>
(nl:1)
<div>Pregnancy settings:</div>
<div class='flex-container'>
(_setting_button:
"$pregnancy_enabled",
(a:"Pregnancy Enabled: True","Pregnancy Enabled: False"),
"Setting this to disabled will set pregnancy chance to 0%. It will not remove currently active pregnancies however.")
(_setting_button:
"$lactation",
(a:"Lactation Enabled: True","Lactation Enabled: False"),
"Setting this to enabled will enable the default behavior, of 6 months of lactation post pregnancy. You’ll need to milk yourself every few days during this time, using up an evening time-slot. But on the plus side, you can sell your milk and make some money!")
(_setting_button:
"$pregnancy_permanent",
(a:"Pregnancy Permanence: Disabled","Pregnancy Permanence: Enabled"),
"Enabling this will make it so pregnancy will make your current transformation permanent. This is correct behavior in X-Change lore but may not result in the most fun gameplay... your choice!")
(_setting_button:
"$pregnancy_notification",
(a:"Impregnation Notifications: Disabled","Impregnation Notifications: Enabled"),
"Enabling this will give you (the player) notifications when the main character gets pregnant - although your character won’t know immediately. It’s fun, but not very realistic, so set according to your own preference. If disabled, you’ll find out when your character does.")
</div>(nl:1)<div>Random NPC settings:</div>
(_storage_cycling_link: "$min_npc_age", (altered: via "Min Age: " + (str:it), ...(range:18,29)))
(_storage_cycling_link: "$max_npc_age", (altered: via "Max Age: " + (str:it), ...(reversed:...(range:35,55))))
</div>(nl:1)(if:$character contains "side effects")[
<div>Exhibitionism settings:</div>
<div class='flex-container'>
<div class='flex-container'>(_setting_button:
"$exhib_setting_location_stuck",
(a:"Sometimes Prevent Exit: Enabled","Sometimes Prevent Exit: Disabled"),
"If enabled, at lower Idenity or Masculinity and high Arousal, you will sometimes be prevented from exiting an area until you deal with your Arousal somehow.")
(_setting_button:
"$exhib_setting_scaled_req",
(a:"Clothing Requirements Scale More: Disabled","Clothing Requirements Scales More: Enabled"),
"If enabled, the player's clothes will progressively need to be even sluttier to keep from feeling Uncomfortable as Identity and Masculinity go down. Credit to fiftysheep on LoversLab for the code!")</div></div>
(_setting_button:
"$exhib_setting_masturbation",
(a:"Public Masturbation Required: Enabled","Public Masturbation Required: Disabled"),
"If enabled, at lower Identity or Masculinity, you will not be able to orgasm from private masturbation at home, and will need release through different means.")
</div>(nl:1)]
<div class='options'>
<label for="color-dropdown">Color palette:</label>
<div>
<select id="color-dropdown"></select>
</div>
<div id="reactive-options" style="display: none; margin-top: 10px;">
Your palette choices will update based on your character's current gender.(nl:1)
<label for="reactive-male-dropdown">Palette while male:</label>
<select id="reactive-male-dropdown"></select>(nl:1)
<label for="reactive-female-dropdown" style="margin-left: 10px;">Palette while female:</label>
<select id="reactive-female-dropdown"></select>
</div>
</div>
<script>
function updateDropdown() {
const colorDropdown = document.getElementById('color-dropdown');
const reactiveOptions = document.getElementById('reactive-options');
const reactiveMaleDropdown = document.getElementById('reactive-male-dropdown');
const reactiveFemaleDropdown = document.getElementById('reactive-female-dropdown');
if (colorDropdown) {
// Clear existing options
colorDropdown.innerHTML = '';
// Add Cerise as the first option
const ceriseOption = document.createElement('option');
ceriseOption.value = 'cerise';
ceriseOption.textContent = 'Cerise (Default)';
colorDropdown.appendChild(ceriseOption);
// Add Reactive as the second option
const reactiveOption = document.createElement('option');
reactiveOption.value = 'reactive';
reactiveOption.textContent = 'Reactive';
colorDropdown.appendChild(reactiveOption);
// Add other palettes
Object.keys(window.XCLPaletteManager.PALETTES).forEach(paletteName => {
if (paletteName !== 'cerise' && paletteName !== 'reactive' &&
paletteName !== 'reactive_female' && paletteName !== 'reactive_male') {
const option = document.createElement('option');
option.value = paletteName;
option.textContent = paletteName.charAt(0).toUpperCase() + paletteName.slice(1);
colorDropdown.appendChild(option);
}
});
// Set the current palette
const currentPalette = Harlowe.variable("$palette");
if (currentPalette && window.XCLPaletteManager.PALETTES.hasOwnProperty(currentPalette)) {
colorDropdown.value = currentPalette;
} else {
colorDropdown.value = 'cerise'; // Default to cerise if no valid palette is set
}
// Populate reactive dropdowns
const reactiveDropdowns = [reactiveMaleDropdown, reactiveFemaleDropdown];
reactiveDropdowns.forEach(dropdown => {
dropdown.innerHTML = '';
Object.keys(window.XCLPaletteManager.PALETTES).forEach(paletteName => {
if (paletteName !== 'reactive' && paletteName !== 'reactive_female' && paletteName !== 'reactive_male') {
const option = document.createElement('option');
option.value = paletteName;
option.textContent = paletteName.charAt(0).toUpperCase() + paletteName.slice(1);
dropdown.appendChild(option);
}
});
});
// Set initial values for reactive dropdowns
const storedMalePalette = window.XCLPaletteManager.PALETTES.reactive_male;
const storedFemalePalette = window.XCLPaletteManager.PALETTES.reactive_female;
reactiveMaleDropdown.value = window.XCLPaletteManager.PALETTES.hasOwnProperty(storedMalePalette) ? storedMalePalette : 'Northwest Passage';
reactiveFemaleDropdown.value = window.XCLPaletteManager.PALETTES.hasOwnProperty(storedFemalePalette) ? storedFemalePalette : 'cerise';
// Add event listener for main dropdown changes
colorDropdown.addEventListener('change', function(event) {
const selectedPalette = event.target.value;
if (selectedPalette === 'reactive') {
reactiveOptions.style.display = 'block';
updateReactivePalette();
} else {
reactiveOptions.style.display = 'none';
window.XCLPaletteManager.updatePalette(selectedPalette);
}
});
// Add event listeners for reactive dropdown changes
reactiveMaleDropdown.addEventListener('change', updateReactivePalette);
reactiveFemaleDropdown.addEventListener('change', updateReactivePalette);
// Show/hide reactive options based on initial selection
reactiveOptions.style.display = colorDropdown.value === 'reactive' ? 'block' : 'none';
}
}
function updateReactivePalette() {
const malePalette = document.getElementById('reactive-male-dropdown').value;
const femalePalette = document.getElementById('reactive-female-dropdown').value;
// Update reactive_male and reactive_female palettes
window.XCLPaletteManager.PALETTES.reactive_male = malePalette;
window.XCLPaletteManager.PALETTES.reactive_female = femalePalette;
// Update the current palette
window.XCLPaletteManager.updatePalette('reactive');
}
// Call this function to update the dropdown
updateDropdown();
// Initial update of the palette
const currentPalette = Harlowe.variable("$palette");
if (currentPalette) {
window.XCLPaletteManager.updatePalette(currentPalette);
}
</script>
</div>
}{
(if:$mobile_mode is "Real Time Minigames: Disabled")[(set:$percentage_chance to (min:95,(floor:($percentage_chance + 100) / 2)))]
}(display:"Game Version")[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Menu</span>]]
(display:"__modbutton__")
(link:"Compulsions")[(display:"click")($cs:"view compulsions")](link:"Achievements")[(display:"click")($notification:(twirl:"Loading achievements...","What have you achieved recently?"))(live:0.1s)[($cs:"achievements-engine view achievements")(stop:)]](link:"Sex Skills")[(display:"click")($cs:"view sex skills")](link:"Sex Stats")[(display:"click")($cs:"view sex stats")](link:"Stats")[(display:"click")($cs:"view other stats")](link:"Relationships")[(display:"click")($cs:"view relationship settings")](link:"Game Settings")[(display:"click")($cs:"view game settings")](link:"Credits")[(display:"click")
(display:"Credits")](display:"title screen option")
(link:"Back")[(set:$next to "day")(display:"next")]</div>]<screen|</div><div class='top_right' data-simplebar>[(display:"save game button")]<right_screen|</div>{<div class='options'><span class='borderless'>(link:"Return to title screen")[{(display:"click")Are you sure you want to return to the title screen?(set:$muted to (cond:$audio_toggle is "🔇","muted=''","onloadstart='this.volume=window.getVideoVolume?.()??1'"))
(link:"Yes")[(restart:)]}]</span></div>}{<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Your Compulsions</span>]]</div>
(if: length of $action_point_mods is 0)[
<span class='shadow'>You don't feel any particular compulsions at the moment. Perhaps you need to experience more of life's... unique situations.</span>
](else:)[
(for: each _mod, ...$action_point_mods)[
(if:_mod contains "removal criteria")[($show_tooltip:[{<div class='compulsion'>
<div class='description'>
($notification_still:_mod's description)
(if: _mod's "times triggered" >= _mod's "addiction threshold")[
($notification_still:"⚠️ This has become a full-blown addiction ⚠️")
]
(if:_mod contains "effective cooldown")[($notification_still:"You want to do this at least every " + (text:_mod's "effective cooldown") + " days.")]
(if: _mod's "last day" is not -1)[
($notification_still:"Last indulged: " + (cond:($day - _mod's "last day") is 1,"Yesterday.",(text:($day - _mod's "last day")) + " days ago."))
](else:)[
($notification_still:"You haven't acted on this inclination yet.")
]
</div>
</div>}],[(print:_mod's "removal criteria")])](else:)[{<div class='compulsion'>
<div class='description'>
($notification_still:_mod's description)
(if: _mod's "times triggered" >= _mod's "addiction threshold")[
($notification_still:"⚠️ This has become a full-blown addiction ⚠️")
]
(if:_mod contains "effective cooldown")[($notification_still:"You want to do this at least every " + (text:_mod's "effective cooldown") + " days.")]
(if: _mod's "last day" is not -1)[
($notification_still:"Last indulged: " + (text:($day - _mod's "last day")) + " days ago.")
](else:)[
($notification_still:"You haven't acted on this inclination yet.")
]
</div>
</div>}]
]
]
<div class='current-state'>(nl:2)
<span class='shadow'>Current cumulative compulsion effects:</span>(nl:1)
Action Point Regen: (print: $action_point_regen) per day(nl:1)
Max Action Points: (print: $max_action_points)(nl:1)
(display:"display xp modifiers")
</div>
<div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>}(display:"update palette")(display:"Game Version")<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Game Settings</span>]]</div><div class='options'>(display:"gameplay toggles")</div>
(checkbox-fullscreen: "Fullscreen mode")
<div class='options'>(link:"Configure Sex Toy Interface")[(display:"click")($cs:"buttplug config")]</div><div class='options'>(link:"Save File Decoder")[(display:"cheat save file decoder")]
</div>
<span class='borderless'>(link:"📟")[<div class='options'>[(display:"cheats")</div>]]</span><div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>A huge thank you to @togashikokujin, who has worked tirelessly to rewrite and restructure much of the game's code. He's the reason why the various minigames aren't laggy anymore, and why the game overall is running much smoother, and using less memory than it used to. He converted the random NPCs, and the database of ~1000 outfits to pure javascript instead of Twine, as well as helping to get the whole game into source control, modernizing the codebase. Thanks to him, X-Change Life's codebase is constantly improving from the inside out, and much more future-proof.
A sincere thanks to XCL's modders:
@Ebiora, who made a SLEW of great improvements to the outfits system, singlehandedly integrated the Insta-strip pill as a product in the sales job, wrote the "Curiosity Quests" mod which is now incorporated into the core game, helped write code to improve the in-game cheats, and helped create a massive number of new outfits for the game. All on top of being a mod for the server!
@raivoasdf, who wrote the "EdgeCum" and "Can't Hold It" mods, which have now been integrated into the game.
@McLurkington, who wrote the "Dance Harder" and "Performance Review" mods, which have now been integrated into the game.
@Chloe, for fixing TONS OF BUGS and improving / streamlining many aspects of the game
@dgamesfan, who wrote the "People Pleaser+" mod, which has now been integrated into the game.
@badrabbit, who wrote the "Bar Girl Framework" and "Call Pill" Mod, which have both been built into the game.
@Allyne29380, who made a mod to show fitness and intellect buffs as a tooltip, which has now been integrated into the game.
@datdude69, who wrote the following mods now integrated into the main game: "Achievements" (!!!), "Fitness Gains for Rough Sex", "Dynapill Quicksales Revamped", "Paradise Mall Potion Shop", "Better Spike Mechanics", "Office Babes", and has contributed much new office and workplace code to make the office gameplay more balanced and fun!
@UsagiTripleSix, who wrote the "turn ons" mods that have formed the basis for the female NPC system, the People Pleaser Plus mod, improved male arousal mechanics, as well as performing very valuable research into the final end goal of AI: boobs.
@salad, who added E-Stim stupport and helped overhaul the sex toy integration and get it working properly.
@portanari, for converting my heinous "wait while being fucked" invisible timers to an actual progress bar!
@Curio, for overhauling and adding to the the in-game outfits - a HUGE amount of work, a huge number of improvements to the base outfits in the game.
@notapotato, for the amazing work with Curio on Jia's new outfit set, a lot of painstaking editing was involved!
@tabletopjoe, for fixing and restoring the "no bj" Bruce content - thanks so much!
@sorrow and @Apologetic for contributing a great mod that lets you contribute household expenses during other timeslots, rather than just at night!
@sorrow, @Chuck and @Pudge for their work on the Multi-Character Framework (MCF), which is now integrated into the game, to allow more easily adding additional characters.
@Shadowspawn, for the Stripper Job mod, which is now integrated into the base game!
And thanks to our Discord members:
@stochastic, who basically just keeps me sane every day on Discord with his wry remarks (and also author of the NPC pregnancy mod, now integrated into the game)
@Mano2, who submitted a huge number of new outfits
@MightyOnion, who has also contributed a vast number of outfits.
@Goctionni, who has provided a lot of valuable technical advice and is helping to future-proof the codebase
A big thank you to Bamboozler, for his wonderful work on the New-U machine's descriptions! He's written a lot of cool TG-themed stories, which you can check out on <a href="https://chokerguy.wordpress.com">his website</a>. I'm a particular fan of "Advertising Deal".
Thank you to Crown Cosmo, for their wonderful game art. Check out <a href="https://twitter.com/CrownCosmo">their Twitter</a> for TG comics and more.
Thank you to HiEv, for developing the save export system for X-Change Life, which was a first for Twine Harlowe games. <a href="https://www.patreon.com/HiEv">Support HiEv on Patreon</a>.
A shoutout to some others, who have contributed writing for various portions of the game: Locked Goon, Bethany McQuillan, Ry#6801, Sophia Castillo, Betty Blake. If you contributed to the game and want to be mentioned, please do reach out on Discord!
And of course I could not do this without the support of my Subscribers on Subscribestar! <3(display:"Game Version")<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Skills</span>]]</div>
($show_tooltip:[(css:"font-size:3vmin")[😜(if:(is_male:))[🍆](else:)[🍑]💦]
<span class='shadow'>Orgasm control level: (print:$orgasm_control's level)</span>],[(twirl:"How long can you last?","How well you can keep yourself from cumming.","How good you are at holding off those pesky orgasms.")])
(set:$next_level to $orgasm_control's level + 1)(unless:$orgasm_control's level is 10)[(meter: bind $orgasm_control's xp, $orgasm_control's level of $orgasm_control's "xp to level", "X", (text:$orgasm_control's level of $orgasm_control's "xp to level" - $orgasm_control's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]
($show_tooltip:[(css:"font-size:3vmin")[💖😈🥺]
<span class='shadow'>Arousal denial level: (print:$arousal_denial's level)</span>],[(twirl:"When you're turned on, how good are you at saying no to your body?","Are you good at denying your sexual instincts?","How well can you say no to your urges?")])
(set:$next_level to $arousal_denial's level + 1)(unless:$arousal_denial's level is 10)[(meter: bind $arousal_denial's xp, $arousal_denial's level of $arousal_denial's "xp to level", "X", (text:$arousal_denial's level of $arousal_denial's "xp to level" - $arousal_denial's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]](unless:$blowjob_talent's xp is 0)[
($show_tooltip:[(css:"font-size:3.5vw")[(if:$character's "race" is "asian")[🧎🏻♀️](else-if:$character's "race" is "black")[🧎🏾♀️](else-if:$character's "race" is "latin")[🧎🏽♀️](else-if:$character's "race" is "white")[🧎🏼♀️]](css:"font-size:3vmin")[🍆👅💦]
<span class='shadow'>Blowjob skill level: (print:$blowjob_talent's level)</span>],[(twirl:"When you're a girl, how talented is that mouth of yours?","How good are you, down on your knees?")])
(set:$next_level to $blowjob_talent's level + 1)(unless:$blowjob_talent's level is 10)[(meter: bind $blowjob_talent's xp, $blowjob_talent's level of $blowjob_talent's "xp to level", "X", (text:$blowjob_talent's level of $blowjob_talent's "xp to level" - $blowjob_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]](unless:$handjob_talent's xp is 0)[
($show_tooltip:[(css:"font-size:3.5vw")[(if:$character's "race" is "asian")[🧎🏻♀️✊🏻](else-if:$character's "race" is "black")[🧎🏾♀️✊🏾](else-if:$character's "race" is "latin")[🧎🏽♀️✊🏽](else-if:$character's "race" is "white")[🧎🏼♀️✊🏼]](css:"font-size:3vmin")[🍆💦]
<span class='shadow'>Handjob skill level: (print:$handjob_talent's level)</span>],[(twirl:"When you're a girl, how talented are you with those hands?","How good are you, jerking guys off?")])
(set:$next_level to $handjob_talent's level + 1)(unless:$handjob_talent's level is 10)[(meter: bind $handjob_talent's xp, $handjob_talent's level of $handjob_talent's "xp to level", "X", (text:$handjob_talent's level of $handjob_talent's "xp to level" - $handjob_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]](unless:$titfuck_talent's xp is 0)[
($show_tooltip:[(css:"font-size:3.5vw")[(if:$character's "race" is "asian")[🧎🏻♀️](else-if:$character's "race" is "black")[🧎🏾♀️](else-if:$character's "race" is "latin")[🧎🏽♀️](else-if:$character's "race" is "white")[🧎🏼♀️]](css:"font-size:3vmin")[🍈🍆🍈]
<span class='shadow'>Titfuck skill level: (print:$titfuck_talent's level)</span>],[(twirl:"The thing where you use your tits to please a guy's cock.","How good are you at pleasing a guy with your tits?")])
(set:$next_level to $titfuck_talent's level + 1)(unless:$titfuck_talent's level is 10)[(meter: bind $titfuck_talent's xp, $titfuck_talent's level of $titfuck_talent's "xp to level", "X", (text:$titfuck_talent's level of $titfuck_talent's "xp to level" - $titfuck_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]]
($show_tooltip:[(css:"font-size:3vmin")[👅🍑💦]
<span class='shadow'>Skill pleasuring women: (print:$pleasuring_girls_talent's level)</span>],[(twirl:"Can you make her back arch?","Do you know how pussies work, well enough to make them cum?")])
(set:$next_level to $pleasuring_girls_talent's level + 1)(unless:$pleasuring_girls_talent's level is 10)[(meter: bind $pleasuring_girls_talent's xp, $pleasuring_girls_talent's level of $pleasuring_girls_talent's "xp to level", "X", (text:$pleasuring_girls_talent's level of $pleasuring_girls_talent's "xp to level" - $pleasuring_girls_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]
($show_tooltip:[(css:"font-size:3vmin")[🔥(if:$character's "race" is "asian")[👉🏻👌🏻](else-if:$character's "race" is "black")[👉🏾👌🏾](else-if:$character's "race" is "latin")[👉🏽👌🏽](else-if:$character's "race" is "white")[👉🏼👌🏼]]
<span class='shadow'>Active sex skill: (print:$dom_sex_talent's level)</span>],[How good at you in the sack, when you're in charge of the action?])
(set:$next_level to $dom_sex_talent's level + 1)(unless:$dom_sex_talent's level is 10)[(meter: bind $dom_sex_talent's xp, $dom_sex_talent's level of $dom_sex_talent's "xp to level", "X", (text:$dom_sex_talent's level of $dom_sex_talent's "xp to level" - $dom_sex_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]
($show_tooltip:[(css:"font-size:3vmin")[(if:$character's "race" is "asian")[🙇🏻♀️👉🏻👌🏻](else-if:$character's "race" is "black")[🙇🏾♀️👉🏾👌🏾](else-if:$character's "race" is "latin")[🙇🏽♀️👉🏽👌🏽](else-if:$character's "race" is "white")[🙇🏼♀️👉🏼👌🏼]]
<span class='shadow'>Passive sex skill: (print:$sub_sex_talent's level)</span>],[Are you good at "going with the flow"?])
(set:$next_level to $sub_sex_talent's level + 1)(unless:$sub_sex_talent's level is 10)[(meter: bind $sub_sex_talent's xp, $sub_sex_talent's level of $sub_sex_talent's "xp to level", "X", (text:$sub_sex_talent's level of $sub_sex_talent's "xp to level" - $sub_sex_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]](unless:$gag_reflex's xp is 0)[
($show_tooltip:[🍆💦😨🤢
<span class='shadow'>Gag reflex training: (print:$gag_reflex's level)</span>],[What can you handle?])
(set:$next_level to $gag_reflex's level + 1)(unless:$gag_reflex's level is 10)[(meter: bind $gag_reflex's xp, $gag_reflex's level of $gag_reflex's "xp to level", "X", (text:$gag_reflex's level of $gag_reflex's "xp to level" - $gag_reflex's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]](unless:$sexy_dancing_talent's xp is 0)[
($show_tooltip:[(css:"font-size:3.5vw")[(if:$character's "race" is "asian")[💃🏻](else-if:$character's "race" is "black")[💃🏾](else-if:$character's "race" is "latin")[💃🏽](else-if:$character's "race" is "white")[💃🏼]]
<span class='shadow'>Sexy dancing skill: (print:$sexy_dancing_talent's level)</span>],[Can you shake that ass?])
(set:$next_level to $sexy_dancing_talent's level + 1)(unless:$sexy_dancing_talent's level is 10)[(meter: bind $sexy_dancing_talent's xp, $sexy_dancing_talent's level of $sexy_dancing_talent's "xp to level", "X", (text:$sexy_dancing_talent's level of $sexy_dancing_talent's "xp to level" - $sexy_dancing_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]]
(unless:$female_masturbation_talent's xp is 0)[
($show_tooltip:[(if:$character's "race" is "asian")[👉🏻🌮💦](else-if:$character's "race" is "black")[👉🏾🌮💦](else-if:$character's "race" is "latin")[👉🏽🌮💦](else-if:$character's "race" is "white")[👉🏼🌮💦]
<span class='shadow'>Female masturbation: (print:$female_masturbation_talent's level)</span>],[Can you satisfy yourself, as a woman?])
(set:$next_level to $female_masturbation_talent's level + 1)(unless:$female_masturbation_talent's level is 10)[(meter: bind $female_masturbation_talent's xp, $female_masturbation_talent's level of $female_masturbation_talent's "xp to level", "X", (text:$female_masturbation_talent's level of $female_masturbation_talent's "xp to level" - $female_masturbation_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]](unless:$male_masturbation_talent's xp is 0)[
($show_tooltip:[(if:$character's "race" is "asian")[✊🏻🍆💦](else-if:$character's "race" is "black")[✊🏾🍆💦](else-if:$character's "race" is "latin")[✊🏽🍆💦](else-if:$character's "race" is "white")[✊🏼🍆💦]
<span class='shadow'>Male masturbation: (print:$male_masturbation_talent's level)</span>],[You've already mastered this, right?])
(set:$next_level to $male_masturbation_talent's level + 1)(unless:$male_masturbation_talent's level is 10)[(meter: bind $male_masturbation_talent's xp, $gag_reflex's level of $male_masturbation_talent's "xp to level", "X", (text:$male_masturbation_talent's level of $male_masturbation_talent's "xp to level" - $male_masturbation_talent's xp) + " XP to level " + (text:$next_level), #F2D2BD)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]]
($show_tooltip:[(css:"font-size:3vmin")[💄👄💅]
<span class='shadow'>Makeup skill level: (print:$makeup_talent's level)</span>],[(twirl:"How good are you at prettying yourself up?","Can you make yourself look like a perfect little doll?")])
(set:$next_level to $makeup_talent's level + 1)(unless:$makeup_talent's level is 10)[(meter: bind $makeup_talent's xp, $makeup_talent's level of $makeup_talent's "xp to level", "X", (text:$makeup_talent's level of $makeup_talent's "xp to level" - $makeup_talent's xp) + " XP to level " + (text:$next_level), #FF69B4)](else:)[(text-style:"mark")[✨ SKILL MAXED OUT! ✨]]
<div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>(display:"Game Version")<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Sex Stats</span>]]</div>
<span class='shadow'>Times had sex as a guy: (print:$stats's "sex as guy")
Vaginal sex as a girl: (print:$stats's "sex as girl")
Anal sex as a girl: (print:$stats's "anal sex as girl")
Blowjobs given: (print:$stats's "blowjobs given")
Blowjobs received: (print:$stats's "blowjobs received")
Creampies given: (print:$stats's "creampies given")
Creampies received: (print:$stats's "creampies received")</span>
<div class='options'>(if:$stats's "sex as girl" is 0 and $stats's "sex as girl" is 0 and $stats's "blowjobs given" is 0 and $stats's "blowjobs received" is 0)[(twirl:"No judgment!","It's ok!","Aw, don't worry about it.","That's totally fine!","This is a judgment-free zone!") (twirl:"Whenever you're ready.","We're on your schedule.","Take your time.","I'm just giving you the stats.","Think of those zeroes like possibilities.")
](link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>(display:"sync stat progression")(display:"Game Version")<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Stats</span>]]</div>
(css:"font-size:3.5vw")($show_tooltip:[☘️
<span class='shadow'>Charm: (print:$charm_talent's level)</span>],[How good you are at convincing others to do what you want. (color:"bisque")[Train this stat by playing the word-sorting minigame.]])
(set:$next_level to $charm_talent's level + 1)(unless:$charm_talent's level is 10)[(meter: bind $charm_talent's xp, $charm_talent's level of $charm_talent's "xp to level", "X", (text:$charm_talent's level of $charm_talent's "xp to level" - $charm_talent's xp) + " XP to level " + (text:$next_level), #6edb6e)](else:)[(text-style:"mark")[✨ STAT MAXED OUT! ✨]]
(css:"font-size:3.5vw")($show_tooltip:[(if:(is_fem:))[(if:$character's "race" is "asian")[🏋🏻♀️](else-if:$character's "race" is "black")[🏋🏾♀️](else-if:$character's "race" is "latin")[🏋🏽♀️](else-if:$character's "race" is "white")[🏋🏼♀️]](else:)[(if:$character's "race" is "asian")[🏋🏻♂️](else-if:$character's "race" is "black")[🏋🏾♂️](else-if:$character's "race" is "latin")[🏋🏽♂️](else-if:$character's "race" is "white")[🏋🏼♂️]]
<span class='shadow'>Fitness: (print:$fitness_talent's level)</span>],[How in-shape you are. Higher fitness will give you more stamina ⚡ in a sex scene. (color:"bisque")[Train this at the gym.]])
(set:$next_level to $fitness_talent's level + 1)(unless:$fitness_talent's level is 10)[(meter: bind $fitness_talent's xp, $fitness_talent's level of $fitness_talent's "xp to level", "X", (text:$fitness_talent's level of $fitness_talent's "xp to level" - $fitness_talent's xp) + " XP to level " + (text:$next_level), #B22222)](else:)[(text-style:"mark")[✨ STAT MAXED OUT! ✨]]
(css:"font-size:3.5vw")($show_tooltip:[(if:(is_fem:))[(if:$character's "race" is "asian")[👩🏻🎓](else-if:$character's "race" is "black")[👩🏾🎓](else-if:$character's "race" is "latin")[👩🏽🎓](else-if:$character's "race" is "white")[👩🏼🎓]](else:)[(if:$character's "race" is "asian")[👨🏻🎓](else-if:$character's "race" is "black")[👨🏾🎓](else-if:$character's "race" is "latin")[👨🏽🎓](else-if:$character's "race" is "white")[👨🏼🎓]]
<span class='shadow'>Intellect: (print:$intellect_talent's level)</span>],[How good you are at linear thinking. (color:"bisque")[Train this by being successful at work.]])
(set:$next_level to $intellect_talent's level + 1)(unless:$intellect_talent's level is 10)[(meter: bind $intellect_talent's xp, $intellect_talent's level of $intellect_talent's "xp to level", "X", (text:$intellect_talent's level of $intellect_talent's "xp to level" - $intellect_talent's xp) + " XP to level " + (text:$next_level), #6495ED)](else:)[(text-style:"mark")[✨ STAT MAXED OUT! ✨]]
<span class='shadow'>Today is: (print:$summer_city's "date")
Your current gender: (print:(upperfirst:$character's gender))
Your race: (print:(upperfirst:$character's race))
Your personality: (print:(upperfirst:$character_archetype))
($show_tooltip:[Your XP multiplier: (print:(text:$score_multiplier))],[All XP gains are multiplied by this.(nl:1)(display:"display score multiplier buffs")])
(if:$pill_known is "true")[(unless:(pill:"none"))[Current pill: (if:(pill:"Clone"))[Clone (New-U Machine)](else:)[$pill_taken]
Time left: (if:(pill:"Plus"))[It's permanent.](else-if:(pill:"Basic"))[(if:$timer < 1 or $character's "status effects" contains "time extended")[Should wear off anytime now.](else-if:$timer < 4)[Less than 24 hours.](else:)[24-ish hours.]](else:)[(if:$pill_timer > 9)[About (print:(ceil:$pill_timer/3)) days.](else:)[Any day now...]]
]]Side effects active: (set:$index to 1)(for:each _side_effect, ...(unique:...$character's "side effects"))[($show_tooltip:[(print:_side_effect of $side_effect_names)(if:$index < length of $character's "side effects")[, ](inc:'index')],[(print:_side_effect of $side_effect_descriptions)(if:_side_effect is "secretary orgasm")[ (Max fitness: (print:10-(count:$character's "side effects","secretary orgasm")))]]) ]
House dirtiness: (if:$mess is 0)[Clean](else-if:$mess < 4)[A little messy ($mess)](else:)[Dirty ($mess)]
</span>
<div class='options'>(link:"Back")[(set:$next to "menu")(display:"next")]</div>{
Base multiplier: (print:$score_multiplier_base)
(if:$score_multiplier_buffs's length > 0)[(for: each _buff, ...$score_multiplier_buffs)[(nl:1)(print:_buff)]]
(nl:1)Final multiplier: (print:$score_multiplier)
}{
(if:$safeword is "Safeword: Enabled")[
(link:"🚫")[
(if:$character's "temp pill" is "true")[(display:"temp pill expires")]
(if:(is_fem:))[(set:$character's "status" to ($core_female_status:))]
(display:"refresh stats")
(display:"refresh portrait")
(set:$next to "safeword screen")
(display:"change screen")
]
]
}(if:$character's "status" is "female")[(print:"<img class='greyborder' src='img/characters/emotion/reject/" + $character's "id" + ".jpg' width='100%' height=auto>")
]SAFEWORD INVOKED!
<div class='options'>(link:"Next")[(display:"advance time")]</div>{
<div class='options'>(link:"Saved Games")[(goto:"custom saves screen")]</div>
}{(link:"Saved Games")[(goto:"custom saves screen")]}($show_tooltip:[(print:'<tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(255, 182, 193, 1) 0%,rgba(255, 182, 193, 1) 100%);background-size:' + (text:(round:($lubrication/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + (text:$lubrication) +' 💧</td></tr>')],[Lubrication: $lubrication/10
How wet you are.])(replace:?girl_sex_meters)[<table><tbody>(display:"pleasure meter")(unless:$stamina_stat is "disabled")[(display:"stamina meter")](if:$character's "temp pill" is "true" and "active" of $protection is "true")[(display:"protection meter")](if:$control_stat is "enabled")[(display:"control meter")](if:$lubrication_stat is "enabled")[(display:"lubrication meter")]</tbody></table>]{(set:$your_pleasure to (min:(max:$your_pleasure,0),10))(print: "<script>GE.updateYourPleasure(" + (text: $your_pleasure) + ");")}{(set:$your_pleasure to (min:(max:$your_pleasure,0),$your_pleasure_max))(print: "<script>GE.updateYourMalePleasure(" + (text: $your_pleasure) + ", " + (text: $your_pleasure_max) + ");")}(set:$style to (min:(max:$style,0),$max_style))($show_tooltip:[(print:'<tr><td class="table-meter meter-style" style="background-size:' + (text:(round:($style/$max_style)*100)) +'%" data-raw="">' + (text:$style) +' 👑</td></tr>')],[Style: $style/$max_style Your max style is defined by your charm 🍀, with a MAXIMUM of 3.])(set:$strategy to (min:(max:$strategy,0),$max_strategy))($show_tooltip:[(print:'<tr><td class="table-meter meter-strategy" style="background-size:' + (text:(round:($strategy/$max_strategy)*100)) +'%" data-raw="">' + (text:$strategy) +' ♟️</td></tr>')],[Strategy: $strategy/$max_strategy Your max strategy is defined by your intellect 🧠, with a MAXIMUM of 3.])(set:$energy to (min:(max:$energy,0),$max_energy))($show_tooltip:[(print:'<tr><td class="table-meter meter-stamina" style="background-size:' + (text:(round:($energy/$max_energy)*100)) +'%" data-raw="">' + (text:$energy) +' ⚡</td></tr>')],[Stamina: $energy/$max_energy Your max stamina is defined by your fitness, with a minimum of 3.])(set:$wit to (min:(max:$wit,0),$max_wit))($show_tooltip:[(print:'<tr><td class="table-meter meter-wit" style="background-size:' + (text:(round:($wit/$max_wit)*100)) +'%" data-raw="">' + (text:$wit) +' 💬</td></tr>')],[Wit: $wit/$max_wit Your max wit is defined by your charm 🍀, with a minimum of 3.])(set:$willpower to (min:(max:$willpower,0),$max_willpower))($show_tooltip:[(print:'<tr><td class="table-meter meter-willpower" style="background-size:' + (text:(round:($willpower/$max_willpower)*100)) +'%" data-raw="">' + (text:$willpower) +' 💎</td></tr>')],[Willpower: $willpower/$max_willpower Your max willpower is defined by your intellect 🧠, with a minimum of 3.])(set:$heat to (min:(max:$heat,0),$max_heat))($show_tooltip:[(print:'<tr><td class="table-meter meter-heat" style="background-size:' + (text:(round:($heat/$max_heat)*100)) +'%" data-raw="">' + (text:$heat) +' ❤️🔥</td></tr>')],[Heat: $heat/$max_heat Watch out - don't let your heat get too high, or you'll have trouble turning back.]){<div id="your-pleasure-bar"><div class='your_pleasure_bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>💦</div></div>(display:"update your pleasure")}{<div id="your-pleasure-bar"><div class='your_pleasure_bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>🍾</div></div>(display:"update your male pleasure")}($show_tooltip:[(print:'<tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(41, 128, 185, 1) 0%,rgba(41, 128, 185, 1) 100%);background-size:' + (text:(round:($protection's "loaded"/5) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + (text:$protection's "loaded") +' 🛡️</td></tr>')],[Protection: (print:$protection's "loaded")/5
How many side effects you can resist. Orgasm to increase this.])($show_tooltip:[(print:'<tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(115, 219, 110, 1) 0%,rgba(115, 219, 110, 1) 100%);background-size:' + (text:(round:($control/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + (text:$control) +' 🔥</td></tr>')],[Control: $control/10
How 'in control' you are. 5 is the default.]){(set:$double_down to false)(set:$style to "normal")(set:$bonus to 0)(set:$win_modifier to 0)(set:$lose_modifier to 0)(set:$first to (twirl:"you"))(set:$dealer_score to 0)
<div class="game_header">
(display:"shuffle deck")(set:$you_played to (a:))(set:$dealer_played to (a:))(if:$blackjack_params contains "media")[($pic:$blackjack_params's "backdrop")](else:)[(set:_vid to "<video disableRemotePlayback src='img/" + $blackjack_params's "backdrop" + "' autoplay='' loop='' muted='' playsinline/>")(print:_vid)]
<div class="game_header_text"><mark>|challenge_text>[]</mark></div>
</div>(set:$round_count to 0)
(set:$result to "none")
<div class="options">
</div>
(updateprogress:$blackjack_params's "points to win",$blackjack_params's "points")
<div id="win-bar">
<div class='bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>(color:"#4a2424")[[**(print:$blackjack_params's "points") / (print:$blackjack_params's "points to win")**]<score_bar|]</div>
</div><table cellpadding="0" cellspacing="0"><tr>
<td width=100%; padding-top: 8px>[]<card_screen|</td></tr>
</table>}<div class="options"></div>(replace:?right_screen)[(if:$blackjack_params's "npc" is "enabled")[(print:"<img class='greyborder' src='" + (text:$npc's "img") + "' width='100%' height=auto>")
<div class='options'><span class='shadow'>(if:(datanames:$npc) contains "unfamiliar name")[(if: not ($npc's "events" contains "name"))[(print:$npc's "unfamiliar name")](else:)[(print:$npc's "name")]](else:)[(print:$npc's "name")]</span>{[]<right_options|}</div>
]|score_blackjack>[(link:"Play Blackjack")[(live:1)[(replace:?right_options)[](stop:)](if:$first is "dealer")[Dealer goes first.(live:1s)[(display:"dealer turn")(stop:)]](else:)[You go first.(live:1s)[(display:"your turn")(stop:)]]](link-repeat:"Rules")[(display:"click")(open-url: 'https://x-change.life/wiki/docs/summer-city-blackjack/')](display:"blackjack skill check link")(if:$minigame_skip is "Skippable Minigames: On")[
(link:"Skip (win)")[(replace:?right_options)[](replace:?score_blackjack)[](set:$next to $blackjack_params's "result passage")(set:$result to "pass")(display:"change screen")]
(link:"Skip (lose)")[(replace:?right_options)[](replace:?score_blackjack)[](set:$next to $blackjack_params's "result passage")(set:$result to "fail")(display:"change screen")]]](nl:1)
[]<draw|]{
($play:"sound","shuffle")
(set:$card_lookup to (dm:
"2",2,
"3",3,
"4",4,
"5",5,
"6",6,
"7",7,
"8",8,
"9",9,
"0",10,
"A",1,
"J",10,
"Q",10,
"K",10))
(set:$deck to (twisted:"2C","3C","4C","5C","6C","7C","8C","9C","0C","AC","QC","JC","KC","2H","3H","4H","5H","6H","7H","8H","9H","0H","AH","QH","JH","KH","2D","3D","4D","5D","6D","7D","8D","9D","0D","AD","QD","JD","KD","2S","3S","4S","5S","6S","7S","8S","9S","0S","AS","QS","JS","KS"))
}{
(set:$se to "card " + (text:(($deck's length) % 4) + 1))
(newtrack:$se,"aud/se/ui/" + $se + ".mp3")
(display:"play sound")
(set:$card to (dm:
"card",$deck's 1st,
"value",$deck's 1st's 1st,
"numval",$deck's 1st's 1st of $card_lookup,
"pic",(text:$deck's 1st) + ".png"))
(set:$deck to (subarray:$deck,2,$deck's length))
(if:$deck's length < 2)[(display:"shuffle deck")]
}{
(replace:?card_screen)[<div class='card'>[]<card|</div>]
(set:$your_score to 0)(set:$ace_count to 0)(set:$index to 0)
(for: each _card, ...$you_played)[
(inc:'index')
(if:(($you_played's length) - 5) < $index)[(append:?card)[(set:$card_img to "<img class='noborder'; src='img/minigame/cards/" + _card's "card" + ".png' width=20%>")(print:$card_img)]]
(set:$your_score to $your_score + _card's "numval")
(if:_card's "numval" is 1)[(inc:'ace_count')]
]
(if: $ace_count > 0 and $your_score <= 11)[(inc:'your_score',10)]
(replace:?score_blackjack)[Your turn (if:$your_score < 21)[($your_score)](else-if: $your_score is 21)[- Blackjack! (21)](else:)[- Bust! ($your_score)]]
}{
(set:$you_played to $you_played + (a:$card))(display:"calculate your score")
(replace:?draw)[(if:$your_score < 21 and $double_down is false)[(link:"Hit")[(replace:?draw)[](display:"draw card")(display:"you play card")](link:"Stand")[(replace:?draw)[](if:$first is "dealer")[(display:"round results")](else:)[(display:"dealer turn")]](color:"bisque")[{($show_tooltip:[(link: "Double Down")[
(set: $double_down to true)
(replace: ?draw)[]
(display: "draw card")
(display: "you play card")
]],[You play exactly ONE more card, and double the points you win or lose.])}]](else:)[(link:"Next")[(replace:?draw)[](if:$first is "dealer")[(display:"round results")](else:)[(display:"dealer turn")]]]]
}{
(set: $dealer_stand_threshold to (twist:16,18))
(set: $dealer_charlie_threshold to 5)
(set: $dealer_no_risk to (cond: $dealer_score <= 11 or ($dealer_ace and $dealer_score < $dealer_stand_threshold), true, false))
(set: $charlie_risk_high to ($dealer_score >= $dealer_stand_threshold or $game_points >= 18))
(set: $low_cards_count to 0)
(for: each _card, ...$dealer_played)[
(if: _card's "numval" <= 3)[
(set: $low_cards_count to it + 1)
]
]
(set: $dealer_charlie_threshold to 5)
(set: $dealer_charlie_potential to ($low_cards_count / ($dealer_charlie_threshold - $dealer_played's length)) > 0.5)
(if:$charlie_risk_high)[(set:$dealer_charlie_potential to false)]
(if:$dealer_score > 21 or $dealer_played's length > 4)[ (display: "dealer stand")](else:)[
(if: $first is "you")[
(if: $your_score is 21)[
(if:($dealer_charlie_potential or $dealer_no_risk) and not $charlie_risk_high)[
(display: "dealer hit")
](else:)[
(display: "dealer stand")
]
](else-if: $your_score > 21 and not $dealer_no_risk)[
(display: "dealer stand")
](else-if: $dealer_charlie_potential and not $charlie_risk_high)[
(display: "dealer hit")
](else:)[
(if: $dealer_score < $dealer_stand_threshold)[
(display: "dealer hit")
](else:)[
(display: "dealer stand")
]
]
](else:)[
(if: $dealer_charlie_potential and not $charlie_risk_high)[
(display: "dealer hit")
](else-if: $dealer_score < $dealer_stand_threshold)[
(display: "dealer hit")
](else:)[
(display: "dealer stand")
]
]]
}{
(set: $you_played to (a:))
(set: $double_down to false)
(display: "draw card")(display: "you play card")(display: "draw card")(display: "you play card")
}{
(set:$dealer_played to $dealer_played + (a:$card))(display:"calculate dealer score")
}{
(replace:?score_blackjack)[Dealer(if:$style is "aggressive")[ 🥴] stands. ($dealer_score) ](replace:?draw)[(if:$first is "dealer")[(link:"Next")[ (display:"your turn")] ]
(unless:$first is "dealer")[ (link:"Next")[(display:"round results")] ] ]
}{
(replace:?card_screen)[<div class='card'>[]<card|</div>]
(set:$dealer_score to 0)(set:$ace_count to 0)(set:$index to 0)
(for: each _card, ...$dealer_played)[
(inc:'index')
(if:(($dealer_played's length) - 5) < $index)[(append:?card)[(set:$card_img to "<img class='noborder'; src='img/minigame/cards/" + _card's "card" + ".png' width=20%>")(print:$card_img)]]
(set:$dealer_score to $dealer_score + _card's "numval")
(if:_card's "numval" is 1)[(inc:'ace_count')]
]
(if:$dealer_score < 12 and $ace_count is 1)[(inc:'dealer_score',10)(set:$dealer_ace to 1)]
(unless:$dealer_score < 12 and $ace_count is 1)[(set:$dealer_ace to 0)]
(replace:?score_blackjack)[Dealer's turn. (if:$dealer_score < 21)[($dealer_score)](else-if: $dealer_score is 21)[Blackjack! (21)](else:)[Bust! ($dealer_score)]]
}{
(display:"draw card")(display:"dealer play card")(live:0.5s)[(if:$style is "normal")[(display:"dealer decide")](unless:$style is "normal")[(display:"dealer decide aggressive")](stop:)]
}{
(replace:?card_screen)[
(set: $player_charlie to false)
(set: $dealer_charlie to false)
(if: $you_played's length > 4 and $your_score <= 21)[
(set: $player_charlie to true)
]
(if: $dealer_played's length > 4 and $dealer_score <= 21)[
(set: $dealer_charlie to true)
]
(set: _player_advantage to (cond: $your_score <= 21, 21 - $your_score, 0))
(set: _dealer_bust_margin to (cond: $dealer_score > 21, $dealer_score - 21, 0))
(set: _base_result to (cond:
$player_charlie and not $dealer_charlie, (cond: $dealer_score > 21, ($clamp: 10 + _dealer_bust_margin, 10, 15), 10),
$dealer_charlie and not $player_charlie, (cond: $your_score > 21, -1 * ($clamp: 10 + _player_advantage, 10, 15), -10),
$your_score is $dealer_score, 0,
$your_score is 21 and $dealer_score is 20, 3,
$dealer_score is 21 and $your_score is 20, -3,
$your_score is 21, (cond: $dealer_score > 21, 6, 5),
$dealer_score is 21, (cond: $your_score > 21, -6, -5),
$your_score > 21 and $dealer_score > 21, ($clamp: $dealer_score - $your_score, -2, 2),
$dealer_score > 21, ($clamp: $your_score - 16, 1, 4),
$your_score > 21, -1 * ($clamp: $dealer_score - 16, 1, 4),
$your_score > $dealer_score and not ($dealer_score > 21), ($clamp: $your_score - $dealer_score, 2, 4),
not ($your_score > 21) and $dealer_score > $your_score, -1 * ($clamp: $dealer_score - $your_score, 2, 4),
0
))
(set:$result to (round:(cond:$double_down,_base_result*2,_base_result)))
(if:$quicktime_difficulty is "Quicktime Difficulty: Hardcore" and $result < 0)[(dec:'result',2)]
(if:$player_charlie)
[
<!-- found a five card charlie; award the achievement-->
(display:"Five Card Charlie Achievement Trigger")
(if:$your_score is 21)
[
<!-- five card charlie blackjack!-->
[
(display:"Nope Chuck Testa Achievement Trigger")
]
]
]
(print: (cond:
$double_down and $player_charlie and not $dealer_charlie,
(twirl:
"Double Down Five-Card Charlie! You've swept the board — relish in the **$result** points victory!",
"A bold move doubled down, and a Five-Card Charlie delivers a knockout blow of **$result** points!",
"You went all in with a Double Down, and a Five-Card Charlie secures a triumphant **$result** points win!",
"The Double Down strategy pays off massively with a Five-Card Charlie — **$result** points to the champion!",
"With a Double Down play, your Five-Card Charlie hits home, granting you a whopping **$result** points!"
),
$double_down and $dealer_charlie and not $player_charlie,
(twirl:
"Dealer's Five-Card Charlie on a Double Down round — a critical hit that costs you **$result** points.",
"The dealer answers your Double Down with a Five-Card Charlie — it's a heavy **$result** point loss.",
"A daring Double Down backfires as the dealer pulls off a Five-Card Charlie, leaving you **$result** points poorer.",
"Your Double Down gamble meets a dealer's Five-Card Charlie — a **$result** point sting.",
"In a twist of fate, the dealer's Five-Card Charlie doubles down on your losses by **$result** points."
),
$player_charlie and not $dealer_charlie,
(twirl:
"Five-Card Charlie! You've played an impressive hand — enjoy the **$result** point bonus!",
"You defy the odds with a Five-Card Charlie, raking in **$result** points!",
"A remarkable Five-Card Charlie secures you a solid **$result** points!",
"You've got a full house and a Five-Card Charlie — that's **$result** points!",
"Five cards, no bust — a Five-Card Charlie earns you **$result** points!"
),
$dealer_charlie and not $player_charlie,
(twirl:
"Dealer lands a Five-Card Charlie, costing you **$result** points.",
"The dealer's Five-Card Charlie puts you **$result** points down.",
"A slick Five-Card Charlie by the dealer — you're set back **$result** points.",
"Dealer's Five-Card Charlie — a rare setback costing you **$result** points.",
"Dealer pulls off a Five-Card Charlie. You lose **$result** points!"
),
$double_down and $your_score is 21 and $dealer_score > 21,
(twirl:
"Double Down Blackjack while the dealer busts! A dominating **$result** point landslide!",
"Your Blackjack doubles down on the dealer's misfortune, netting a massive **$result** points!",
"With a Double Down and a dealer bust, your Blackjack secures a whopping **$result** points!",
"The dealer's bust meets your doubled Blackjack — a game-changing **$result** points!",
"A bold Double Down paired with your Blackjack and dealer bust leads to a **$result** point triumph!"
),
$double_down and $dealer_score is 21 and $your_score > 21,
(twirl:
"Dealer's 21 doubled against your bust — a painful **$result** point plunge.",
"The dealer's Blackjack on a Double Down round? That's a hefty **$result** point hit.",
"A double down on disaster: Dealer's Blackjack, your bust, and a **$result** point nosedive.",
"Dealer strikes Blackjack as you double down and overplay. The cost? **$result** points.",
"Double Down debacle: Dealer's 21, your bust, and a devastating **$result** point drop."
),
$double_down and $your_score is 21 and $dealer_score is 20,
(twirl:
"Your Double Down Blackjack outshines the dealer's 20, yielding a neat **$result** points.",
"A perfect 21 with a Double Down against the dealer's 20 — that's strategic **$result** points.",
"Dealer's 20 can't stand up to your doubled Blackjack, awarding you **$result** points.",
"Blackjack with a Double Down overshadows the dealer's 20 — a sly **$result** point win.",
"21 and a Double Down play against a dealer's respectable 20 gets you **$result** points."
),
$double_down and $dealer_score is 21 and $your_score is 20,
(twirl:
"The dealer's 21 doubles against your solid 20 — it's a narrow **$result** point defeat.",
"A close round — dealer's Blackjack meets your 20 with a Double Down. You lose **$result** points.",
"Your strategic 20 faces a doubled dealer's Blackjack, leading to a **$result** point loss.",
"In a Double Down, the dealer's 21 just pips your score of 20, costing **$result** points.",
"Dealer lands a doubled Blackjack against your 20 — a tight loss of **$result** points."
),
$your_score is 21 and $dealer_score is 20,
(twirl:
"Blackjack! The dealer's 20 is good, but your 21 is better. Gain **$result** points.",
"You hit the sweet spot with 21, just outdoing the dealer's 20 for **$result** points.",
"Your natural Blackjack narrowly trumps the dealer's 20 — **$result** points to you.",
"Summer City Close Call! Your Blackjack edges out a dealer 20, earning **$result** points.",
"It's Blackjack versus a 20 — and you win this round with **$result** points."
),
$dealer_score is 21 and $your_score is 20,
(twirl:
"Dealer's Blackjack is a tough blow, but your 20 keeps the loss to **$result** points.",
"The dealer's 21 beats your score of 20. A smart play, but it costs you **$result** points.",
"You played well with 20, but the dealer's Blackjack means a minor loss of **$result** points.",
"Against a dealer's Blackjack, your 20 is respectable but still loses **$result** points.",
"Dealer's 21, your 20. It's a narrow defeat and **$result** points down."
),
$your_score is 21 and $dealer_score is 20,
(twirl:
"Blackjack! But the dealer's close call with 20 means a tight win of **$result** points.",
"You hit a 21, yet the dealer's 20 keeps things interesting. You gain **$result** points.",
"It's Blackjack for you, with the dealer breathing down your neck at 20. That's **$result** points!",
"Summer City Close Call! Your Blackjack against their 20 gives you **$result** points.",
"Your perfect Blackjack meets the dealer's solid 20. A strategic win of **$result** points."
),
$dealer_score is 21 and $your_score is 20,
(twirl:
"Dealer hits Blackjack, but your sharp 20 limits the loss to **$result** points.",
"The dealer has 21, but your 20 shows savvy play. You only lose **$result** points.",
"Dealer's Blackjack is a blow softened by your score of 20. You drop **$result** points.",
"With the dealer's Blackjack, it's an Over the Edge scenario. You're down **$result** points.",
"Dealer's 21 against your 20 — a close shave costing you **$result** points."
),
$your_score is 21 and $dealer_score > 21,
(twirl:
"Blackjack, plus the dealer busts! That's a hefty win of **$result** points.",
"You've got 21, with the dealer over the limit. A superb **$result** points to you!",
"Blackjack, and the dealer crumbles! You celebrate with **$result** points.",
"Dealer busts, handing you a decisive **$result** point gain on top of your Blackjack.",
"21 for you, bust for the dealer — a commanding **$result** point swing your way."
),
$dealer_score is 21 and $your_score > 21,
(twirl:
"The dealer's 21 and your bust mean a tough loss of **$result** points.",
"Dealer's Blackjack amid your bust — it's an Over the Edge moment, down **$result** points.",
"21 for the dealer, but you've busted. A significant **$result** point drop for you.",
"With a dealer Blackjack and your own hands over, you concede **$result** points.",
"Blackjack for the house, bust for you — the scales tip by **$result** points."
),
$your_score is 21 and $double_down and not ($dealer_score is 21),
(twirl:
"Double Down Blackjack! Fortune favors the bold — **$result** points to you!",
"You've doubled the stakes and reaped double the rewards — Blackjack adds **$result** points!",
"With a Double Down, you've hit Blackjack! That's **$result** points to celebrate.",
"A strategic Double Down culminates in Blackjack, bringing in a hefty **$result** points!",
"Risk meets reward with a Double Down Blackjack, padding your score by **$result** points!"
),
$your_score is 21 and not ($dealer_score is 21),
(twirl:
"Blackjack! Enjoy your **$result** points!",
"A flawless Blackjack! That's **$result** points added to your streak.",
"21 — a Blackjack masterclass. You gain **$result** points.",
"The cards align for Blackjack — a winning hand adding **$result** points.",
"You've struck Blackjack gold! **$result** points are yours."
),
$dealer_score is 21 and not ($your_score is 21),
(twirl:
"Dealer's Blackjack takes the round. It costs you **$result** points.",
"The dealer lands a Blackjack. That's a **$result** point dent in your score.",
"Blackjack for the dealer. A tough loss of **$result** points for you.",
"Dealer shows Blackjack — a punishing blow costing you **$result** points.",
"The dealer's Blackjack seals your fate, slicing **$result** points off your tally."
),
$your_score > 21 and $dealer_score > 21 and $result is 0,
(twirl:
"An equal overstep - you and the dealer bust by the same measure. No points exchanged in this round.",
"You've both gone bust with equal fervor.",
"A synchronized bust - it's a draw.",
"You and the dealer both overshoot equally - no advantage gained or lost.",
"You both bust equally."
),
$your_score > 21 and $dealer_score > 21 and $result < 0,
(twirl:
"A bust-off where the dealer comes out slightly ahead. You drop **$result** points.",
"You both exceeded the limit, but the dealer did so with more restraint, costing you **$result** points.",
"The dealer manages their bust better, leaving you trailing by **$result** points this hand.",
"It's a high-stakes game of chicken, but the dealer flinches less, sending **$result** points their way.",
"Both sides crumble, but your hand falls harder. The dealer gains the upper hand by a margin – you're down **$result** points."
),
$your_score > 21 and $dealer_score > 21,
(twirl:
"Bust city — both of you overplayed, but you edge out slightly by **$result** points.",
"It's a double bust, but you come out ahead, gaining **$result** points.",
"You both overshoot 21, but you fare a tad better, netting **$result** points.",
"A pair of busts, yet you scrape through with a gain of **$result** points.",
"Everyone's gone too far, but you less so, earning you **$result** points."
),
$dealer_score > 21,
(twirl:
"Dealer busts! The house pays out **$result** points to you.",
"The dealer crumbles — good news for you, and **$result** points better.",
"House oversteps its bounds. You're up **$result** points!",
"Dealer's gone bust — you rake in **$result** points!",
"The house's loss is your gain, **$result** points in the bag."
),
$your_score > 21,
(twirl:
"Bust! Too high a climb costs you **$result** points.",
"You've busted out and dropped **$result** points this round.",
"Over 21, and you're down **$result** points. Live and learn!",
"The risk backfires, and it's a **$result** point setback for you.",
"A bust on your part — say goodbye to **$result** points."
),
$your_score > $dealer_score and $result is 1,
(twirl:
"A tight call, but you clinch it by a single point!",
"You narrowly outplay the dealer, snatching one crucial point.",
"The round's a photo finish, and you edge it by one point.",
"It's down to the wire, with victory decided by one point in your favor.",
"By a whisker, you secure the round and with it, one point."
),
$your_score > $dealer_score,
(twirl:
"Victory! You outdo the dealer for a **$result** point boost.",
"Your hand trumps the dealer's, netting you **$result** points.",
"Top hand! You gain the upper hand and **$result** points.",
"You've bested the house this round. That's **$result** more points.",
"You win the hand and swell your score by **$result** points!"
),
$dealer_score > $your_score and $result is -1,
(twirl:
"By the narrowest of margins, the dealer takes the round by a single point.",
"The dealer edges you out with a slim margin — it's just one point, but it stings.",
"The house claims a slender victory, eking out one point from your tally.",
"A close-fought round, but the dealer squeezes ahead, costing you one point.",
"It's a tight duel, yet the dealer nabs a one-point win this time."
),
$dealer_score > $your_score,
(twirl:
"The dealer's hand prevails, costing you **$result** points.",
"Dealer outmatches you, resulting in a **$result** point loss.",
"Not this time — the dealer wins, and you're down **$result** points.",
"The house edges you out. You forfeit **$result** points.",
"You come up short and concede **$result** points to the dealer."
),
(twirl:
"An equitable draw — no points change hands.",
"It's a push. The status quo remains, and the points stay put.",
"Both sides stand firm; it's a tie with no points won or lost.",
"Stalemate — neither side gains ground or points.",
"Deadlock! The round ends even, and the score is unchanged."
)
))
(set: $blackjack_params's "points" to (max: 0, (min: $blackjack_params's "points to win", $blackjack_params's "points" + $result)))
(set: $result to 0)
(replace: ?score_blackjack)[]
(nl:2)
Your Score: **$your_score**(nl:1)
Dealer's Score: **$dealer_score**]
(replace:?score_bar)[**(print:$blackjack_params's "points") / (print:$blackjack_params's "points to win")**
(updateprogress:$blackjack_params's "points to win",(min:$blackjack_params's "points",$blackjack_params's "points to win"))]
(replace:?draw)[(if:$blackjack_params's "points" >= $blackjack_params's "points to win")[(live:3s)[(set:$result to "pass")(replace:?score_blackjack)[](set:$next to $blackjack_params's "result passage")(display:"change screen")(stop:)]](else-if:$blackjack_params's "points" <= 0)[(live:3s)[(set:$result to "fail")(replace:?score_blackjack)[](set:$next to $blackjack_params's "result passage")(display:"change screen")(stop:)]](else:)[(inc:'round_count')
(link:"Next hand")[(replace:?draw)[]
(if:$first is "dealer")[(display:"your turn")(set:$first to "you")](else:)[(set:$first to "dealer")(display:"dealer turn")]
](unless:$blackjack_params's "type" is "cards")[(link:"Risk it")[(replace:?draw)[(display:"round end early")]]]]]}
</div>{
(set:_chance to (($blackjack_params's "points" / $blackjack_params's "points to win") * 100))
(if:(twist:1,100) >= _chance)[(live:1s)[(set:$result to "fail")(set:$next to $blackjack_params's "result passage")(display:"change screen")(stop:)]](else:)[(live:1s)[(set:$result to "pass")(set:$next to $blackjack_params's "result passage")(display:"change screen")(stop:)]]
}{
(set:$dealer_played to (a:))
(display:"draw card")(display:"dealer play card")(display:"draw card")(display:"dealer play card")
(live:0.5s)[(if:$style is "normal")[(display:"dealer decide")]
(unless:$style is "normal")[(display:"dealer decide aggressive")](stop:)]
}{<div class='options'>[<span class='shadow'>**Press the arrow keys repeatedly to keep the bar from filling OR emptying, (print:$quicktime_params's "timing message")**
(if:(a:"oral","public masturbation") contains $type)[
Keep the bar inside the GREEN window to maximize your pleasure.
]
(if:$type is "transactional sex")[
(display:"transactional sex bonus")
Keep the bar inside the GREEN window to maximize your pleasure.
]
</span>
]<directions|[]<interrupt|
</div>
}{
(set:$threshold to 60 + ($quicktime_params's "rhythm" * -0.045))
(inc:'bonus_count',2)
(if:$bonus is "true")[(inc:'bonus_count',10)]
(if:$bonus is "extra")[(inc:'bonus_count',20)]
(if:$bonus_count > $threshold)[
(set:$bonus_count to 0)
(if:$your_pleasure < 10)[
(inc:'your_pleasure')
(display:"update your pleasure")
]
(set:$lubrication to (min:$lubrication + 1,10))
]
}{
(set:$threshold to 120 + ($quicktime_params's "rhythm" * -0.045))
(set:$bonus_count to it + (ceil:(cock:"rating","npc")/2))
(if:$bonus is "true")[
(inc:'bonus_count',20)
](else-if:$bonus is "extra")[
(inc:'bonus_count',40)
]
($passage_tags:"dontcum_your_bonus")
(if:$character's "side effects" contains "Submissive pleasure")[
(set:$bonus_count to $bonus_count * (floor:$bonus_count * 1.3))
]
(if:$bonus_count > $threshold + ($orgasms * 15))[
(set:$bonus_count to 0)
(if:$your_pleasure < 10)[
(inc:'your_pleasure')
(display:"update your pleasure")
]
(set:$lubrication to (min:it + 1,10))
]
(inc:'his_pleasure_count',7)
(if:$orgasms > 0)[(inc:'his_pleasure_count',5)]
(if:$orgasms > 1)[(inc:'his_pleasure_count',3)]
(if:$beg_creampie is "true")[(inc:'his_pleasure_count',15)]
($passage_tags:"dontcum_his_bonus")
(if:$his_pleasure_count >= $threshold)[
(set:$his_pleasure_count to 0)
(if:$his_pleasure < $his_pleasure_threshold)[
(inc:'his_pleasure')
(display:"update his pleasure")
]
]
}{
(if:$type is "public masturbation")[
(set:$modifier to $female_masturbation_talent's level)
]
(if:$bonus_timer is 0)[
(if:$bonus_area is "none")[
(if:$type is "oral")[
(set:$modifier to $npc's "oral skill")
](else:)[
(set:$modifier to (cock:"girth","npc"))
]
(set:$width to $modifier * 3 + 17)
(set:$modifier to ((-33+$width)/2))
(display:(twirl:"bonus area left","bonus area funky"))
]
]
(inc:'bonus_timer')
(if:$bonus_timer > 14)[
(set:$bonus_timer to 1)
]
(unless:$bonus_area is "none")[
(if:$bonus_area is "left")[
(set:$min to $bonus_timer of (a:1,12,33,48,59,63,66,66,55,35,18,7,3,1))
(set:$max to $bonus_timer of (a:33,45,67,82,93,97,100,100,89,69,52,41,37,35))
]
(if:$bonus_area is "funky")[
(set:$min to $bonus_timer of (a:35,45,49,50,31,20,18,50,67,50,1,1,27,35))
(set:$max to $bonus_timer of (a:66,76,81,82,62,50,50,81,99,81,33,33,59,66))
]
(set:$min to it - $modifier)
(set:$max to it + $modifier)
(if:$points >= ($min + ($width/3)) and $points <= ($max-($width/3)))[
(set:$bonus to "extra")
](else-if:$points >= $min and $points <= $max)[
(set:$bonus to "true")
](else:)[
(set:$bonus to "false")
]
<!-- Buttplug.io integration: Call the interaction passage -->
(display:"buttplug dont cum bonus interaction")
]
}{
(set:$bonus_area to "funky")
(replace:?score_bar)[{
(set:_duration to ($quicktime_params's "rhythm"*15))
(print:'<div id="win-bar" width=50% style="background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(144, 238, 144, 0) 0%,rgba(144, 238, 144, 0.9),rgba(144, 238, 144, 0.9),rgba(144, 238, 144, 0) 100%);background-size:' + (text:$width) +'%;background-position-x:left; animation: gradient-funky ' + (text:_duration) + 'ms ease infinite;"><div class="bar" style="background: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9) 40px, rgba(255, 255, 255, 1) 40px, rgba(255, 255, 255, 1) 80px);"></div></div>')
}]
}{
(set:$bonus_area to "left")
(replace:?score_bar)[{
(set:_duration to ($quicktime_params's "rhythm"*15))
(print:'<div id="win-bar" width=50% style="background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(144, 238, 144, 0) 0%,rgba(144, 238, 144, 0.9),rgba(144, 238, 144, 0.9),rgba(144, 238, 144, 0) 100%);background-size:' + (text:$width) +'%;background-position-x:left; animation: gradient-left ' + (text:_duration) + 'ms ease infinite;"><div class="bar" style="background: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9) 40px, rgba(255, 255, 255, 1) 40px, rgba(255, 255, 255, 1) 80px);"></div></div>')
}]
}{
(set:_left_button to (cond: $dir < 0, "64button2left.png", "64button1left.png"))
(set:_right_button to (cond: $dir > 0, "64button2right.png", "64button1right.png"))
(set:_press_button to (macro: num-type _dir, [
(set:$dir to _dir)
(if:$points > 99 or $points < 1)[
(set:$result to "fail")
]
(if:$rhythm_check is "true")[
($dont_cum_update_points: $points + $dir)
(replace:?directions)[{
(if:$quicktime_params's "interrupts" > 0 and (twist:1,20) is 1 and $points < 65 and $points > 35 and $interrupting is "false")[
(replace:?interrupt)[(print:"
")(css:"font-size:4vmin")[
<span class='chromatic'>
(unless:$interrupting_mode is "Minigame Interruption Style: Prevent Interaction")[
(print:"🔄 ")(display:$quicktime_params's "interrupt passage")(print:" 🔄")
](else:)[(print:"🛑 ")(display:$quicktime_params's "interrupt passage")(print:" 🛑")]
</span>(set:$dir to 0)
(set:$interrupting to "true")
(set:$interrupting_countdown to 0)
($play:"sound","interrupt")
]]
(display:"dont cum buttons")
(after: time + 2s)[(set:$interrupting to "resume change")]
(after: time + 5s)[(if:$dontcum is "active")[($play:"sound","end interrupt")]]
(after: time + 6s)[
(set:$interrupting to "false")(replace:?interrupt)[]
]
(set:$quicktime_params's "interrupts" to $quicktime_params's "interrupts" - 1)
](else:)[
(display:"dont cum buttons")
]
}]
](else:)[
(replace:?directions)[{
(css:"font-size:4vmin")[
<span class='chromatic'>Too fast!</span>
]
(set:$dir to 0)
(after: time + 1s)[
(replace:?directions)[(display:"dont cum buttons")]
]
}]
]
(set:$rhythm_check to "false")
(after: time + (ceil:$quicktime_params's "rhythm" * 0.75))[
(set:$rhythm_check to "true")
](out:)[]
]))
|left>[
(link-rerun:"<img src='img/ui/buttons/" + _left_button + "'; width=64px; height=auto>")[
(if:$interrupting is "true" or $interrupting is "resume change")[(unless:$interrupting_mode is "Minigame Interruption Style: Prevent Interaction")[(_press_button: 17)]](else:)[(_press_button: -17)]
]
]
|right>[
(link-rerun:"<img src='img/ui/buttons/" + _right_button + "'; width=64px; height=auto>")[
(if:$interrupting is "true" or $interrupting is "resume change")[(unless:$interrupting_mode is "Minigame Interruption Style: Prevent Interaction")[(_press_button: -17)]](else:)[(_press_button: 17)]
]
]
}{
(if:$type is "public masturbation")[
(set:$lose_type to (twirl:"You can't control your moans","You moan loudly","You moan","You whimper","You squeal") + "...")
]
(unless:$quicktime_params contains "time")[(set:$quicktime_params's "time" to 30)]
(unless:$quicktime_params contains "objective")[(set:$quicktime_params's "objective" to "Resist!")]
(set:$dontcum to "active")
(set:$interrupting to "false")
(set:$minigame_played to "false")
(set:$timer to 1)
(set:$win_type to "You win!")
(set:$lose_type to "You lose...")
(set:$bonus_count to 0)
(set:$his_pleasure_count to 0)
(set:$bonus to "false")
(set:$bonus_area to "none")
(set:$bonus_timer to 0)
(set:$correct to 10)
(if:(datanames:$quicktime_params) contains "type")[
(set:$type to $quicktime_params's "type")
(if:$type is "oral" or $type is "transactional sex")[
(set:$lose_type to (twirl:"You can't control your moans","You moan loudly","You moan","You whimper","You squeal") + "...")
]
](else:)[
(set:$type to "none")
]
(if:(datanames:$quicktime_params) contains "media")[
(set:$media to $quicktime_params's "media")
](else:)[
(set:$media to "video")
]
(if:$quicktime_difficulty is "Quicktime Difficulty: Hardcore")[
(if:$quicktime_params's "interrupts" > 0)[
(set:$quicktime_params's "interrupts" to $quicktime_params's "interrupts" * 3)
]
](if:$quicktime_difficulty is "Quicktime Difficulty: Easy")[
(if:$quicktime_params's "interrupts" > 1)[
(set:$quicktime_params's "interrupts" to 1)
]
]
(set:$game_type to "dont cum")
(if:(datanames:$quicktime_params) contains "skill check")[
(set:$skill_check to $quicktime_params's "skill check")
(if:(datanames:$quicktime_params) contains "skill check difficulty")[
(set:$skill_difficulty to $quicktime_params's "skill check difficulty")
](else:)[
(set:$skill_difficulty to 50)
]
](else:)[
(set:$skill_check to "random")
(set:$skill_difficulty to 50)
]
(set:$result to "clear previous")
(set:$rhythm_check to "true")
(set:$ai_direction to (twirl:"up","down"))
(set:$points to 50)
(set:$timer to $quicktime_params's "time")
<div class="game_header">
(if:$media is "picture")[
($pic:$quicktime_params's "backdrop")
](else:)[
($vid:$quicktime_params's "backdrop")
]
<div class="game_header_text">
<span class='shadow'>
<span class='highlight'>
|timer>[
(css:"font-size:5vmin")[
(print:$quicktime_params's "objective")
]
]
</span>
</span>
{[{}]<score_bar|[]<arrows|}
(replace:?right_options)[{
|enter>[(unless:$mobile_mode is "Real Time Minigames: Disabled")[(link:"Play minigame")[
(set:$minigame_played to "true")
(display:"quicktime right image")
(replace:?score_bar)[{
<div id="win-bar" width=50%>{
<div class='bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'></div>
}</div>
(after: time + 0.5s)[
($dont_cum_update_points: 50)
]
(stop:)
}]
(set:$result to "none")
(replace:?arrows)[{<span class='borderless'> (display:"dont cum begin message")</span>
[(link:"Begin")[
(set:$method to "minigame")
(display:"dont cum begin")
]]<enter|
}]
]]]
(display:"quicktime skill check")
(if:$minigame_skip is "Skippable Minigames: On")[
(link:"Skip (win)")[
(set:$dontcum to "finished")
(display:"quicktime right image")
(set:$next to $quicktime_params's "result passage")
(set:$result to "pass")
(display:"change screen")
]
(link:"Skip (lose)")[
(set:$dontcum to "finished")
(display:"quicktime right image")
(set:$next to $quicktime_params's "result passage")
(set:$result to "fail")
(display:"change screen")
]
]
}]
</div>
</div>
<div class="options"></div>
<table cellpadding="0" cellspacing="0"><tr></tr></table>
<div class='options'>[]<score|</div>
(if:$quicktime_params contains "sex loop")[(set:$sex_loop to $quicktime_params's "sex loop")
(display:"play sex loop")]
}{
(display:"dont cum finish")
($dont_cum_update_points: (cond: $points > 50, 100, 0))
(replace:?right_options)[{
(link:$lose_type)[
(set:$result to "fail")
(set:$next to $quicktime_params's "result passage")
(display:"change screen")
](if:$action_points > 0)[(link:"Use Action Point")[(set:$action_params to (dm:"cost",1,"result",$quicktime_params's "result passage","type","minigame"))(display:"use action point")]]
}]
}{
(display:"dont cum finish")
(replace:?right_options)[{
(link:$win_type)[
(set:$result to "pass")
(set:$next to $quicktime_params's "result passage")
(display:"change screen")
]
}]
}{
(unless:($buttplug_is_pleasure_meter_interaction_active:))[($buttplug_stop_all:)]
(set:$dontcum to "finished")
(after: time + 0.5s)[
(replace:?score_bar)[]
(replace:?arrows)[]
(display:"quicktime gain xp")
]
(stop:)
(replace:?timer)[(stop:)]
}(replace:?directions)[(set:$dir to 0)(display:"dont cum buttons")](display:"dont cum timer"){
(set:$rhythm to $quicktime_params's rhythm)
(live:$rhythm)[
(if:$result is "fail")[
(stop:)
]
(if:(datanames:$quicktime_params) contains "type")[
(if:$quicktime_params's "type" is "big load")[
(set:$se to "squirt " + (text:(twist:1,3)))
(display:"play sound")
]
]
(if:$timer < 1)[
(set:$result to "pass")
(display:"dont cum win")
(stop:)
](else-if:$points > 99 or $points < 1 or $result is "fail")[
(set:$result to "fail")
(display:"dont cum lose")
(stop:)
](else-if:$type is "transactional sex" and $his_pleasure >= $his_pleasure_threshold)[
(set:$win_type to "He cums...")
(set:$result to "pass")
(display:"dont cum win")
(stop:)
](else-if:($type is "oral" or $type is "transactional sex") and $your_pleasure >= 10)[
(set:$win_type to (twirl:"You cum...","You have an orgasm..."))
(if:$orgasms > 0)[
(set:$win_type to "You cum again!")
]
(replace:?timer)[]
(set:$result to "pass")
(display:"dont cum win")
(stop:)
(replace:?timer)[]
](else:)[
(display:"dont cum change")
]
]
(unless:$type is "transactional sex")[
(live:1s)[
(if:$result is "clear previous")[
(stop:)
]
(if:$result is "fail")[
(stop:)
]
(if:(win:))[
(stop:)
]
(if:$points > 99 or $points < 1 or $result is "fail")[
(set:$result to "fail")
(stop:)
]
(replace:?timer)[{
(set:$timer to $timer-1)
(css:"font-size:5em")[$timer]
}]
(if:$timer<0)[
(stop:)
]
(unless:$dontcum is "active")[
(replace:?timer)[]
(stop:)
]
]
](else:)[
(replace:?timer)[]
]
(if:($type is "public masturbation") and $your_pleasure >= 10)[
(set:$win_type to (twirl:"You cum...","You have an orgasm..."))
(if:$orgasms > 0)[
(set:$win_type to "You cum again!")
]
(replace:?timer)[]
(set:$result to "pass")
(display:"dont cum win")
(stop:)
(replace:?timer)[]
]
}{
(if:$dontcum is "active")[
(set:$bonus_area_in_use to $type is "oral" or $type is "transactional sex")
(if:$bonus_area_in_use)[
(display:"bonus area check")
]
]
(if:$quicktime_difficulty is "Quicktime Difficulty: Hardcore")[
(set:$change to 14 - (ceil:4 * ($timer / $quicktime_params's "time")))
](else-if:$quicktime_difficulty is "Quicktime Difficulty: Easy")[
(set:$change to 10 - (ceil:4 * ($timer / $quicktime_params's "time")))
](else:)[
(set:$change to 12 - (ceil:4 * ($timer / $quicktime_params's "time")))
]
(set:$change to $change * (cond:
$rhythm < 300, 0.5,
$rhythm < 350, 0.6,
$rhythm < 400, 0.7,
$rhythm < 450, 0.8,
$rhythm < 500, 0.9,
$rhythm > 650, 1.3,
$rhythm > 600, 1.2,
$rhythm > 550, 1.1,
1
))
(if:$interrupting is "true")[(set:$change to $change * 0.25)]
(if:$interrupting is "resume change")[(set:$change to $change * 0.75)]
($dont_cum_update_points: (cond: $ai_direction is "up", $points + $change, $points - $change))
(if:$points < 75 and $points > 25)[
(if:(twist:1,10) is 1)[
(if:$ai_direction is "up")[
(set:$ai_direction to "down")
](else:)[
(set:$ai_direction to "up")
]
]
](else-if:$points > 65)[
(set:$ai_direction to "up")
](else-if:$points < 36)[
(set:$ai_direction to "down")
]
(if:$result is "fail")[
($dont_cum_update_points: (cond: $points < 50, 0, 100))
(replace:?directions)[<span class='shadow'>You lose!</span>]
(stop:)
]
(if:$type is "oral")[
(display:"oral bonus")
]
(if:$type is "transactional sex")[
(display:"transactional sex bonus")
]
<!-- Buttplug integration: Call the interaction passage -->
(display:"buttplug dont cum interaction")
(if:$dontcum is "active")[
(set:$bonus_area_in_use to $type is "oral" or $type is "transactional sex" or $type is "public masturbation")
(if:$bonus_area_in_use)[
(display:"bonus area check")
]
]
(if:$type is "public masturbation")[
(display:"public masturbation bonus")
]
}{
(if:$dont_cum_update_points is 0)[(set:$dont_cum_update_points to (macro: num-type _points, [{
(set:$points to _points)
(out:)[{
(updateprogress:100,$points)
}]
}]))]
}{
(display:"lights out refresh screen")
(replace:?right_options)[{
Moves: |moves>[$moves]/$par
<br/><br/>
Each (print:$blackjack_params's "bad icon") left on the board will add a $chance% chance of failure.
(if:(datanames:$blackjack_params) contains "difficulty factor")[
(nl:2)
Difficulty factors: (print:$blackjack_params's "difficulty factor")
]
}]
}{
(set:$style to "lights out")
(set:$moves to 0)
<div class="game_header">
(if:(datanames:$blackjack_params) contains "backdrop type")[
(print:$blackjack_params's "backdrop")
](else:)[
(print:"<video disableRemotePlayback src='img/" + $blackjack_params's "backdrop" + "' autoplay='' loop='' " + $muted + " playsinline/>")
]
<div class="game_header_text">
[]<game_screen|
</div>
</div>
<div class='options'>[]<score_blackjack|[]<score|</div>
(replace:?right_options)[{
|enter>[(unless:$mobile_mode is "Real Time Minigames: Disabled")[(link:"Play minigame")[
(display:"lights out begin")
]]]
<br/>
(display:"blackjack skill check link")
(if:$minigame_skip is "Skippable Minigames: On")[
(link:"Skip (win)")[
(set:$next to $blackjack_params's "result passage")
(set:$result to "pass")
(display:"change screen")
]
(link:"Skip (lose)")[
(set:$next to $blackjack_params's "result passage")
(set:$result to "fail")
(display:"change screen")
]
]
}]
(display:"lights out setup")
}{
(set: _fails to (count: $game_grid, -1))
(set: $needed to (floor:((100 - ($chance * _fails)) / 5)))
(if: $needed > 20)[
(set: $needed to 20)
]
(if: $needed < 2)[
(set: $needed to 2)
]
(set: $needed to (21 - $needed))
(unpack:$blackjack_params into (dm: "good action", _good, "bad action", _bad, "bad icon", _bad_icon))
(set:_finish to (macro: bool-type _pass, [
(set:$result to (cond: _pass, "pass", "fail"))
(set:_action to (cond: _pass, "good action", "bad action"))
(replace:?game_screen)[
(color:"#f9ced5") + (css:"font-size:4vmin")[
<span class='shadow'>
You (print:_action of $blackjack_params).
</span>
]
]
(replace:?right_options)[{(display:"blackjack gain xp")
(link:"Next")[
(set:$next to $blackjack_params's "result passage")
(display:"change screen")(replace:?right_options)[]
]
}]
(out:)[]
]))
(replace:?game_screen)[
(css:"font-size:4vmin")[
($highlight:[{
<span class='shadow'>
(if:_fails is 0)[
All _bad_icon cleared!
](else:)[
(str-repeated:(round:_fails), _bad_icon)
]
</span>
}])
<br/>
<mark>
(if:$needed > 19)[
(if:(twist:1,2) is 1)[
You need to roll a 20 to _good.
](else:)[
(twirl:"Sorry, but you're", "You're") probably going to _bad. You need to roll a 20.
]
](else-if:$needed < 3)[
You're not going to _bad unless you roll a 1 right now.(set:$needed to 2)
](else:)[
(set:_consequences to (twirl:"or you'll _bad", "and you'll _good"))
Roll at least (indefinite:$needed), _consequences.
]
</mark>
<br/>
|options>[
(link:"Roll d20")[
(set:$roll to 21-(twist:1,20))
(set:$se to "dice")
(display:"play sound")
(replace:?options)[{
(transition:"zoom")[
<mark>🎲 You rolled (indefinite:$roll). 🎲</mark>
]
}]
(after:time + 1s)[
(_finish: $roll >= $needed)
]
]
]
]
]
}{
(if:$moves < $par)[
(display:"click")
(inc:'moves')
(replace:?moves)[$moves]
(set:_adjs to (a:
(a: 1, 2, 4),
(a: 1, 2, 3, 5),
(a: 2, 3, 6),
(a: 1, 4, 5, 7),
(a: 2, 4, 5, 6, 8),
(a: 3, 5, 6, 9),
(a: 4, 7, 8),
(a: 5, 7, 8, 9),
(a: 6, 8, 9)
))
(for: each _adj, ...($select of _adjs))[
(set:_adj of $game_grid to it * -1)
]
(if:$moves is $par)[
(after:time + 1s)[
(display:"lights out check")
]
]
]
(display:"lights out refresh screen")
}{
(set:_button to (macro: num-type _position, [
(set:_icon to (cond:_position of $game_grid is -1, "bad icon", "good icon"))
(out:)[{
(link-rerun:_icon of $blackjack_params)[
(set:$select to _position)
(display:"lights out press")
]
}]
]))
(replace:?game_screen)[{
(_button:1)(_button:2)(_button:3)<br/>
(_button:4)(_button:5)(_button:6)<br/>
(_button:7)(_button:8)(_button:9)
}]
}{
(unless:$blackjack_params contains "skill check difficulty")[
(set:$blackjack_params's "skill check difficulty" to 50)
]
(set:$chance to (ceil:$blackjack_params's "skill check difficulty" / 3.5))
(if:$blackjack_params contains "skill check")[
(set:_check to "skill check" of $blackjack_params)
(if:_check is in (a:"intellect", "fitness", "charm"))[
(set:_check to "effective " + it)
(set:$chance to (max:1,$chance - _check of $character))
]
](else:)[
(set:$blackjack_params's "skill check" to "none")
]
(set:$game_grid to (lightsout: $blackjack_params's "skill check difficulty"))
(unless:$blackjack_params contains "bad icon")[
(set:$blackjack_params's "bad icon" to "❌")
]
(unless:$blackjack_params contains "good icon")[
(set:$blackjack_params's "good icon" to "✔️")
]
(unless:$blackjack_params contains "success meaning")[
(set:$blackjack_params's "success meaning" to "success")
]
(unless:$blackjack_params contains "bad action")[
(set:$blackjack_params's "bad action" to "lose")
]
(unless:$blackjack_params contains "good action")[
(set:$blackjack_params's "good action" to "win")
]
(replace:?game_screen)[
($highlight:[
(css:"font-size:4vmin")[
<span class='shadow'>
Click a tile to flip it, and all adjacent tiles. Each (print:$blackjack_params's "bad icon") left on the board will add a $chance% chance of failure.
</span>
]
])
]
}{
(set:$result to "pass")
(replace:?game_screen)[($highlight:[(css:"font-size:4vmin")[<span class='shadow'>You (print:$blackjack_params's "good action").</span>]])
(replace:?right_options)[(display:"blackjack gain xp")(link:"Next")[(set:$next to $blackjack_params's "result passage")(set:$result to "pass")(display:"change screen")]]
}{
(set:$result to "fail")
(replace:?game_screen)[($highlight:[(css:"font-size:4vmin")[<span class='shadow'>You (print:$blackjack_params's "bad action").</span>]])]
(replace:?right_options)[(display:"blackjack gain xp")(link:"Next")[(set:$next to $blackjack_params's "result passage")(set:$result to "fail")(display:"change screen")](if:$action_points > 0)[(link:"Use Action Point")[(set:$action_params to (dm:"cost",1,"result",$blackjack_params's "result passage","type","minigame"))(display:"use action point")]]]
}{
(set:$correct to 0)(set:$se to 0)
(if:$minigame's "cock type" is "stripper bbc")[(set:$type to "bbc")(set:$exclude_cocks to (a:))(set:$minigame's "cock type" to "bbc")](else-if:$minigame's "cock type" is "girlcock")[(set:_cockabilities to (twisted:...(range:1,52)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))(set:$type to "normal")](else:)[(set:$type to "normal")(set:$exclude_cocks to (a:))(set:$minigame's "cock type" to "bwc")]
(set:"tries" of $minigame to 1)(display:"masculinity calculate penalty")
(set:$index to 1)
(set:_possibilities to (twisted:...(range:1,363)))(set:$babe_array to (subarray:_possibilities,1,$minigame's "difficulty"))
(set:_cockabilities to (twisted:...((range:1,171))))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))(if:$minigame's "cock type" is "bbc")[(set:_cockabilities to (twisted:...(range:1,32)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))](if:$minigame's "cock type" is "girlcock")[(set:_cockabilities to (twisted:...(range:1,52)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))]}(if:$babecock is "Masculinity Minigame: Disabled")[<div class='options'>(css:"font-size:4vmin")[**Masculinity Minigame Disabled**]
You lose (print:"masculinity penalty" of $minigame) masculinity points and (print:(ceil:("masculinity penalty" of $minigame)/2)) identity. (if:$difference < 0)[
((print:-1 * $difference) less masculinity lost due to your reluctance of (print:$character's "reluctance"))](nl:2)(twirl:$minigame's "reason 1",$minigame's "reason 2",$minigame's "reason 3")
(set:$gain to (ceil:("masculinity penalty" of $minigame)/-2))(display:"gain identity")
(set:$gain to $minigame's "masculinity penalty" * -1)(display:"gain masculinity")(link:"Next")[(set:$next to $minigame's "afterwards")(display:"change screen")]</div>](else:)[<div class='options'>(css:"font-size:4vmin")[**Babe/Cock Memory Test**]
(if:$type is "normal")[You're going to see (text:$minigame's "difficulty") pairs of images. Try to remember which image goes with which.](else-if:$type is "bbc")[You're going to see (text:$minigame's "difficulty") pairs of images. Try to remember which girl goes with which big, black cock. If you get even one wrong... you're not gonna be able to do this. So pay attention.]
(link:"BEGIN LEARNING PHASE")[(set:$next to "masculinity learning")(display:"next")(set:$phase to "learn")(live:(twist:3500,7000))[(if:$phase is "learn")[(display:"masculinity taunt asmr")](stop:)]](if:$type is "normal")[(link:"SKIP (Maximum Identity Loss)")[(set:$character's "identity" to $character's "identity" - $minigame's "masculinity penalty")(display:"refresh stats")(set:$gain to -1 * $minigame's "masculinity penalty")(display:"gain masculinity")(set:$next to $minigame's "afterwards")(display:"change screen")]]
[
]<types|(if:$type is "normal")[
*Modifiers: *
(link-repeat:"Clothed Girls")[(display:"click")(set:$minigame's "babe type" to "clothed")(set:_possibilities to (twisted:...(range:1,309)))(set:$babe_array to (subarray:_possibilities,1,$minigame's "difficulty"))(display:"masculinity refresh types")](link-repeat:"Ahegao Girls")[(display:"click")(set:$minigame's "babe type" to "ahegao")(set:_possibilities to (twisted:...(range:1,46)))(set:$babe_array to (subarray:_possibilities,1,$minigame's "difficulty"))(display:"masculinity refresh types")](link-repeat:"NSFW Girls")[(display:"click")(set:$minigame's "babe type" to "nsfw")(set:_possibilities to (twisted:...(range:1,77)))(set:$babe_array to (subarray:_possibilities,1,$minigame's "difficulty"))(display:"masculinity refresh types")]
(link-repeat:"SFW Cocks")[(display:"click")(set:$minigame's "cock type" to "clothed")(set:_cockabilities to (twisted:...(range:1,31)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))(display:"masculinity refresh types")](link-repeat:"Girl Cocks")[(display:"click")(set:$minigame's "cock type" to "girlcock")(set:_cockabilities to (twisted:...(range:1,52)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))(display:"masculinity refresh types")](link-repeat:"BBC")[(display:"click")(set:$minigame's "cock type" to "bbc")(set:_cockabilities to (twisted:...(range:1,32)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))(display:"masculinity refresh types")](link-repeat:"BWC")[(display:"click")(set:$minigame's "cock type" to "bwc")(set:_cockabilities to (twisted:...((range:1,158))))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))(display:"masculinity refresh types")]</div>](display:"masculinity refresh types")](set:$gain to $minigame's "masculinity penalty")(display:"update movie femininity")<div class='center_screen_full_scroll' data-simplebar><div class='options'>(print:"<img width='40%' height'auto' class='greyborder'
src='img/minigame/masculinity/babes/" + $minigame's "babe type" + "/"+ (text:$babe_array's $index) + ".jpg' height=auto>")(print:"<img width='40%' height='auto' class='greyborder'
src='img/minigame/masculinity/cocks/" + $minigame's "cock type" + "/" + (text:$cock_array's $index) + ".jpg' height=auto>")
<span class='shadow'>Cock $index/(print:length of $babe_array)</span>
(if:$index > 1)[(link:"Previous")[(dec:'index')(display:"next")]](link:"Next")[(if:(twist:1,4) is 1)[(nl:1)(display:"masculinity taunt")
(link:"Next")[(inc:'index')(if:$index > length of $babe_array)[(set:$next to "masculinity testing")(set:$index to 1)](display:"next")]](else:)[(inc:'index')(if:$index > length of $babe_array)[(set:$next to "masculinity testing")(set:$index to 1)](display:"next")]]</div></div>{
(set:$babe_cock_correct to (dm:))
(set:$babe_array_copy to $babe_array)
(set:$cock_array_copy to $cock_array)
(for: each _babe, ...$babe_array)[
(set:$babe_cock_correct's (text:_babe) to $cock_array's $index)
(inc:'index')
]
}<div class='options'>(css:"font-size:4vmin")[**Babe/Cock Testing Phase**]
Now it's time for your test. You must match image pairs that you saw earlier. Click on the correct image to proceed.
(link:"TESTING PHASE")[(set:$phase to "test")(live:(twist:3500,7000))[(if:$phase is "test")[(display:"masculinity taunt asmr")](stop:)](set:$next to "masculinity testing begin")(set:$index to 1)(set:$babe_array to (twisted:...$babe_array))(display:"next")]</div>(if:(track:"asmr taunt","isplaying"))[(track:"asmr taunt","stop")]<div class='options'>{
(set:$correct_cock to (text:($babe_array's $index)) of $babe_cock_correct)
(set:$wrong_cocks to (subarray:((twisted:...$cock_array) - (a:$correct_cock)),1,3))
(set:$cockions to (twisted:...((a:$correct_cock) + $wrong_cocks)))
<div class='top_left_right'>(print:"<img class='greyborder'
src='img/minigame/masculinity/babes/" + $minigame's "babe type" + "/"+ (text:$babe_array's $index) + ".jpg' width=100% height=auto>")</div>(set:_img_1 to "<img class='wobbly' src='img/minigame/masculinity/cocks/" + $minigame's "cock type" + "/" + (text:$cockions's 1) + ".jpg'; width=100%; height=auto>")(set:_img_2 to "<img class='wobbly' src='img/minigame/masculinity/cocks/" + $minigame's "cock type" + "/" + (text:$cockions's 2) + ".jpg'; width=100%; height=auto>")(set:_img_3 to "<img class='wobbly' src='img/minigame/masculinity/cocks/" + $minigame's "cock type" + "/" + (text:$cockions's 3) + ".jpg'; width=100%; height=auto>")(set:_img_4 to "<img class='wobbly' src='img/minigame/masculinity/cocks/" + $minigame's "cock type" + "/" + (text:$cockions's 4) + ".jpg'; width=100%; height=auto>")<span class='quarter'>(link:_img_1)[(set:$next to "masculinity check answer")(set:$choice to 1)(display:"next")](link:_img_2)[(set:$next to "masculinity check answer")(set:$choice to 2)(display:"next")](nl:1)(link:_img_3)[(set:$next to "masculinity check answer")(set:$choice to 3)(display:"next")](link:_img_4)[(set:$next to "masculinity check answer")(set:$choice to 4)(display:"next")]</span>}
</div>{(inc:'index')(if:$cockions's $choice is $correct_cock)[(inc:'correct')]
(if:$index > $babe_array's length)[(set:$next to "masculinity win")(display:"next")](else:)[(set:$next to "masculinity testing begin")(display:"next")]}(masteraudio:"stopall","se")(dec:'index')(set:$phase to "results " + (cond:$correct is $index,"good score",$correct + 1 is $index,"missed one",$correct is 1,"only one",$correct is 0,"fail","missed some"))(display:"masculinity taunt asmr")[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[<div class='options'>(if:$type is "normal")[(css:"font-size:4vmin")[You got $correct/$index right.(set:$minigame's "tries" to (max:(min:$index-$correct,(length of $minigame's "identity penalty")),1))
]
You lost (print:$minigame's "masculinity penalty") points of masculinity, and (print:$minigame's "tries" of $minigame's "identity penalty") identity points. (if:$difference < 0)[
((print:-1 * $difference) less masculinity lost due to your reluctance of (print:$character's "reluctance"))](set:$character's "identity" to $character's "identity" - (("tries" of $minigame) of $minigame's "identity penalty"))(set:$gain to $minigame's "masculinity penalty" * -1)(display:"gain masculinity")(link:"Next")[(masteraudio:"stopall")(set:$next to $minigame's "afterwards")(display:"change screen")]</div>](else-if:$type is "bbc" and $correct >= $index)[(uppercase:(twirl:"You win","Good job","That's right","Congratulations")), (twirl:"ho","slut","bitch")! You got em all. You have earned the right to proceed. Now you better SHAKE that ass.
<div class='option'>(link:"Next")[(set:$next to $minigame's "afterwards")(display:"go back")]</div>](else-if:$type is "bbc")[(set:$next to "masculinity lose")(display:"next")]]<screen|</div><div class='top_right' data-simplebar>[]<right_screen|(if:(datatype:$npc) is datamap)[(display:"npc screen update")](else:)[(display:"location and time")]</div>(masteraudio:"stopall","se")(set:$phase to "results " + (cond:$correct is $index,"good score",$correct + 1 is $index,"missed one",$correct is 1,"only one",$correct is 0,"fail","missed some"))(display:"masculinity taunt asmr")[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[<div class='options'>
(css:"font-size:4vmin")[(if:$type is "normal")[(twirl:"WRONG!","INCORRECT!","NO!","THAT'S WRONG!")](else-if:$type is "bbc")[(twirl:"WRONG","INCORRECT","NO","THAT AIN'T RIGHT"), (twirl:"BITCH","HO","SNOWBUNNY")!] (if:$correct is 0)[You got em ALL wrong.](else:)[You only got $correct/$index.](set:$minigame's "tries" to $index-$correct)
]
(if:$type is "normal")[You will suffer at least (print:$minigame's "tries" of $minigame's "identity penalty" + 1) identity damage. <img src='img/ui/stats/512Iden1.png'; width=30px; height=auto>](if:$type is "bbc")[You're not gonna be able to do this.]
(if:$type is "bbc")[<div class='options'>(set:$next to $minigame's "afterwards fail")(link:"Next")[(display:"change screen")]</div>](else:)[(if:"tries" of $minigame >= length of ($minigame's "identity penalty"))[(link:"ABJECT FAILURE")[(set:$character's "identity" to $character's "identity" - (("tries" of $minigame) of $minigame's "identity penalty"))(display:"refresh stats")(set:$next to $minigame's "afterwards")(display:"go back")]](else:)[(link:"TRY AGAIN")[(set:$babe_array to $babe_array_copy)(set:$next to "masculinity learning")(set:$index to 1)(set:"tries" of $minigame to "tries" of $minigame + 1)(display:"next")]]]</div>]<screen|</div><div class='top_right' data-simplebar>[]<right_screen|(display:"npc screen update")</div>{(set:$minigame to (dm:
"difficulty",7,
"babe type","clothed",
"cock type","nsfw",
"masculinity penalty",1,
"identity penalty",1))}{
(if:(Random:1,2) is 1)[(set:$taunt to (twirl:"Remember to take a long, hard look.","Sure you can remember her?","Take another look, just to be sure.","How about another glance?","Which one turns you on more?","You know which one you crave more, don't you?","Did I catch you licking your lips?","Did you just lick your lips?","Think of a memetic to help you remember.","Don't let your mind forget what it looks like.","Let that cock invade your mind.","Looks yummy, doesn't it?","Still into girls?","A lot for you to enjoy right there!","Cock's in your brain now, isn't it?","Can't tear your eyes away?","Why would you look away?","Which one do you really want?","Which do you want more?","Mouth watering yet?","It's healthier to just accept your new cravings.","Which of these two will stay on your mind?","Bend too far, and you'll break.","Don't you want to be a cum dumpster?","A little cum in your mouth might do you some good!","I think that cock wants to ruin your pretty face.","Don't you feel like sucking something?","I think you're craving something here.","Cock is your new purpose in life.","Don't be ashamed. It's natural to want something that yummy in your mouth.","Embrace who you really are.","Your pretty face makes dicks hard. How does that make you feel?","Give it a kiss, and the rest will happen naturally.","You belong on your knees.","I know which one you're thinking about more.","Surrender.","Don't just suck it. Make love to it.","Don't fight your true nature.","X-Change is totally rewiring your brain.","The pill has rewired your brain - there's no going back.","This is your god now, get on your knees and worship.","Just touch it, it's not gonna hurt you.","You want to be a cumslut.","You want cum in your mouth.","You want cum on your face.","You need cock in your mouth.","I think she's judging you.","Looks like she's judging you... hehe.","Become who you were meant to be.","You'll never forget your first taste.","You'll never forget your first kiss.","Cock-slut.","Cock's hard to get out of your head, isn't it?","Brain off, mouth open.","I bet you want a big hard dick rubbed in your face.","You could help that cock de-stress.","I think you need that, right now.","It would rather be in your mouth.","You could make him feel like a king.","What would she say to you, if you told her what you've done?","I think you want a taste.","That cock might just breed you.","I wonder how heavy it would feel on your face?","Come and worship at the church of cock.","There's nothing wrong with being a slut.","Cock is Life & Cum is Bliss.","Embrace Your True Self.","Making it cum would make you feel sexy.","Sucking cock builds confidence.","Just relax and go to your happy place.","Don't be ashamed of who you really are.","It all starts with that first lick."))](else:)[(set:$taunt to (twirl:$minigame's "reason 1",$minigame's "reason 2",$minigame's "reason 3"))]
<span class='chromatic'>(print:$taunt)</span>
}{
(display:"play song")(set:"retries" of $minigame to "retries" of $minigame + 1)
(set:$index to 1)
(set:$minigame's "cock type" to "nsfw")
(set:_possibilities to (twisted:...(range:1,100)))(set:$babe_array to (subarray:_possibilities,1,$minigame's "difficulty"))
(set:_cockabilities to (twisted:...(range:1,81)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))}
<div class='options'>(css:"font-size:4vmin")[**Babe/Cock Memory Test**]
You're going to see (text:$minigame's "difficulty") pairs of images. Try to remember which image goes with which.
(link:"BEGIN LEARNING PHASE")[(set:$next to "masculinity learning")(display:"next")]
*Optional modifiers: *
(link:"NSFW Girls")[(set:$minigame's "babe type" to "nsfw")(set:_possibilities to (twisted:...(range:1,77)))(set:$babe_array to (subarray:_possibilities,1,$minigame's "difficulty"))](link:"SFW Cocks")[(set:$minigame's "cock type" to "clothed")(set:_cockabilities to (twisted:...(range:1,38)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))](link:"Girl Cocks")[(set:$minigame's "cock type" to "girlcock")(set:_cockabilities to (twisted:...(range:1,56)))(set:$cock_array to (subarray:_cockabilities,1,$minigame's "difficulty"))]</div>{
(set:$minigame's "masculinity penalty" to 1)
(unless:$minigame's "cock type" is "stripper bbc")[
(set:$minigame's "difficulty" to 2)
(if:$minigame's "masculinity level" >= $character's "masculinity")[(set:$crisis to "false")](else:)[(set:$crisis to "true")]
(set:$minigame's "masculinity penalty" to (floor:($character's "masculinity" - $minigame's "masculinity level")/4))
(set:$minigame's "identity penalty" to (range:0,$minigame's "masculinity penalty"))
(unless:(datanames:$minigame) contains "difficulty")[]
(set:$minigame's "difficulty" to (ceil:(max:4,($minigame's "difficulty" + ($minigame's "masculinity penalty" / 3)))))(set:$old_penalty to $minigame's "masculinity penalty")(if:$character's "reluctance" > 8)[(set:$minigame's "masculinity penalty" to ((ceil:$minigame's "masculinity penalty" * 0.5)))](else-if:$character's "reluctance" > 7)[(set:$minigame's "masculinity penalty" to ((ceil:($minigame's "masculinity penalty") * 0.7)))](set:$difference to -1 * ($old_penalty - $minigame's "masculinity penalty"))
(if:$minigame's "masculinity penalty" < 1)[(set:$crisis to "false")]]
}(display:"masculinity calculate penalty")(unless:$crisis is "false")[(link:"MASCULINITY CRISIS")[($cs:"masculinity initialize")]](else:)[(link:"Next")[(masteraudio:"stopall")(set:$next to $minigame's "afterwards")(display:"change screen")]]{(replace:?types)[Babes: <span class='chromatic'>(print:(uppercase:$minigame's "babe type"))</span>
Cocks: <span class='chromatic'>(print:(uppercase:$minigame's "cock type"))</span>]}{
(set:$voice_lines_known to
(dm:
"Remember to take a long, hard look.","remember to take a long hard look",
"Sure you can remember her?","sure you can remember her",
"Take another look, just to be sure.","take another look just to be sure",
"How about another glance?","how about another glance",
"Which one turns you on more?","which one turns you on more",
"You know which one you crave more, don't you?","you know which one you crave more dont you",
"Did I catch you licking your lips?","did i catch you licking your lips",
"Did you just lick your lips?","did you just lick your lips",
"Think of a memetic to help you remember.","think of a memetic to help you remember",
"Don't let your mind forget what it looks like.","dont let your mind forget what it looks like",
"Let that cock invade your mind.","let that cock invade your mind",
"Looks yummy, doesn't it?","looks yummy doesnt it",
"Still into girls?","still into girls",
"Cock's in your brain now, isn't it?","cocks in your brain now isnt it",
"Can't tear your eyes away?","cant tear your eyes away",
"Why would you look away?","why would you look away",
"Which one do you really want?","which one do you really want",
"Which do you want more?","which do you want more",
"You just sucked a guy's cock off for a *discount*.","for a discount",
"How does it feel, getting your face covered in cum?","face covered in cum",
"You're walking around with some dude's cum on your face.","some dudes cum on your face",
"Mouth watering yet?","mouth watering yet",
"It's healthier to just accept your new cravings.","its healthier to just accept your new cravings",
"Which of these two will stay on your mind?","which of these two will stay on your mind",
"Bend too far, and you'll break.","bend too far and youll break",
"Don't you want to be a cum dumpster?","dont you want to be a cum dumpster",
"A little cum in your mouth might do you some good!","a little cum in your mouth might do you some good",
"I think that cock wants to ruin your pretty face.","i think that cock wants to ruin your pretty face",
"Don't you feel like sucking something?","dont you feel like sucking something",
"I think you're craving something here.","i think youre craving something here",
"Cock is your new purpose in life.","cock is your new purpose in life",
"Don't be ashamed. It's natural to want something that yummy in your mouth.","dont be ashamed its natural",
"Embrace who you really are.","embrace who you really are",
"Your pretty face makes dicks hard. How does that make you feel?","your pretty face makes dicks hard",
"Give it a kiss, and the rest will happen naturally.","give it a kiss and the rest will happen naturally",
"You belong on your knees.","you belong on your knees",
"I know which one you're thinking about more.","i know which one youre thinking about more",
"Surrender.","surrender",
"Don't just suck it. Make love to it.","dont just suck it make love to it",
"Don't fight your true nature.","dont fight your true nature",
"X-Change is totally rewiring your brain.","xchange is totally rewiring your brain",
"The pill has rewired your brain - there's no going back.","the pill has rewired your brain theres no going back",
"This is your god now, get on your knees and worship.","this is your god now get on your knees and worship",
"Just touch it, it's not gonna hurt you.","just touch it its not gonna hurt you",
"You want to be a cumslut.","you want to be a cumslut",
"You want cum in your mouth.","you want cum in your mouth",
"You want cum on your face.","you want cum on your face",
"You need cock in your mouth.","you need cock in your mouth",
"I think she's judging you.","i think shes judging you",
"Looks like she's judging you... hehe.","i think she judging you",
"Become who you were meant to be.","become who you were meant to be",
"You'll never forget your first taste.","youll never forget your first taste",
"You'll never forget your first kiss.","youll never forget your first kiss",
"Cock-slut.","cockslut",
"Cock's hard to get out of your head, isn't it?","cocks hard to get out of your head isnt it",
"Brain off, mouth open.","brain off mouth open",
"I bet you want a big hard dick rubbed in your face.","i bet you want a big hard dick rubbed in your face",
"You could help that cock de-stress.","you could help that cock destress",
"I think you need that, right now.","i think you need that right now",
"It would rather be in your mouth.","it would rather be in your mouth",
"You could make him feel like a king.","you could make him feel like a king",
"What would she say to you, if you told her what you've done?","what would she think of you if you told her what youve done",
"I think you want a taste.","i think you want a taste",
"That cock might just breed you.","that cock might just breed you",
"I wonder how heavy it would feel on your face?","i wonder how heavy it would feel on your face",
"Come and worship at the church of cock.","come and worship at the church of cock",
"There's nothing wrong with being a slut.","theres nothing wrong with being a slut",
"Cock is Life & Cum is Bliss.","cock is life and cum is bliss",
"Embrace Your True Self.","embrace your true self",
"Making it cum would make you feel sexy.","making it cum would make you feel sexy",
"Sucking cock builds confidence.","sucking cock builds confidence",
"Just relax and go to your happy place.","just relax and go to your happy place",
"Don't be ashamed of who you really are.","dont be ashamed of who you really are",
"It all starts with that first lick.","it all starts with that first lick"))
(if:(datanames:$voice_lines_known) contains $taunt)[(set:_taunt_text to $taunt of $voice_lines_known)
(newtrack:_taunt_text,"aud/se/taunt/" + _taunt_text + ".mp3")
(set:$se to _taunt_text)
(unless:$female_vo is "Female NPC Voiceovers: Disabled")[(display:"play sound")]
]
}{
}{(unless:(track:"asmr taunt","isplaying"))[(set:_type to $phase)
(if:_type is "learn")[(if:$character's "masculinity" > 65)[(set:$track to "aud/se/taunt/asmr/high masc/learn/learn " + (text:(twist:1,61)) + ".mp3")](else:)[(set:$track to "aud/se/taunt/asmr/med masc/learn/learn " + (text:(twist:1,60)) + ".mp3")]]
(if:_type is "test")[(if:$character's "masculinity" > 65)[(set:$track to "aud/se/taunt/asmr/high masc/test/test " + (text:(twist:1,60)) + ".mp3")](else:)[(set:$track to "aud/se/taunt/asmr/med masc/test/test " + (text:(twist:1,67)) + ".mp3")]]
(if:_type is "results fail")[(if:$character's "masculinity" > 65)[(set:$track to "aud/se/taunt/asmr/high masc/results/fail/fail " + (text:(twist:1,17)) + ".mp3")](else:)[(set:$track to "aud/se/taunt/asmr/med masc/results/fail/fail " + (text:(twist:1,33)) + ".mp3")]]
(if:_type is "results only one")[(if:$character's "masculinity" > 65)[(set:$track to "aud/se/taunt/asmr/high masc/results/only one/only one " + (text:(twist:1,10)) + ".mp3")](else:)[(set:$track to "aud/se/taunt/asmr/med masc/results/only one/only one " + (text:(twist:1,18)) + ".mp3")]]
(if:_type is "results missed some")[(if:$character's "masculinity" > 65)[(set:$track to "aud/se/taunt/asmr/high masc/results/missed some/missed some " + (text:(twist:1,10)) + ".mp3")](else:)[(set:$track to "aud/se/taunt/asmr/med masc/results/missed some/missed some " + (text:(twist:1,11)) + ".mp3")]]
(if:_type is "results missed one")[(if:$character's "masculinity" > 65)[(set:$track to "aud/se/taunt/asmr/high masc/results/missed one/missed one " + (text:(twist:1,11)) + ".mp3")](else:)[(set:$track to "aud/se/taunt/asmr/med masc/results/missed one/missed one " + (text:(twist:1,10)) + ".mp3")]]
(if:_type is "results good score")[(if:$character's "masculinity" > 65)[(set:$track to "aud/se/taunt/asmr/high masc/results/good score/good score " + (text:(twist:1,21)) + ".mp3")](else:)[(set:$track to "aud/se/taunt/asmr/med masc/results/good score/good score " + (text:(twist:1,9)) + ".mp3")]]
(replacetrack:"asmr taunt",$track)
($play:"sound","asmr taunt")]
}{
(if:$space is "yes")[
(set:$slut_word to (twirl:"HO","SLUT","WHORE","HO","SLUT","HO","THOT","SEXY","SEXY BITCH"))
(set:$icon to (cond:
$amount is 3, "💵💵💵",
$amount is 2, "💵💵",
"💵",
))
|shift>[
<mark>
(text-style:"rumble")[
(link:$icon)[
(set:$bar_dance's "slut amount" to $bar_dance's "slut amount" + 1)
(set:$button to "slut")
(display:"bar dance quicktime reward")
]
]
</mark>
<br/>
]
]
}{
(if:$space is "yes")[(inc:"timer",10)
(set:$icon to (cond:
$amount is 3, "💵💵💵",
$amount is 2, "💵💵",
"💵",
))
|space>[
<br/>
<mark>
(text-style:"rumble")[
(link:$icon)[
(set:$button to "normal")
(display:"bar dance quicktime reward")
]
]
</mark>
]
]
}{
(set:$se to "kaching")
(display:"play sound")
(replace:?space)[]
(replace:?shift)[]
(set:$bonus to (clamp:(twist:$bar_dance's "satisfaction",(get_sexy_dancing_bar:)),1,10))
(set:$bonus to $bonus * $amount)
(if:$button is "slut")[
(inc:'slut_amount')
(set:$bonus to $bonus * 2)
(if:(a:"shake ass","jiggle breasts","shake ass 2") contains $bar_dance's "style")[
(set:$bonus to $bonus + $bar_dance's "horniness")
]
]
(if:(a:"pole") contains $bar_dance's "style")[
(set:$bonus to $bonus + $bar_dance's "satisfaction")
]
(set:$bar_dance's "earnings" to $bar_dance's "earnings" + $bonus)
(set:$bar_dance's "money earned" to $bar_dance's "money earned" + $bonus)
(replace:?space)[{
<br/>
<mark>
(if:$button is "slut")[😈$slut_word!😈] 💵 (color:"green")[+$$bonus]
</mark>
}]
(replace:?shift)[{
<mark>
💵 (color:"green")[+$$bonus] (if:$button is "slut")[😈$slut_word!😈]
</mark>
<br/>
}]
(display:"bar dance sidebar")
}{
(set:_correct_target to 5)
(set:_random_target to 5)
(set:_amount to 1)
(if:$bar_dance's "style" is "dance close")[
(set:_amount to (twirl:1,2,2,3,3))
](else-if:$bar_dance's "style" is "jiggle breasts")[
(set:_amount to (twirl:1,1,1,1,2,3))
(set:_correct_target to 2)
(set:_random_target to 3)
](else:)[
(set:_amount to (twist:1,3))
]
(if:$correct > _correct_target and (twist:1,_random_target) is 1)[
(set:$space to "yes")
(set:$amount to _amount)
]
}{
(if:$space is "yes")[
(set:$icon to (cond:$bonus is "space", "⚡⚡", "⚡"))
|space>[
<br/>
<mark>
(text-style:"rumble")[
(link:$icon)[
(set:$button to "normal")
(set:$select to "space")
(display:"quicktime energy button reward")
]
]
</mark>
]
]
}{
(if:$space is "yes")[
(set:$icon to (cond:$bonus is "shift", "⚡⚡", "⚡"))
|shift>[
<mark>
(text-style:"rumble")[
(link:$icon)[
(set:$button to "normal")
(set:$select to "shift")
(display:"quicktime energy button reward")
]
]
</mark>
<br/>
]
]
}{
(set:$se to "pleasure")
(display:"play sound")
(set:$slut_word to (twirl:"BREATHE","BREATHE DEEPLY","STRENGTH RECOVERED","DEEP BREATHS") + (twirl:"!","!!","..."))
(replace:?space)[]
(replace:?shift)[]
(if:$select is $bonus)[
(inc:'energy_bonus',2)
(set:$icon to "⚡⚡")
](else:)[
(set:$energy_bonus to 1)
(set:$icon to "⚡")
]
(replace:?space)[{
<br/>
<mark>
$icon $slut_word $icon
</mark>
}]
(replace:?shift)[{
<mark>
$icon $slut_word $icon
</mark>
<br/>
}]
(display:"real time energy gain")
}{
(if:$correct > 5 and (twist:1, (cond:$energy > 0, 7, 9)) is 1)[
(set:$space to "yes")
(set:$bonus to (twirl:"space","shift"))
]
}{
(if:$space is "yes")[
(set:$icon to (cond:$bonus is "space", "💦💦", "💦"))
|space>[
<br/>
<mark>
(text-style:"rumble")[
(link:$icon)[
(set:$button to "normal")
(set:$select to "space")
(display:"quicktime pleasure button reward")
]
]
</mark>
]
]
}{
(if:$space is "yes")[
(set:$icon to (cond:$bonus is "shift", "💦💦", "💦"))
|shift>[
<mark>
(text-style:"rumble")[
(link:$icon)[
(set:$button to "normal")
(set:$select to "shift")
(display:"quicktime pleasure button reward")
]
]
</mark>
<br/>
]
]
}{
(set:$space to "no")
(set:_random_target to (cond:$character's "arousal" > 8, 6, 7))
(if:$correct > 5 and (twist:1,_random_target) is 1)[
(set:$space to "yes")
(set:$bonus to (twirl:"space","shift"))
]
}{
(set:$se to "pleasure")
(display:"play sound")
(set:$slut_word to (twirl:"MMM","Nnngh","Ungh","Mmm","Mmmmm","Ngh") + (twirl:"!","!!","...","-"))
(if:$select is $bonus)[
(inc:'pleasure_bonus',2)
(set:$icon to "💦💦")
](else:)[
(set:$pleasure_bonus to 1)
(set:$icon to "💦")
]
(replace:?space)[{
<br/>
<mark>
$icon $slut_word $icon
</mark>
}]
(replace:?shift)[{
<mark>
$icon $slut_word $icon
</mark>
<br/>
}]
(display:"real time pleasure gain")
(display:"update your pleasure")
}<div class='options'>{
[
(replace:?right_options)[(nl:1)|enter>[(unless:$mobile_mode is "Real Time Minigames: Disabled")[(link:"Play minigame")[(replace:?right_options)[](if:$type is "bj")[(if:(datanames:$npc) contains "cockimg")[(replace:?right_options)[(print:"<img class='greyborder' src='" + (text:$npc's "cockimg") + "' width='100%' height=auto>")]]](set:$method to "minigame")
(replace:?challenge_text)[(if:$type is "bj" or $type is "satisfy")[(if:(datanames:$quicktime_params) contains "target")[(set:$time_target to $quicktime_params's "target")](else:)[(set:$time_target to 20)]($highlight:[(css:"font-size:4vmin")[<span class='shadow'>(if:$type is "satisfy")[Make this last at least $time_target seconds.](else:)[(twirl:"Make this last at least $time_target seconds.","Make this last at least $time_target seconds.","Go slow enough to make this last at least $time_target seconds.")](if:(twist:1,6) is 1)[ (twirl:"It isn't a race...","Slow and steady wins the race.")]</span>]])](if:$type is "group handjob")[(if:(datanames:$quicktime_params) contains "target")[(set:$time_target to $quicktime_params's "target")](else:)[(set:$time_target to 20)]($highlight:[(css:"font-size:4vmin")[<span class='shadow'>(twirl:"Make this handjob last at least $time_target seconds.","Stroke them for at least $time_target seconds.")</span>]])](if:$type is "masturbate")[(set:$time_target to 25)($highlight:[(css:"font-size:4vmin")[<span class='shadow'>(twirl:"Last $time_target seconds, and you'll cum harder.","Last at least $time_target seconds to cum harder.","Last at least $time_target seconds, and you'll cum harder.")(if:(twist:1,6) is 1)[ (twirl:"No need to rush.","This is your time...","You're on your own clock...")]</span>]])](else-if:(datanames:$quicktime_params) contains "objective text")[($highlight:[(css:"font-size:4vmin")[<span class='shadow'>(print:$quicktime_params's "objective text")</span>]])]]
(replace:?directions)[(unless:(a:"try to cum","recover","stripping") contains $type)[<mark>**Use your arrow keys (or WASD) in 3... (after:time + 1s)[2... (after:time + 1s)[1...]]**</mark>](else:)[<mark>**Use your arrow keys (or WASD), and watch for bonuses!**</mark>](if:$type is "stripping")[(nl:2)
<mark>💵 Press the **SPACEBAR** when you see money. 💵</mark>(nl:1)
<mark>😈 Hit **SHIFT** instead to (twirl:"SLUT IT UP","BE A HO","REALLY SHAKE IT","BE SUPER SLUTTY") and double that $$$! 😈</mark>](if:$type is "try to cum")[(nl:2)
<mark>Press **SPACEBAR** or **SHIFT** to gain extra pleasure when you see 💦 icons!(nl:1)SPACEBAR: lower option(nl:1)SHIFT: upper option</mark>](if:$type is "recover")[(nl:2)
<mark>Press **SPACEBAR** or **SHIFT** to gain extra stamina when you see ⚡ icons!(nl:1)SPACEBAR: lower option(nl:1)SHIFT: upper option</mark>]](unless:(a:"try to cum","recover","stripping") contains $type)[(live:3s)[(replace:?directions)[{(display:"quicktime next sequence")}](display:"quicktime timer")(stop:)]](else:)[(replace:?right_options)[|enter>[(link:"Begin")[(set:$minigame_played to "true")(replace:?directions)[{(display:"quicktime next sequence")}](display:"quicktime timer")]]]]]]](nl:1)(display:"quicktime skill check")(if:$minigame_skip is "Skippable Minigames: On")[
(link:"Skip (win)")[(replace:?right_options)[](set:$next to $quicktime_params's "result passage")(set:$result to "pass")(display:"change screen")]
(link:"Skip (lose)")[(replace:?right_options)[](set:$next to $quicktime_params's "result passage")(set:$result to "fail")(display:"change screen")]]]
]<directions|
}</div>{
(set:$correct_dir to $index of $quicktime_params's "sequence")
<!-- Sex toy integration: Call hook -->
(display:"buttplug quicktime interaction")
(display:"buttons")
(set:$index to (cond:
it is $length, 1,
it + 1
))
}{
(set:_button_dir to (macro: str-type _correct_dir, [
(set:$space to "no")
(set:_top_button to "")
(set:_bottom_button to "")
(unless:_correct_dir is "off")[
(if:$type is "stripping")[
(display:"bar dance check spacebar")
(set:_top_button to "quicktime slut button")
(set:_bottom_button to "quicktime money button")
](else-if:$type is "try to cum")[
(display:"pleasure check spacebar")
(set:_top_button to "quicktime pleasure button shift")
(set:_bottom_button to "quicktime pleasure button space")
](else-if:$type is "recover")[
(display:"energy check spacebar")
(set:_top_button to "quicktime energy button shift")
(set:_bottom_button to "quicktime energy button space")
]
]
(set:_button_icon to (macro: str-type _dir, [
(out:)[{
(link-rerun:"<img src='img/ui/buttons/64button" + (cond: _correct_dir is _dir, "2", "1") + _dir + ".png' width=64px height=64px>")[
(set:$dir to _dir)
(display: (cond: _correct_dir is _dir, "buttons correct", "buttons incorrect"))
]
}]
]))
(replace:?directions)[{
<span class='borderless'>
(unless:_top_button is "")[(display:_top_button)]
|up>[(_button_icon:"up")]
<br/>
|left>[(_button_icon:"left")]
|down>[(_button_icon:"down")]
|right>[(_button_icon:"right")]
(unless:_bottom_button is "")[(display:_bottom_button)]
</span>
}]
(out:)[]
]))
(set:$last_dir to $dir)
(set:$dir to "none")
(_button_dir:"off")
(after:time + 50)[
(if:$interrupts > 0 and (($index % 10) is $interrupt_mod))[
(set:$text to "options")
(display:$quicktime_params's "interrupt passage")
(display:"quicktime choice")
](else:)[
(_button_dir:$correct_dir)
]
]
}{
(set:$dir to "none")
(replace:?directions)[{
<span class='borderless'>
|up>[(link-repeat:"<img src='img/ui/buttons/64button1up.png'; width=64px; height=auto>")[(set:$dir to "up")(display:"buttons incorrect")]]
<br/>
|left>[(link-repeat:"<img src='img/ui/buttons/64button1left.png'; width=64px; height=auto>")[(set:$dir to "left")(display:"buttons incorrect")]]
|down>[(link-repeat:"<img src='img/ui/buttons/64button1down.png'; width=64px; height=auto>")[(set:$dir to "down")(display:"buttons incorrect")]]
|right>[(link-repeat:"<img src='img/ui/buttons/64button1right.png'; width=64px; height=auto>")[(set:$dir to "right")(display:"buttons incorrect")]]
</span>
}]
(after:time + 0.8s)[(if:$dir is "none")[(display:"buttons correct")]]
}{
(inc:'correct')
(set:$prev_combo to $combo)
(set:$old_dir to $dir)
(set:$combo to (min:10, (ceil:($correct + 1) / 4)))
(set:$quicktime_params's "points" to it + ($combo + 2) * $gain_amount / 3)
(if:$correct % 2 is 0)[
(set:$se to "quicktime correct " + (text:$combo) + " A")
](else:)[
(set:$se to "quicktime correct " + (text:$combo) + " B")
]
(display:"play sound")
($passage_tags:"quicktime_correct")
(if:(datanames:$quicktime_params) contains "real time his pleasure")[
(if:$timer % 7 is 0)[
(set:$gain to 1)
(if:$his_pleasure < $his_pleasure_threshold)[
(set:$his_pleasure to (min:$his_pleasure + $gain,$his_pleasure_threshold))
(display:"update his pleasure")
]
]
]
(replace:?score_bar)[{
(set:$points_to_win to $quicktime_params's "points to win")
(set:$points to $quicktime_params's "points")
(updateprogress:$points_to_win,$points,$timer_multiplier)
}]
(set:$font_size to "font-size:" + (cond:
$combo is 10, "4vmin",
"1." + (text:$combo) + "em"
))
(replace:?score)[{
(css:$font_size)[(if:$timer_multiplier > 3)[($notification_still:"⚠️ Finish up! ⚠️")]
<mark>
(if:$combo < 10)[
Combo: $correct ((text:$combo)x)
](else:)[
(text-style:"shudder")[Combo: $correct ((text:$combo)x) (MAX)]
]
</mark>
]
}]
(display:"quicktime check")
(if:$quicktime is "running")[
(display:"quicktime next sequence")
]
}{
(set:$se to "quicktime incorrect")
(display:"play sound")
(set:$quicktime_params's "points" to $quicktime_params's "points" - ($gain_amount*3))
($passage_tags:"quicktime_incorrect")
(replace:?score_bar)[{
(set:$points_to_win to $quicktime_params's "points to win")
(set:$points to $quicktime_params's "points")
(updateprogress:$points_to_win,$points,$timer_multiplier)
}]
(replace:?score)[{
<mark>❌COMBO LOST!❌</mark>
}]
(after:time + 0.25s)[(replace:?score)[]]
(display:"quicktime check")
(if:$quicktime is "running")[
(display:"quicktime next sequence")
]
(set:$correct to 0)
}{
(set:$good to (twirl:"up","down"))
(set:$up_choice to "SHIFT: " + (cond:$good is "up", $good_choice, $bad_choice))
(set:$down_choice to "SPACEBAR: " + (cond:$good is "down", $good_choice, $bad_choice))
(replace:?directions)[{
|shift>[
(link:$up_choice)[
(display:"quicktime choice " + (cond:$good is "up", "good", "bad"))
]
]
<br/>
|space>[
(link:$down_choice)[
(display:"quicktime choice " + (cond:$good is "down", "good", "bad"))
]
]
}]
(dec:'interrupts')
}{
(set:$text to "good")(display:"quicktime decrease disable")
(replace:?directions)[{
<mark>
(display:$quicktime_params's "interrupt passage")
</mark>
}]
(after:time + 2.5s)[
(display:"quicktime decrease enable")
(display:"buttons correct")
]
}{
(set:$text to "bad")
(replace:?directions)[{
<mark>
(display:$quicktime_params's "interrupt passage")
</mark>
}]
(after:time + 2.5s)[
(display:"buttons incorrect")
]
}{
(set:$quicktime_decrease to "disabled")
}{
(set:$quicktime_decrease to "enabled")
}{
(set:_afterwards to (twisted:"up","down","up","down","none","up","down","up","down","up","down","none","up","left","right"))
(set:_previous to (twisted:"up","down","up","down","none","up","down","up","down","up","down","none","up","left","right"))
(set:"sequence" of $quicktime_params to _previous + "sequence" of $quicktime_params + _afterwards)
}{(set:$timer_multiplier to 0)
(set:$dontcum to "finished",$quicktime_decrease to "enabled",$quicktime to "over")
(if:(datanames:$quicktime_params) contains "media")[
(set:$media to $quicktime_params's "media")
](else:)[
(set:$media to "video")
]
(set:$minigame_played to "false")
(set:$combo to 1)
(set:$interrupt_mod to (twist:7,9))
(if:(datanames:$quicktime_params) contains "interrupt passage")[
(set:$interrupts to $quicktime_params's "interrupt count")
](else:)[
(set:$interrupts to 0)
]
(set:$game_type to "quicktime")
(if:(datanames:$quicktime_params) contains "skill check")[
(set:$skill_check to $quicktime_params's "skill check")
(if:(datanames:$quicktime_params) contains "skill check difficulty")[
(set:$skill_difficulty to $quicktime_params's "skill check difficulty")
](else:)[
(set:$skill_difficulty to 50)
]
](else:)[
(set:$skill_check to "random")
(set:$skill_difficulty to 50)
]
(set:$double_time to "false")
(set:$quicktime_params's "sequence" to $quicktime_params's "sequence" - (a:"none"))
<div class="game_header">
(if:$media is "picture")[
(print:"<img class='greyborder' src='img/" + $quicktime_params's "backdrop" + "' width=100% height=auto>")
](else:)[
(print:"<video disableRemotePlayback src='img/" + $quicktime_params's "backdrop" + "' autoplay='' loop='' " + $muted + " playsinline/>")
]
(set:$correct to 0)
(set:$response_time to "none")
(set:$type to "none")
(if:(datanames:$quicktime_params) contains "type")[
(if:"type" of $quicktime_params is "bj")[
(set:$type to "bj")
(if:$sex_loop is 0)[
(display:"blowjob sounds")
]
(display:"play sex loop")
](else-if:"type" of $quicktime_params is "massage")[
(set:$type to "massage")
](else-if:"type" of $quicktime_params is "masturbate")[
(set:$type to "masturbate")
](else-if:"type" of $quicktime_params is "stripping")[
(set:$type to "stripping")
](else-if:type of $quicktime_params is "try to cum")[
(display:"play sex loop")
(set:$type to "try to cum")
(set:$pleasure_bonus to 0)
](else-if:type of $quicktime_params is "recover")[
(display:"play sex loop")
(set:$type to "recover")
(set:$energy_bonus to 0)
](else-if:type of $quicktime_params is "satisfy")[
(set:$type to "satisfy")
]
](else:)[
(set:$type to "null")
]
(set:$responding to "false")
(set:$timer to 0)
(set:$quicktime to "running")
(set:$timer_loss to 0.75) (if:$quicktime_difficulty is "Quicktime Difficulty: Hardcore")[(set:$timer_loss to 1)]
(set:$gain_amount to 1)
(set:$correct_dir to "none")
(set:$length to length of ($quicktime_params's "sequence"))
(set:$index to 1)
<div class="game_header_text">
|challenge_text>[]
[
(display:"quicktime buttons")
]<arrows|
</div>
</div>
<div class="options"></div>
[
(set:$points_to_win to $quicktime_params's "points to win")
(set:$points to $quicktime_params's "points")
(updateprogress:$points_to_win,$points)
]<score_bar|
<div id="win-bar">
<div class='bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'></div>
</div>
<table cellpadding="0" cellspacing="0">
<tr>
<div class="options">
[]<score|
</div>
</tr>
</table>
}{
(replace:?challenge_text)[]
(replace:?score_bar)[]
(live:1s)[(inc:'timer')(if:$quicktime is "over")[
(replace:?challenge_text)[]
](else:)[
(replace:?challenge_text)[(unless:$type is "stripping")[<span class='shadow'>($highlight:[(css:"font-size:4em")[$timer]])</span>]]
](if:$quicktime is "over")[
(stop:)
]]
(live:(cond: $quicktime_difficulty is "Quicktime Difficulty: Hardcore", 0.65s, $quicktime_difficulty is "Quicktime Difficulty: Easy", 1s, 0.75s))[
(if:(a:"bj","masturbate","satisfy") contains $type)[
]
(if:$quicktime is "over")[
(stop:)
](else:)[
(set:$points_to_win to $quicktime_params's "points to win")
(set:_multiplier to (cond:
$timer >= $points_to_win * 8, 6,
$timer >= $points_to_win * 7, 5,
$timer >= $points_to_win * 6, 4.5,
$timer >= $points_to_win * 5, 4,
$timer >= $points_to_win * 4.5, 3.5,
$timer >= $points_to_win * 4, 3,
$timer >= $points_to_win * 3.5, 2.75,
$timer >= $points_to_win * 3, 2.5,
$timer >= $points_to_win * 2.5, 2.25,
$timer >= $points_to_win * 2, 2,
$timer >= $points_to_win * 1.5, 1.75,
$timer >= $points_to_win * 1, 1.5,
$timer >= $points_to_win * 0.5, 1.25,
1
))
(unless:$quicktime_decrease is "disabled")[(set:$timer_multiplier to _multiplier)(set:$quicktime_params's "points" to it - ($timer_loss * _multiplier))]
(set:$points to $quicktime_params's "points")
(updateprogress:$points_to_win, $points, $timer_multiplier)
(display:"quicktime check")
]
]
}{
(set:_link to "")
(if:$quicktime_params's "points" >= $quicktime_params's "points to win")[
(unless:($buttplug_is_pleasure_meter_interaction_active:))[($buttplug_stop_all:)]
(set:$quicktime to "over")
(set:$result to "pass")
(set:_link to "You win!")
(if:(a:"bj","satisfy") contains $type and $time_target > $timer)[
(set:$result to "fail")
(set:_link to "Not long enough...")
]
(if:$type is "masturbate" and $time_target > $timer)[
(set:$result to "fail time")
]
(if:$type is "bj" and (($time_target*2) <= $timer))[
(set:$double_time to "true")
]
](else-if:$quicktime_params's "points" <= 0)[
(set:$result to "fail")
(set:_link to "You lose...")
]
(unless:_link is "")[
(replace:?arrows)[]
(replace:?challenge_text)[]
($buttplug_stop_all:)
(set:$quicktime to "over")
(set:$minigame_played to "true")
(set:$next to $quicktime_params's "result passage")
(replace:?right_options)[
(link:_link)[
(display:"change screen")
]
(if:$result is "pass" and $combo > 9)[(inc:"combo_xp_buffs")($show_tooltip:[($notification_still:"+1% XP from max-level combo!")],[Your current XP modifier from minigame combos is $combo_xp_buffs%. This will decrease slightly weekly.])]
]
(after:time + 1s)[
(display:"quicktime gain xp")
]
]
}{
(if: $office_girls_blowjob_minigame is 1)
[
(if:$type is "transactional sex")[
(replace:?right_options)[<!-- this would normally show a doggystyle image here-->]
](else:)[
(replace:?right_options)[]
]
(set:$office_girls_blowjob_minigame to 0)
]
(else:)
[
(set:$office_girls_blowjob_minigame to 0)
(if:$type is "transactional sex")[
(replace:?right_options)[(print: "<img class='greyborder' src='img/characters/sex/doggy/" + $character's "id" + ".jpg' width='100%' height=auto>")]
](else:)[
(replace:?right_options)[]
]
]
}{
(set:_high_percentage to (dm:
1,30,
2,35,
3,45,
4,50,
5,60,
6,70,
7,80,
8,85,
9,90,
10,95))
(set:_low_percentage to (dm:
1,15,
2,30,
3,40,
4,50,
5,60,
6,70,
7,80,
8,85,
9,90,
10,95))
(set:_check to (macro: num-type _percentage_chance, str-type _use_skill, [
(set:$percentage_chance to _percentage_chance)
(out:)[{
(display:"minigames disabled factor")(set:_percentage_chance to $percentage_chance)
(link:_use_skill + " (" + (text:_percentage_chance) + "%)")[
(replace:?arrows)[]
(replace:?challenge_text)[]
(replace:?right_options)[{
(set:$se to "dice")
(display:"play sound")
(display:"quicktime skill check result")
}]
]
}]
]))
(set:_skill_check to (macro: num-type _skill_level, dm-type _percentage, str-type _use_skill, [
(set:$percentage_chance to _skill_level of _percentage)
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:(_difficulty_mod + $percentage_chance + $percentage_chance)/3), 5, 95))
(out:)[{
(_check: $percentage_chance, _use_skill)
}]
]))
(if:$skill_check is "bj" or $skill_check is "blowjob")[
(_skill_check: ($clamp:(get_blowjob:),1,10), _high_percentage, "Use your BJ skills")
](else-if:$skill_check is "fitness")[
(_skill_check: ($clamp:(get_fitness:),1,10), _high_percentage, "Fitness check")
](else-if:$skill_check is "intellect")[
(_skill_check: ($clamp:(get_fitness:),1,10), _high_percentage, "Intellect check")
](else-if:$skill_check is "charm")[
(_skill_check: ($clamp:(get_fitness:),1,10), _high_percentage, "Charm check")
](else-if:$skill_check is "titfuck")[
(_skill_check: ($clamp:(get_titfuck:),1,10), _high_percentage, "Titfuck skill check")
](else-if:$skill_check is "handjob")[
(_skill_check: ($clamp:(get_handjob:),1,10), _high_percentage, "Use your handjob skills")
](else-if:$skill_check is "female masturbation")[
(_skill_check: ($clamp:(get_female_masturbation:),1,10), _high_percentage, "Use your female masturbation skills")
](else-if:$skill_check is "girl pleasure")[
(_skill_check: ($clamp:(get_pleasuring_girls:),1,10), _high_percentage, "Female pleasure skill check")
](else-if:$skill_check is "orgasm control")[
(_skill_check: ($clamp:(get_orgasm_control:),1,10), _high_percentage, "Orgasm control skill check")
](else-if:$skill_check is "arousal denial")[
(_skill_check: ($clamp:(get_arousal_denial:),1,10), _high_percentage, "Rely on your willpower")
](else-if:$skill_check is "gag reflex")[
(_skill_check: ($clamp:(get_gag_reflex:),1,10), _low_percentage, "Rely on your gag reflex")
](else-if:$skill_check is "sexy dance bar")[
(set:$slut_amount to 0)
(_skill_check: ($clamp:(get_sexy_dancing_bar:),1,10), _low_percentage, "Insta-Strip™ dance skills")
](else-if:$skill_check is "dance")[
(set:$slut_amount to 0)
(_skill_check: ($clamp:(get_sexy_dancing:),1,10), _low_percentage, "Dancing skill check")
](else-if:$skill_check is any of (a:"milking","milk"))[
(_skill_check: ($clamp:(get_milking:),1,10), _low_percentage, "Milking skill check")
](else-if:$skill_check is "passive sex")[
(_skill_check: ($clamp:(get_sub_sex:),1,10), _high_percentage, "Passive sex skill check")
](else-if:$skill_check is "active sex")[
(_skill_check: ($clamp:(get_dom_sex:),1,10), _high_percentage, "Active sex skill check")
](else-if:$skill_check is "male masturbation")[
(_skill_check: ($clamp:(get_male_masturbation:),1,10), _high_percentage, "Use your male masturbation skills")
](else-if:$skill_check is "random")[
(set:_luck_text to (twirl:
"Leave it to chance",
"Let Lady Luck decide",
"Let fate decide",
"Leave it to chance",
"Let the dice decide",
"Rely on luck"))
(_check: 100 - $skill_difficulty, _luck_text + " 🎲")
]
}{
(set:$timer to 30)
(if:$game_type is "dont cum")[
(replace:?timer)[]
]
(set:$method to "skill check")
(set:$roll to 21-(twist:1,20))
(set:$needed to (20 - (floor:$percentage_chance*0.2)) + 1)
(if:$needed is 0)[
(set:$needed to 1)
]
(if:$needed > 20)[
(set:$needed to 20)
]
(if:$skill_check is "sexy dance bar")[
<br/>
]
(color:$palette_colors's 4th)[
(if:$needed is 20)[
You need to roll a 20.
](else-if:$needed is 1)[(set:$needed to 2)
As long as you don't roll a 1, you're good.
](else:)[
(twirl:
"You need to roll a $needed or higher to succeed.",
"You need at least a $needed...",
"You need a $needed or higher to pass...",
"Gotta roll at least a $needed.")
]
]
<br/>
D20 roll: <span class='shadow'>[$roll]<dice|</span>
(display:"quicktime gain xp")
<br/>
(if:$roll >= $needed)[
(if:$game_type is "quicktime")[
(replace:?score_bar)[{
(updateprogress:$quicktime_params's "points to win",$quicktime_params's "points to win")
}]
]
(set:$result to "pass")
(if:$skill_check is ("female masturbation" or $skill_check is "male masturbation") and $needed > ($roll - 5))[
(set:$result to "fail time")
]
(twirl:
"You win!",
"Nice!",
"You got it!")
](else:)[
(if:$game_type is "quicktime")[
(replace:?score_bar)[{
(updateprogress:$quicktime_params's "points to win",0)
}]
]
(set:$result to "fail")
(if:($needed - $roll < 2))[
(twirl:
"You fail, just barely...",
"So close!",
"Almost!",
"Too bad, that was close!")
](else:)[
(twirl:
"You lose.",
"Too low.",
"You fail.")
]
]
<br/>
(display:"skill check bonuses")
(link:"Next")[
(replace:?right_options)[{
(if:$skill_check is "sexy dance bar")[
(display:"bar dance sidebar")
]
}]
(set:$next to $quicktime_params's "result passage")
(display:"change screen")
](if:$result is "fail")[(if:$action_points > 0)[(link:"Use Action Point")[(set:$action_params to (dm:"cost",1,"result",$quicktime_params's "result passage","type","minigame"))(display:"use action point")]]]
}{
(set:_time to $timer)
(if:$quicktime_params contains "time")[
(set:_time to $quicktime_params's "time")
]
(set:$gain_base to (cond:
$method is "skill check", 5,
$game_type is "quicktime", (ceil:(min:(max:($timer / 2.5),5),20)),
(ceil:(min:(max:((_time - $timer) / 3),5),20))
))
(set:$gain to (round:$gain_base * $score_multiplier))
(unless:$method is "skill check")[
(if:$quicktime_difficulty is "Quicktime Difficulty: Hardcore")[
(set:$gain to (floor:$gain * 1.25))
]
(if:$quicktime_difficulty is "Quicktime Difficulty: Easy")[
(set:$gain to (ceil:$gain * 0.75))
]
]
(set:_gain_xp to (macro: str-type _skill_name, str-type _xp_name, dm-type _talent, codehook-type _set, [
(set:$skill_name to _skill_name)
(set:$message to "($gain_base base x " + (text:$score_multiplier) + "x multiplier)" + (cond:$method is "skill check","",$quicktime_difficulty is "Quicktime Difficulty: Hardcore"," (+25% Hardcore bonus)",$quicktime_difficulty is "Quicktime Difficulty: Easy"," (-25% Easy penalty)",""))
(set:$archetype_msg to "")
(set:$current_skill to _talent)
(display:"generic gain xp calc")
(out:)[{
_set
}]
]))
(if:$skill_check is "bj")[
(_gain_xp: "BJ skill", "blowjob", $blowjob_talent, [(set:$blowjob_talent to $current_skill)(gain_blowjob:0)])
](else-if:$skill_check is "titfuck")[
(_gain_xp: "titfuck skill", "titfuck", $titfuck_talent, [(set:$titfuck_talent to $current_skill)(gain_titfuck:0)])
](else-if:$skill_check is "handjob")[
(_gain_xp: "Handjob skill", "handjob", $handjob_talent, [(set:$handjob_talent to $current_skill)(gain_handjob:0)])
](else-if:$skill_check is "dance")[
(_gain_xp: "Dancing skill", "dance", $sexy_dancing_talent, [(set:$sexy_dancing_talent to $current_skill)(gain_sexy_dancing:0)])
](else-if:$skill_check is "female masturbation")[
(_gain_xp: "Masturbation skill", "masturbation", $female_masturbation_talent, [(set:$female_masturbation_talent to $current_skill)(gain_female_masturbation:0)])
](else-if:$skill_check is "girl pleasure" or $skill_check is "female pleasure")[
(_gain_xp: "Female pleasure skill", "female pleasure", $pleasuring_girls_talent, [(set:$pleasuring_girls_talent to $current_skill)(gain_pleasuring_girls:0)])
](else-if:$skill_check is "orgasm control")[
(_gain_xp: "Orgasm control skill", "orgasm control", $orgasm_control, [(set:$orgasm_control to $current_skill)(gain_orgasm_control:0)])
](else-if:$skill_check is "arousal denial")[
(_gain_xp: "Arousal denial skill", "arousal denial", $arousal_denial, [(set:$arousal_denial to $current_skill)(gain_arousal_denial:0)])
](else-if:$skill_check is "gag reflex")[
(_gain_xp: "Gag reflex skill", "gag reflex", $gag_reflex, [(set:$gag_reflex to $current_skill)(gain_gag_reflex:0)])
](else-if:$skill_check is "passive sex")[
(_gain_xp: "Passive sex skill", "passive sex", $sub_sex_talent, [(set:$sub_sex_talent to $current_skill)(gain_sub_sex:0)])
](else-if:$skill_check is "active sex")[
(_gain_xp: "Active sex skill", "active sex", $dom_sex_talent, [(set:$dom_sex_talent to $current_skill)(gain_dom_sex:0)])
](else-if:$skill_check is "male masturbation")[
(_gain_xp: "Male masturbation skill", "masturbation", $male_masturbation_talent, [(set:$male_masturbation_talent to $current_skill)(gain_male_masturbation:0)])
](else-if:$skill_check is "sexy dance bar")[
(if:$method is "skill check")[
(display:"bar dance quicktime reward skill check")
]
(set:$skill_name to "Dancing skill")
(set:$message to "💵 +$" + (text:$bar_dance's "money earned") + " 💵")(set:$message to $message + " 😈 +$slut_amount sluttiness 😈")
(set:$archetype_msg to "")
(set:$current_skill to $sexy_dancing_bar_talent)
(display:"generic gain xp calc")
(set:$sexy_dancing_bar_talent to $current_skill)
(gain_sexy_dancing_bar:0)
](else-if:$skill_check is "sexy dance bar slutty")[
(if:$method is "skill check")[
(display:"bar dance quicktime reward skill check")
]
(set:$skill_name to "Dancing skill (Extra slutty!) ")
(set:$message to "💵 +$" + (text:$bar_dance's "money earned") + " 💵")(set:$message to $message + " 😈 +$slut_amount sluttiness 😈")
(set:$archetype_msg to "")
(set:$current_skill to $sexy_dancing_bar_talent)
(display:"generic gain xp calc")
(set:$sexy_dancing_bar_talent to $current_skill)
(gain_sexy_dancing_bar:0)
]
}{
(set:$gain_base to (cond:
(win:), 5,
$result is "fail",2,
2
))
(set:$gain to (round:$gain_base * $score_multiplier))
(unless:$method is "skill check")[
(if:$quicktime_difficulty is "Quicktime Difficulty: Hardcore")[
(set:$gain to (floor:$gain * 1.25))
]
(if:$quicktime_difficulty is "Quicktime Difficulty: Easy")[
(set:$gain to (ceil:$gain * 0.75))
]
]
(set:_gain_xp to (macro: str-type _skill_name, str-type _xp_name, dm-type _talent, codehook-type _set, [
(set:$skill_name to _skill_name)
(set:$message to "($gain_base base x " + (text:$score_multiplier) + "x multiplier)")
(set:$archetype_msg to "")
(set:$current_skill to _talent)
(display:"generic gain xp calc")
(out:)[{
_set
}]
]))
(if:$skill_check is "bj")[
(_gain_xp: "BJ skill", "blowjob", $blowjob_talent, [(set:$blowjob_talent to $current_skill)(gain_blowjob:0)])
](else-if:$skill_check is "titfuck")[
(_gain_xp: "titfuck skill", "titfuck", $titfuck_talent, [(set:$titfuck_talent to $current_skill)(gain_titfuck:0)])
](else-if:$skill_check is "handjob")[
(_gain_xp: "Handjob skill", "handjob", $handjob_talent, [(set:$handjob_talent to $current_skill)(gain_handjob:0)])
](else-if:$skill_check is "female masturbation")[
(_gain_xp: "Masturbation skill", "masturbation", $female_masturbation_talent, [(set:$female_masturbation_talent to $current_skill)(gain_female_masturbation:0)])
](else-if:$skill_check is "girl pleasure" or $skill_check is "female pleasure")[
(_gain_xp: "Female pleasure skill", "female pleasure", $pleasuring_girls_talent, [(set:$pleasuring_girls_talent to $current_skill)(gain_pleasuring_girls:0)])
](else-if:$skill_check is "orgasm control")[
(_gain_xp: "Orgasm control skill", "orgasm control", $orgasm_control, [(set:$orgasm_control to $current_skill)(gain_orgasm_control:0)])
](else-if:$skill_check is "arousal denial")[
(_gain_xp: "Arousal denial", "arousal denial", $arousal_denial, [(set:$arousal_denial to $current_skill)(gain_arousal_denial:0)])
](else-if:$skill_check is "gag reflex")[
(_gain_xp: "Gag reflex skill", "gag reflex", $gag_reflex, [(set:$gag_reflex to $current_skill)(gain_gag_reflex:0)])
](else-if:$skill_check is "passive sex")[
(_gain_xp: "Passive sex skill", "passive sex", $sub_sex_talent, [(set:$sub_sex_talent to $current_skill)(gain_sub_sex:0)])
](else-if:$skill_check is "active sex")[
(_gain_xp: "Active sex skill", "active sex", $dom_sex_talent, [(set:$dom_sex_talent to $current_skill)(gain_dom_sex:0)])
](else-if:$skill_check is "male masturbation")[
(_gain_xp: "Male masturbation skill", "masturbation", $male_masturbation_talent, [(set:$male_masturbation_talent to $current_skill)(gain_male_masturbation:0)])
](else-if:$skill_check is "sexy dance bar")[
(if:$method is "skill check")[
(display:"bar dance quicktime reward skill check")
]
(set:$skill_name to "Dancing skill")
(set:$message to "💵 +$" + (text:$bar_dance's "money earned") + " 💵")(set:$message to $message + " 😈 +$slut_amount sluttiness 😈")
(set:$archetype_msg to "")
(set:$current_skill to $sexy_dancing_bar_talent)
(display:"generic gain xp calc")
(set:$sexy_dancing_bar_talent to $current_skill)
(gain_sexy_dancing_bar:0)
]
}{
(if:(datanames:$blackjack_params) contains "skill check")[(set:$skill_check to $blackjack_params's "skill check")(set:$skill_difficulty to $blackjack_params's "skill check difficulty")](else:)[(set:$skill_check to "random")(set:$skill_difficulty to 50)]
(unless:$xchange_bet is "false")[(if:$skill_check is "random")[(set:$skill_check to "none")]]
(if:$skill_check is "random")[
(set:$percentage_chance to (100-$skill_difficulty))
(display:"minigames disabled factor")
(link:(twirl:"Leave it to chance","Let Lady Luck decide","Let fate decide","Leave it to chance","Let the dice decide") + " 🎲 " + "(" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "orgasm control")[
(set:$percentage_chance to (get_orgasm_control:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:"Orgasm control skill check" + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "charm")[
(set:$percentage_chance to (get_charm:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Use your charm","Use your charm instead") + " 🍀 " + "(" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "intellect")[
(set:$percentage_chance to (get_intellect:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Use your mind","Steel your mind","Mind over matter") + " 🧠 " + "(" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "fitness")[
(set:$percentage_chance to (get_fitness:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:"Fitness check" + " 💪 " + "(" + (text:$percentage_chance) + "%)")[(replace:?titris)[($vid:"places/office/secretary/warehouse/01 work.mp4")]
($play:"sound","dice")(display:"blackjack skill check result")(if:$style is "titris")[(set:$minigame_started to true)(set:$method to "skill roll")]]
(if:$style is "titris")[(if:$minigame_skip is "Skippable Minigames: On")[(link:"Skip (Win)")[(replace:?titris)[($vid:"places/office/secretary/warehouse/01 work.mp4")](display:"titris auto win")(set:$next to $blackjack_params's "result passage")(replace:?right_options)[](display:"change screen")]
(link:"Skip (Lose)")[(replace:?titris)[($vid:"places/office/secretary/warehouse/01 work.mp4")](display:"titris auto lose")(set:$next to $blackjack_params's "result passage")(replace:?right_options)[](display:"change screen")]]
]
]
(if:$skill_check is "pregnancy")[
(set:$percentage_chance to ($clamp:(get_preg:),1,10) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(set:$preg_emoji to " 🤰🏻 ")(if:$character's "race" is "white")[(set:$preg_emoji to " 🤰🏼 ")](else-if:$character's "race" is "asian")[(set:$preg_emoji to " 🤰🏻 ")](else-if:$character's "race" is "black")[(set:$preg_emoji to " 🤰🏾 ")](else-if:$character's "race" is "latin")[(set:$preg_emoji to " 🤰🏽 ")]
(display:"minigames disabled factor")
(link:(twirl:"Use your pregnancy skill","Use your pregnancy skill instead") + $preg_emoji + "(" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "female masturbation")[
(set:$percentage_chance to (get_female_masturbation:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:"Use your female masturbation skill (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "milking")[
(set:$percentage_chance to ($clamp:(get_milking:),1,10) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(set:$preg_emoji to " 🍼 ")
(display:"minigames disabled factor")
(link:(twirl:"Use your milking skill","Use your milking skill instead") + $preg_emoji + "(" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(if:$style is "milktris")[(set:$minigame_started to true)(set:$method to "skill roll")](display:"blackjack skill check result")]
(if:$style is "milktris")[
(if:$minigame_skip is "Skippable Minigames: On")[(link:"Skip (Win)")[(set:$method to "skip")(display:"milktris auto win")(set:$next to $blackjack_params's "result passage")(replace:?right_options)[](display:"change screen")]
(link:"Skip (Lose)")[(set:$method to "skip")(display:"milktris auto lose")(set:$next to $blackjack_params's "result passage")(replace:?right_options)[](display:"change screen")]]
]
]
(if:$skill_check is "bj" or $skill_check is "blowjob")[
(set:$percentage_chance to (get_blowjob:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Use your blowjob skills instead","Use your oral skills instead") + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "titfuck")[
(set:$percentage_chance to (get_titfuck:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Use your titfucking skills instead","Titfucking skill check") + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "gag reflex")[
(set:$percentage_chance to (get_gag_reflex:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Gag reflex skill","Rely on your gag reflex training") + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "active sex")[
(set:$percentage_chance to (get_dom_sex:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(link:(twirl:"Use your active sex skills","Active sex skill check") + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "passive sex")[
(set:$percentage_chance to (get_sub_sex:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Use your passive sex skills","Passive sex skill check") + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "handjob")[
(set:$percentage_chance to (get_handjob:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Use your handjob skills","Handjob skill check") + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "girl pleasure" or $skill_check is "female pleasure")[
(set:$percentage_chance to (get_pleasuring_girls:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:(twirl:"Use your skills at pleasing women","Female Pleasure skill check") + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
(if:$skill_check is "makeup")[
(set:$percentage_chance to (get_makeup:) of (dm:
1,5,
2,10,
3,25,
4,35,
5,45,
6,55,
7,65,
8,75,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(set:$percentage_chance to ($clamp:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5,95))
(display:"minigames disabled factor")
(link:"Makeup skill " + " (" + (text:$percentage_chance) + "%)")[
($play:"sound","dice")(display:"blackjack skill check result")]]
}{(if:$style is "tower blocks")[(replace:?game_big_screen)[]]
(set:$roll to 21-(twist:1,20))
(set:$needed to (20 - (floor:$percentage_chance*0.2)) + 1)
(if:$needed is 0)[(set:$needed to 1)](if:$needed > 20)[(set:$needed to 20)]
(color:$palette_colors's 4th)[(if:$needed is 20)[You need to roll a 20.](else-if:$needed is 1)[As long as you don't roll a 1, you're good.(set:$needed to 2)](else:)[(twirl:"You need to roll a $needed or higher to succeed.","You need at least a $needed...","You need a $needed or higher to pass...","Gotta roll at least a $needed.")]](nl:1)
D20 roll:(print:" ")<span class='shadow'>[]<dice|</span>
(replace:?dice)[$roll](if:$style is "milktris")[(display:"milktris auto lose")]
(live:1s)[(nl:1)(if:$roll >= $needed)[(if:$style is "lights out")[(display:"lights out win")](else-if:$style is "tower blocks")[(set:$score to $score_required)(display:"tower blocks win")](else:)[(set:$result to "pass")(twirl:"You win!","Nice!","You got it!")](if:$style is "milktris")[(display:"milktris auto win")]](else:)[(if:$style is "lights out")[(display:"lights out lose")](else-if:$style is "tower blocks")[(set:$score to (twist:1,($score_required-1)))(display:"tower blocks lose")](else:)[(set:$result to "fail")(if:($needed - $roll < 2))[(twirl:"You fail, just barely...","So close!","Almost!","Too bad, that was close!")](else:)[(twirl:"You lose.","Too low.","You fail.")]]](nl:1)(display:"blackjack gain xp")(unless:$style is "lights out")[(nl:1)<div class='options'>(link:(cond:$result is "fail","Fail",(win:),"Success","Success"))[(replace:?score_blackjack)[](set:$next to $blackjack_params's "result passage")(replace:?right_options)[](display:"change screen")]</div>(stop:)](stop:)]
}{
(set:$isVictory to true)(set:$score to $milk)(set:$method to "skip")
}{
(set:$isVictory to false)(set:$score to 10 * (twist:0,(ceil:$milk / 10)))(if:(twist:1,2) is 1)[(set:$score to 10 * (twist:0,(ceil:$milk / 20)))](if:$score >= $milk)[(set:$score to 0)](set:$method to "skip")
}{
(set:$isVictory to true)(set:$method to "skip")
}{
(set:$isVictory to false)(set:$method to "skip")
}{
(display:"sperm defense game messages")
($notification_still:(twirl:"Sperm has been detected in your fallopian tubes!","Foreign gametes detected in reproductive pathways. Activate defense protocols?","Warning: Unidentified biological entities approaching the ovum. Deploy nanobot shields?","System Notice: Sperm cells detected in fallopian tubes! Engage countermeasures?","Critical Alert: Potential fertilization imminent. Initiate nanobot defense sequence?","Defense Systems Activated: Incoming spermatozoa detected. Deploy antibodies?","Urgent Message: Ovum integrity threatened by foreign agents. Engage defense mechanisms?","Alert: High concentration of sperm cells approaching. Initiate nanobot intervention?","Nanobot Advisory: Genetic material intrusion detected. Activate defense grid?","System Warning: Unscheduled cellular activity in reproductive tract. Deploy nanobot defenses?"))
(live:2s)[(stop:)(prepend:?right_options)[(display:"sperm defense option")]]
}{
(set:$sperm_defense_messages to (a:))
($notification_still:"PRACTICE MODE! SIMULATING SITUATION... " + (twirl:"Sperm has been detected in your fallopian tubes!","Foreign gametes detected in reproductive pathways. Activate defense protocols?","Warning: Unidentified biological entities approaching the ovum. Deploy nanobot shields?","System Notice: Sperm cells detected in fallopian tubes! Engage countermeasures?","Critical Alert: Potential fertilization imminent. Initiate nanobot defense sequence?","Defense Systems Activated: Incoming spermatozoa detected. Deploy antibodies?","Urgent Message: Ovum integrity threatened by foreign agents. Engage defense mechanisms?","Alert: High concentration of sperm cells approaching. Initiate nanobot intervention?","Nanobot Advisory: Genetic material intrusion detected. Activate defense grid?","System Warning: Unscheduled cellular activity in reproductive tract. Deploy nanobot defenses?"))
(set:$cum_amount to "3")
Simulated cum spurts: (cycling-link: 2bind $cum_amount, "2","3", "4", "5", "6", "7")
($notification_still:"Note: special sperm variants will be color-coded during this simulation so you can learn their abilities / patterns.")
(prepend:?right_options)[(display:"sperm defense sim option")]
(display:"night options")
}{
($notification_still:"Simulation complete.")
(display:"night options")
}{
(set:$sperm_defense_messages to (a:))
(if:(checkdm:$npc,"tags","contains","breeder"))[
(set:$sperm_defense_messages to
(a:"“NGGGH! Ungh!!”",
"“Holy... FUCK! Feel my hot seed fillin' ya up!”",
"“Gonna breed ya, slut! UNNGHH AH AH!!!”",
"“Fu-fUUUUCK!! Take it... take all my cum!”",
"“Shit! Your tight little hole is squeezing all the spunk outta me!”",
"“UNNGGGHH!! That's right! Take my load, whore!”",
"“Fuck!! Can ya feel it?”",
"“UNGGGGHH!! Holy shit... You're gonna get fucking pregnant!”",
"“NGGGH! Fuck! Your pussy is so tight...”",
"“OH FUCK! Your wet little cunt is milking my cock!”",
"“Gonna fucking fill you up! Take it all!”",
"“Shit shit shit... I'm cumming! Ohhhh YEAH!”",
"“Fuck, you feel so good!”",
"“Your tight pussy is squeezing my cock... UNGHHH!”",
"“FUUUCK! Oh god, here it comes, ALL OF IT!”",
"“I’m cumming so hard... fuck, you’re perfect!”",
"“OH SHIT! UNNGGH- FUCK YEAH!”",
"“NGGGH! FUCK! Your pussy is so tight...”",
"“OH FUUUCK! Your wet little cunt is milking my cock!”",
"“TAKE IT!”",
"“Shit, shit, shiiit...”",
"“I'm gonna BREED you, bitch!”",
"“UNGHHH!”",
"“FUUUCK YEAH!”",
"“CUMMING SO HARD! UHHNNN!”",
"“Nghhh- FUCK you're gonna be a momma!”",
"“Oh SHIT, take my fucking load!”",
"“Ohh... ohhh, YEAHHH!”",
"“NNGGGH!”",
"“ALL OF IT, take every last drop, SLUT!”",
"“Gonna fill you till it overflows!”",
"“Oh god, FUCK you're gonna be pregnant!”",
"“YES! YESSS! Gonna breed you so good!”",
"“NNGH!”",
"“NGGGH! Take it all, you filthy slut!”",
"“FUCK! I'm gonna breed you so hard!”",
"“Your pussy was made for my cum, bitch!”",
"“Ohh FUCK!”",
"“Your tight little hole is squeezing out every drop!”",
"“Feel that? I'm marking you as mine!”",
"“Get pregnant, bitch!”",
"“FUCK! Here it all comes!”",
"“YEAH! Take it all, you little cum dump!”",
"“Ughh, ungh, fuck...”",
"“YES! YES! Take every fucking drop!”",
"“God, I'm gonna knock you up! Feel that?!”",
"“FUCK! Oh god, I'm cumming so much!”",
"“NGHHHH! Fuck, take my load, take it!”",
"“Ungh! Here it is, you fucking slut!”",
"“So deep... so fucking deep! FUCK!”",
"“I'm filling you up, bitch! You'll be pregnant for sure!”",
"“OH FUCK! Your pussy is so tight... nghh!”",
"“I’m cumming! Oh god, I’m cummingggg~!”",
"“Gonna fill you up till you’re overflowing!”",
"“FUCK! Shit! Take my seed, bitch!”",
"“YES! Here it all comes, soaking your womb!”",
"“You feel that? I'm breeding you... hard!”",
"“YEAH! YEAH! Take my fucking cum!”",
"“NGGGH! Fuck! Your pussy is so tight...”",
"“Fuck yeah, gonna make you a mommy!”",
"“Shit, I saved all this just for you! UGHHHH!”",
"“You're gonna remember this load, bitch! Take it!”",
"“Make my fucking babies, cum dumpster!”",
"“Your hole is milking me dry! Fuck!”",
"“Open wide, you're getting ALL of it!”",
"“NGGGH!”",
"“FUCK!”",
"“Take all of it, BITCH!”",
"“I'm BREEDING you!”",
"“...Unnnngh... you're MY cum-dumpster now!”",
"“Get ready to be a mommy... UNGHhhhh!!”",
"“SHIT YES!”",
"“Feel that, bitch? That's my seed taking root!”",
"“Fuck, you feel so... nnghh! *good*!”",
"“I’ve saved it all... just for you, you slut!”",
"“Every drop... going inside you... TAKE IT!”",
"“Your fucking tight pussy is MINE!”",
"“Like that, huh? My cum filling you up?”",
"“Gonna breed you... breed you hard!”",
"“Here it comes... all for you! FUUUCK!!”",
"“Ahhh... fuck, I’m cumming inside you...”",
"“Get knocked up, BITCH!”",
"“You’re nothing but my cum repository!”",
"“Ohhh FUCK! All this seed, just for you!”",
"“I'm BREEDING you, take it all!”",
"“You’re gonna remember this... all inside you...”",
"“Fuckin' cum-factory!”",
"“Gonna... unnggh! *fill* you up, bitch!”",
"“FUCKKK! Shit, you're getting all of it!”",
"“I'm gonna pump all of my load in you!”",
"“Your womb... belongs to me now!”",
"“Breeder bitch, take all of it! NGHHH!”",
"“Gonna cum... inside you... UNFFF!!”"))
](else-if:(checkdm:$npc,"tags","contains","chad"))[
(set:$sperm_defense_messages to
(a:"“NGHHH! Yeah, take it, bitch!”",
"“Ugh, yeah! Feel that?!”",
"“Nnnggggh...”",
"“Gonna pump you full of my seed... nghh!”",
"“Fucking hope you like being my whore!”",
"“Fuck yeah, feel my cum fillin' you up!”",
"“Nnggghhhh!”",
"“Yeah, you like that? Take it!”",
"“MMFFFGG!!”",
"“UNNNFFF!”",
"“Ugh, yeah! Gonna make you my bitch!”",
"“Nggghh! Take it!”",
"“Nnggggh... God, you're tight... OH FUCK!”",
"“Unffff! Yeah! All in that slutty hole!”",
"“Nngghhh... Take every last drop, bitch!”",
"“FUCK! Feel every spurt fillin' you up!”",
"“Nnghh!”",
"“FUHCK!”",
"“Just a dumb slut for my cum!”",
"“Yeah... nghhh! Filled up like a good cum dump!”",
"“Unghh... oh god yes!”",
"“Take it, take it, TAKE IT!”",
"“Gonna make you my breeding bitch!”",
"“Unnffff! Feel every drop, slut!”",
"“Oh fuck, oh fuck, HERE IT COMES!”",
"“Unghh!”",
"“GOD, YEAH!”",
"“Ughhh!”",
"“UNGGHH!”",
"“Nnghh! Fuck YEAH!”",
"“OH FUCK... UNGH! Take it all, slut!”",
"“Nghhh... fuh...”",
"“Nnnngh! Hope you like being my sperm toilet!”",
"“Unnfff! Yeah, you're gonna be leaking my cum for days!”",
"“Nggghhhh... UGH! Fuck YEAH!”",
"“NNGGH!”",
"“Take it all, cumdump!”",
"“Ha~ ahhh! Oh fuck, get wrecked!”",
"“NNNGHH!”",
"“Unghhh, yeah... yeahhh!”",
"“That's right, take my fucking cum!”",
"“You like being a cum dump?! Yeah, you do!”",
"“Ohh, ho ho! Filling you up, slut!”",
"“Gonna pump you full...”",
"“Unnngh, ngh, nghhh!”",
"“FUCK! Take it... bitch!”",
"“So fucking tight... ohhh yesssss!”",
"“Mmmhhh, just for me... shit!”",
"“You’re nothing more than my cum toilet!”",
"“NNGH, FUUUCK!”",
"“God, right inside... you whooore!”",
"“OOOHHH!”",
"“Get filled up, bitch! Nghhh!”",
"“Yesssss!”",
"“OOOHHHH... UHHHH!”",
"“NNHHHH!”",
"“Oh, yesss... ungghhh!”",
"“N-GHHH... fuck!”",
"“Get fucked, slut!”",
"“NNGHHH, here it comes!”",
"“Take all my seed, whore!”",
"“Take it all, slut... uhhh!”",
"“Ohh, ohh, ohhHHHH!”",
"“That’s right... fucking cum toilet!”",
"“MMPH, yeahhh!”",
"“UUUHH, UGHHH!”",
"“Slut, take all of it!”",
"“NNNNGH!”",
"“Yes, yes, yes, oh fuuuck!”",
"“OOOhh, nnnGH!”",
"“Ughh! Fuck, all of it! All of it!”",
"“Ha... ahh... ha... yesss!”",
"“Nnngh... ohhh fuck!”",
"“UHN! UHN! UHHHHHNNN!”",
"“So fucking good... ohh god!”",
"“UNNNH, fuck!”",
"“All you’re good for! Yeahh!”",
"“I own this hole, MMPHH!”",
"“Oh god, yesss! Fuck yes!”",
"“NNNN, unghhh!”",
"“NNGHNNGH, fucking take it!”",
"“YEAHH, take my fucking cum, whore!”",
"“NNHHHHH!!”"))
](else-if:$npc's "personality" > 6)[
(set:$sperm_defense_messages to
(a:"“Unghhhhhh!”",
"“Ohhh god, yessss...”",
"“Mmmmhh!”",
"“Mmmff!”",
"“Nnnnnghh!!”",
"“Ohhh... take it... uhhh...”",
"“Unghh! Ohhhhh!!”",
"“Just like that...”",
"“Mmmmmffff!”",
"“Nghhhhhh... yesss!”",
"“Ohhhh fuuuck...”",
"“Ughhh...”",
"“Nnghhhhhh!!”",
"“Uhh... uhnnn!”",
"“Nnghhaaah!”",
"“Mmmmm... god, yeah...”",
"“Ohhhhhh!”",
"“Mmmmmm...”",
"“Unnnngggghhh!”",
"“Ohhh... ohhh... ohhhhhh!”",
"“Nnnnnghhh... take it...”",
"“Ahhh... ohhh god!”",
"“UHHHH! Fuck!”",
"“Mmmm... unghh!”",
"“Unghh, yesss!”",
"“Ahhh! Yes!”",
"“Uhhh! Ohh yes!”",
"“Unnnnnf!”",
"“Oh, oh, ohhh...”",
"“Nnggh... ohh fuck!”",
"“Uuuhhhh!”",
"“Ahhhh, fuck!”",
"“Gonna cum... uhhh!”",
"“OHHHH UHHH!”",
"“Unnnghhh... take it... ohh!”",
"“Nmmmhh!”",
"“Uhhh! Ohhhh!”",
"“Ahhh, yesss!”",
"“Mmmmmf!”",
"“Ahhhhhh!”",
"“Uggghh... fuuuuck!”",
"“Ohhhhhh!”",
"“Unnghh!”",
"“Nnnnghh!”",
"“Uhhh... ohh yeah!”",
"“Ahh, yes... take it...”",
"“Mmmm... ohhh...”",
"“Unghhh, uhhnnn!”",
"“Nnghhhhhhh!”",
"“Uhhhh! Oh my god!”",
"“Mmmfff!”",
"“Ahhh! Ahhh! Ohhh!”",
"“Nnrgh, god yes!”",
"“Uuhhh!”",
"“Ohhh... ohhhh yesss!”",
"“Mmnf!”",
"“Uhhhnnn! Mmmffff!”",
"“Nngggg...”",
"“Ohhh... ohhhh godddd!”",
"“Mmmmhhh... unghh!”",
"“Ungghhhh... ohhh!”",
"“Unnnff! Yes!”",
"“Ohh, ohhhh, UHHHH!”",
"“Nnnmmhh!”",
"“Uhh... uhh... ohhh!”",
"“Ahhh, yes! Like that...”",
"“Ohh god, take it!”",
"“Ahhhhhh, uhhhh!”",
"“Unnghh!”",
"“Nnnmmhhh...”",
"“Uhhhnnn! Yes!”",
"“Nghhhhh... ohhh yes!”",
"“Ohh, ohh, OHHHH!”",
"“Mmmm! Uhhhnn!”",
"“Nnnnghhh... ahhh!”",
"“Uhh, ahhhh!”",
"“Mmmff! Ohhhh!”",
"“Unghhh, ohhh god!”",
"“Ahhhh! Ohhhh, yesss!”",
"“Ohhh fuck!”",
"“Mmmfh! Unnghh!”",
"“Ohhh, ohh... ohhh!”",
"“Unnggghhh!”",
"“Nnghh! Uhh!”",
"“Ahhhh! Take it...”",
"“Nnmff!”",
"“Unghhh, yes!”",
"“Uhhhh, ohhh!”",
"“Oh my god, yesss!”",
"“Mmmmff!”",
"“Mmmnnhh!”",
"“Unnhhh!”",
"“Oh god, yes!”",
"“Unghhhh! Ohhhhh!”",
"“Mmnghhh...”",
"“Unnnff, ohh!”",
"“Ohhhhhh uhhhh!”",
"“Nnnmmh!”",
"“Uhhh, uhhhh!”",
"“Ughhh! Oh god, yes!”",
"“Nnnnnghhh, take it!”",
"“UNGH! Yeah... yeah!”",
"“UHHHNN!!”",
"“Ughh! Unnghh!”",
"“NNNHHHH!!”",
"“Unghh! Oh god, take it all!”",
"“Cumming! Ugh, cumming so hard!”",
"“Uhhh... uhhhh! Ffffuck!”",
"“NNGH! I'm unloading inside you!”",
"“UUUGH! Yes! Yes!”",
"“Uhnn! Feels so damn good!”",
"“Oh... ohhh! Yessss!”",
"“AAHH, ahh!!”",
"“Claiming this pussy!”",
"“NNNGHH! Fuuuck!”",
"“Guuhhh! Ahhh!”",
"“Gonna... fill you up! Ughh!”",
"“Take it... take all of it!”",
"“Oh god, YESSS!”",
"“Cumming inside... you!”",
"“Unloading... mmmmhhh!”",
"“NNGGGHHH! Fuck!”",
"“Unnghh! Fuck, yeah...!”",
"“Oh FUCK!”",
"“Ungh! Uhhh! Nghhhh!”",
"“Gonna... fill you up!”",
"“OHh! So good... so good!”",
"“Uhhh! Fuck, take my cum!”",
"“Nnghhh! Guhhhh!”",
"“All inside... youuu!”",
"“Unghh! Holy shit!”",
"“Nngh! Just like that!”",
"“Uhhhhh! Yeahhh!”",
"“O-ohhh! UGH!”",
"“Unnghh! Feel my cum fill you up!”",
"“Ahhh... your pussy is milking me so good!”",
"“NNGGGH!”",
"“Oh fuck, here it comes!”",
"“UGHHH, so tight!”",
"“Unnnghh, oh god yes!”",
"“Nngh, unghhh!”",
"“Gonna claim this pussy!”",
"“Uhh... uhh...!”",
"“Mmmfh! Feel that, baby!”",
"“UNNNH!”",
"“You’re taking it so well...”",
"“Nghhh!”",
"“Your pussy feels incredible!”",
"“Unloading inside you... nghh!”",
"“Nghh... nghh!”",
"“Mmm... fuck yeah!”",
"“Here it comes... unghhh!”",
"“UNNGHH!”",
"“Ngggh, fuck, yesss!”",
"“Ahhh, I’m filling you up!”",
"“Uhhh, ungh!”",
"“You’re gonna feel it all!”",
"“Nnnfff...”",
"“UNGHHH!”",
"“Feel every drop, nghhh!”",
"“Mmmff, yeah!”",
"“So tight... oh fuck!”",
"“Ahhhh, it’s so good!”",
"“UNNGHH, take it!”",
"“Mmmmhh, filling you up!”",
"“Unnfff, oh god!”",
"“Uhn, uhhn, mmm!”",
"“Claiming this pussy, ahhh!”",
"“Ohhh, it’s so warm inside!”",
"“NNNGHH!”",
"“Ngh, nghh, nghhh!”",
"“Uhnmmf!”",
"“Ahhh, every drop inside you!”",
"“Unnggh, so fucking tight...”",
"“Mmmfff, ohh yeah!”",
"“UNNGHHH!”",
"“Nnnghh...!”",
"“Nnngh, oh god yes!”",
"“Ahhh, fuck!”",
"“UNNGH, every drop, take it!”",
"“Ohhh, it’s so good!”",
"“Ngh, nghhh, nghhhh!”",
"“Mmmm, feel my cum inside you!”",
"“Uhhh, unhh!”",
"“NNNGGH, yes!”",
"“Ahhh, incredible!”",
"“UNGH! Fuuuuck!”",
"“Ngggh, unngh!”",
"“Your pussy is amazing!”",
"“Ohhhhh, unghh!”",
"“Ahhh, I’m yours!”",
"“UNGH UGH UGHNNN!”",
"“So tight, oh god!”",
"“Nnnfff!”",
"“Taking it all, unghhh!”",
"“Nnngh, ohhh...”",
"“Ah, ah, ahhhh!”",
"“Nnghh, so good!”",
"“Unnnnh, every drop!”",
"“Ngh, baby, yes!”",
"“A-ahhhh!”",
"“Nnghhh! So fucking good!”",
"“Nnngh, feel that?! Ugh!”",
"“Oh... god! UNGH!”",
"“Nnnnhhh! YES!”",
"“Uhhhh, unghhh!”",
"“Fucking filled up!”",
"“Nghhhh, yessss!”",
"“UUHHNN! Fuuuck!”",
"“Oh! Ohhh! Yeah!”",
"“Unloading... inside!”",
"“Ohh god! Oh god!”",
"“Uhhh! So tight!”",
"“NNNNNGHHH!”",
"“UNNGGHHHH, fuck!!”",
"“Cumming for you!”",
"“Take it... all of it!”",
"“Gonna pump you full!”",
"“Nnnnnnnngh!”",
"“FFUUCK! Yes!”",
"“Mmhhhhh! Ohh...”",
"“Uhhh! Uhh! Nghhh!”",
"“UGHHH! So deep!”",
"“Feel that? Ughhh!”",
"“UHH, UHHH!”",
"“Filling... you... up!”",
"“Uhhh! Ohhhhh!”",
"“NNNNNGHHHH!!!”",
"“Uhhh! Uhhh! Uhhh!”",
"“NNGH! So good!”",
"“UNNNGH! All of it!”",
"“Ohhhh! Yess!”",
"“Ughhh... so tight!”",
"“Mnnnnhh! Mmmm!”",
"“UHHHNNNN!”",
"“Guhhh! Unghhh!”",
"“Filling you... up!”",
"“Gonna... give it all to you!”",
"“Nnghhh! So wet!”",
"“Uhh! Uhh! UHH!”",
"“NNNNGH!”",
"“Uhnn!”",
"“Oh god, so much...!”",
"“Take it... all, unghh!”"))
](else-if:$npc's "age" > 39)[
(set:$sperm_defense_messages to
(a:"“N-NNGHHH! Take it, slut!”",
"“Oh fuck, you cum dumpster! NNNGH-YES!!”",
"“Ugh, yeah! My slutty little whore!”",
"“Nnnggggh... God, I’m gonna fill you UP!”",
"“Fucking take it all, bitch!”",
"“VERNNNNGGGGH!”",
"“NUNGGGHH!”",
"“Ohhh fuck, squeezing my cock so tight!”",
"“Ahhhh, you're just a fucking hole for my cum!”",
"“NNGGGHHH... UGH! Feels so good!”",
"“Unnfff... yeah!! Like that, huh?!”",
"“Motherfucker! Fuck, filling you up!”",
"“Oooh yeah... damn young pussy!”",
"“N-GGHHH... only good for cumming in! BITCH!”",
"“Ughhh... UGH UGH UGH!!”",
"“Sluuut! Take every drop, BITCH!”",
"“Nnnffff, just a hole for my cum... yes!”",
"“NNGHHH! Feel me claiming this pussy!”",
"“Urnnffff!!”",
"“Ohhh shit... ohhh fuck!!”",
"“Gonna make you MINE!”",
"“Gonna pump it all in you, princess!”",
"“God damn, your pussy's PERFECT!”",
"“OOOH YEAH... fucking slut!”",
"“OH FUCK... all of it's yours!”",
"“You like this old cock filling you up, huh?!”",
"“Yeah, feel that... dirty little slut!”",
"“Your job is to take my load! UGH!”",
"“OOOH YEAH... such a fucking tight pussy!”",
"“UNNGHH... my personal slut!”",
"“N-NGGH!”",
"“UGHHHHHH!”",
"“NNNNNN!”",
"“UNNGGGH!”",
"“Aghh fuck!!”",
"“MMPH... fuck! Here it all comes!”",
"“Just a cum dump for me... yessss!”",
"“Ughh yeah... you're fucking done!”",
"“Unnfff! Bitch, I own you!”",
"“UNNNFFF! Fill you so fucking full!”",
"“Old cock... young pussy! God, so tight!”",
"“UNGHH! Take it like a bitch!”",
"“Nffghhh... fucking owned!”",
"“UHHHNNNGH!”",
"“Nnnn...”",
"“Aghhh... nghh!”",
"“Fucking slut... UNGHH!”",
"“Just my cum dumpster, huh?! NNGHH!!”",
"“NNNNGHH!! Haha, oh shit...!”",
"“Fuck, oh fuck! All of it in you, WHORE!”",
"“NNGH... god, TAKE IT!”",
"“Uhhhhn... so good! TAKE IT!!!”",
"“NNNNHGHGHGHGH!!”",
"“Mmhmm... all mine! Ohhhhhh!!”",
"“My little cum toilet!”",
"“Nnnngh! Fuck, yes! Filling you UP!”",
"“You're so fucking mine! UGH UNGH UGH!”",
"“Nnnngh... oh yeah...”",
"“Yeaaah! Bitch, I'm gonna breed you!”",
"“You're just a receptacle for my cock!”",
"“NGGH! Feel this old cock emptyin' in you!”",
"“Unnfff! Fuck! Feel this load, slut!”",
"“NNNNGHH! Gonna KNOCK YOU UP!”",
"“NNGGGH! Fuck, you little whore!”",
"“Oh YEAH! Take that old man’s cum, slut!”",
"“NNNGHHH!!”",
"“God, you’re perfect!”",
"“NNNGGHH! You like being pumped full by an old man?!”",
"“Unngh, fuck yeah! Your young cunt is squeezing me so fucking good!”",
"“Nngggh! Take it all, you slut!”",
"“FFFFUCK! My bitch, my cum-dump!”",
"“Ungh... nghh! Gonna mark you as mine!”",
"“Uuuggghh! Feel my seed fillin' you up, whore!”",
"“NNNNGHHH! You like that? Fucking feel my cum!”",
"“Ahh! Oh fuck, oh fuck, take it all, BITCH!”",
"“Fucking whore, getting owned by an old man!”",
"“Unnnngh! You're my slut now!”",
"“Auugh, oh god, YEAH!”",
"“NNNGGH! Gonna pump you full, my little whore!”",
"“Full of my seed! NNNNGH!”",
"“NNGHH! You feel that? Being claimed by a REAL man!”",
"“Take it, you fucking bitch!”",
"“God, YES! Feel all of my cum inside you!”",
"“Nnghhhh... YEAHH!”",
"“FUCK! FUCK! My load inside you!”",
"“God damn, you’ll be leaking old man’s cum!”",
"“NNGGH! You’re nothing but a cum dumpster!”",
"“Ohhh FUCK! So tight, nghh!”",
"“Ahhh yeah, take it, bitch!”",
"“NNGH, gonna mark you forever!”",
"“Ungh... fucking feel my load, slut!”",
"“You’re just a slut for my cum, unngh!”",
"“OLD MAN’S CUM, bitch! Feel it!”",
"“Nnnnngh! Yes, YES!”",
"“Take all of it, you cum whore!”",
"“NNNGHHH! Fucking owned by an old guy!”",
"“UNNGHH! Overflowing with my seed, slut!”",
"“Gonna keep cumming till you’re full!”",
"“YES! YES! NNGGHHHH!”",
"“My bitch, my fucking bitch!”",
"“Unngh, gonna breed you good, slut!”",
"“Nnnnghh! Oh god, take it all, my whore!”",
"“NNNGHH! Just a slut being pumped full!”",
"“O-OH FUCK! Tight little bitch!”",
"“Take my load, little whore!”",
"“NNNGH! Gonna empty all of it inside you!”",
"“Fuuuck, you like old man’s cum, bitch?!”",
"“N-NNGGHH! Gonna fill you, bitch!”",
"“Ahhh, ahhhh! All of it!”",
"“NNGH! You’re mine now!”",
"“NNGHHH! Fucking tight, so tight...”",
"“Unngh... yes, YES!”",
"“NNGH! Fucking mark you as mine!”",
"“UNNNF!”",
"“Mmmmm, gonna breed you good!”",
"“NNGGH! Filling your young cunt, slut!”",
"“Ugh, ugh, ughhh!”",
"“NNNHH! Take my load!”",
"“Yes! Yes! YES! AUUUGHHH!”",
"“NNNGHH! Fuck! Unnngh!!!!”",
"“Whore, feel my cum fillin’ you!”",
"“NNGHH! Tight little cunt milking my cock!”",
"“NNNNGH! Leakin’ old man’s cum, bitch!”",
"“Fuck! Fuck! Fuck!”",
"“NNGH!”",
"“UHNNNN!”",
"“GOD, YEAH!”",
"“Fuck YES! Gonna make you my bitch!”",
"“Yesss, you're my little slut now!”"))
](else-if:$character's "race" is "asian" and (twist:1,2) is 1)[
(set:$sperm_defense_messages to
(a:"“NGHHH! Your pussy is milking me!”",
"“Nnghh... so good...”",
"“Mmmf! Fuck, take all of it!”",
"“Unghh!”",
"“Nnghh...”",
"“Yeah, just like that! UNGH!”",
"“NNGH! Here it comes!”",
"“UHHHH! Yeah, take all my cum!”",
"“NNGH! Your pussy is perfect!”",
"“Fuck, fuck... here it comes!”",
"“Nnghh, so tight! Ughh!”",
"“Take it... all of it... ughh!”",
"“Nnggggh, so fucking tight!”",
"“Mmmm! Ahh, fuck... take it!”",
"“Ughh... can't hold back! NGH!”",
"“Fuck, filling you up...”",
"“Perfect pussy... so tight!”",
"“Ooooh!! Oh God, yes!”",
"“Nnnngh!”",
"“Fuck, so good!”",
"“Ughhh, your pussy is amazing!”",
"“NNGH! Can't hold back!”",
"“Nfuh, too tight... ngh!”",
"“Ughh, milking me dry!”",
"“Oh God, so tight!”",
"“Here it all comes... ohhh!”",
"“Nnnghh! Take all of it!”",
"“Nnghhh! Your tight little pussy is milking me dry!”",
"“Unnnghhh... yeah, take it all!”",
"“NNNGHHH! So tight!”",
"“Such a good little slut for my cum...”",
"“Fuckkkk! You're milking me so hard...”",
"“Unnfff... taking all my cum, huh?”",
"“NNGGHH! Yeah, your Asian pussy is MINE!”",
"“Ahhh, yesss... owning this tight pussy...”",
"“Ffffghhh! So fucking tight!”",
"“NNNGH! Feel that? That's for you!”",
"“Take my cum, you tight little bitch!”",
"“So warm and tight... unghhh!”",
"“Unnnfff... can't stop cumming!”",
"“NNGHHH FUCKKK!”",
"“You like being claimed, huh? Nnggh!”",
"“Yesss, ohhh fuck!”",
"“Unngh! Mmmm! So tighttt!”",
"“Milking me so good, bitch!”",
"“Take it all, you tight little whore!”",
"“Fucking milking my cock... UNGH!”",
"“Ohhh, yeahhh! That's right!”",
"“NNGHH!”",
"“Ahhh, unf... take it, slut!”",
"“Ffff... perfect pussy... unghhh!”",
"“Fucking fill you up, bitch!”",
"“NNGH! You're mine... all mine!”",
"“NNGGGGH!”",
"“Ungh! Holy... fuck!”",
"“OH GOD... UNGH!”",
"“Yesss! My fucking tight pussy!”",
"“NGHHH!”",
"“All for me... unnffff!”",
"“That’s right, taking my seed!”",
"“NNGHHHH!”",
"“Nghhh... own you... UNGH!”",
"“So warm... so fucking tight!”",
"“Fucking made for my cock! Nggghh!”",
"“All mine... yeaaahhhh!”",
"“MMMFFF! So good... so tighttt!”",
"“NNGHH! Take my cum, take it all!”",
"“Unnfff... fuck, tighttt!”",
"“NNGHHHH! All mine!”",
"“NNNNGGH! Yeah! Unffffff!”",
"“Fuck, you're so tight... NGHHH!”",
"“Ahhh, FUUUCK yeah!”",
"“UNNNGHF!”",
"“NNGHH!”",
"“Ahh, YEAH! Fucking MILKING ME!”",
"“NNNNNNGH!”",
"“Your little pussy is mine!”",
"“Mmmmh, feel that? UNGH!”",
"“NNGHH, unfff!”",
"“Such a tight, good girl... unghhh!”",
"“Fucking milking me hard... NGHHHH!”",
"“Every drop... for you!”",
"“NNNGHHH, yeah!”",
"“Take it, all my seed, take it!”",
"“Your pussy is perfect... nnnghh!”",
"“Own all of it, you slut!”",
"“Unghh, unghh... yes!”",
"“NNGHHH... so fucking good!”",
"“Mmm, just for me! Nggghh!”",
"“Ahhhh, ungh!”",
"“Every last drop... UNGH!”",
"“All yours... unghhhh!”",
"“NNNNGH!”",
"“NNNGHHH! Tight little Asian pussy...”",
"“Fuck! It’s milking me.. ungghh!”",
"“Ohhh, fuck! So tight!”",
"“Nngghh! Your pussy is mine now!”",
"“OHHHHH! Yesss!”",
"“Nnngghh, take my cum...”",
"“Unghh! Gonna fill you up... all of it!”",
"“NNGH! Ahh! Ahhh!”",
"“Your pussy is squeezing me... ughh!”",
"“Oh, fuck! MILKING me!”",
"“Yess! All my cum... nghh!”",
"“So fuckkkinnn’ tight!”",
"“NNGH! Fuck yeah!”",
"“Your little cunt is taking all of it... nghhh!”",
"“NNGH! Oh god, so good!”",
"“Gonna claim this tight pussy... unnngghh!”",
"“OHHHH!!! UGHH!”",
"“Oh fuck! Every drop... inside you!”",
"“Just for me... ahhh!”",
"“NNGHHHH! You're milking me so good...”",
"“Claiming this tight... Asian pussy!!”",
"“Ooohh, sooo tight!”",
"“Ufff, take it all!”",
"“Nnnngghhh, fuck!!!”",
"“Unghhh, YESS!”",
"“FUCK! Your pussy’s mine!”",
"“Nnnnhhh, ohhh yesss! UNGHHHH!”",
"“God, it's squeezing me so good...”",
"“NNNGHH! Taking every drop!!”",
"“Unghh, fuck! MILKING ME DRY!”",
"“Alllllll inside... unghh!”",
"“Ohhh, your tight Asian cunt is mine!!”",
"“NNNNGH!”",
"“NNGHAAAHH!!”",
"“You feel that? Filling you up!”",
"“Your lil’ pussy is taking all of it... NNGHH!”",
"“GAHHH! YES! Feel it all!”",
"“OHH FUCK! So tight!!”",
"“OOHH yess, gonna fill this!”",
"“Squeeze it outta me!!”",
"“NNGH, unghhh!!!”",
"“O-ohhh, shit! UHH!”",
"“NNGHH! Take it ALL!!”",
"“Milking my cock so good... nngghh!”",
"“NNGH! Feel this load!”",
"“Ungh! Making this pussy mine!!”",
"“So tight, oh... NNGHH!!”",
"“Your tight lil’ Asian pussy...”",
"“Ufff, yeahhh!”",
"“Nnnnngh! Take my seed!!”",
"“Cumming... cumming inside you... oh god!”",
"“YESS! Ungghhh!”",
"“Nnnff...”",
"“Nghh, OH FUCK! RIGHT there!”",
"“So tight, milking me so good!”",
"“NNNNGH!!”",
"“All...for this... tight.. pusssyyyy!”",
"“OHHHH! So good!!”",
"“NNGH! Oh fuck, can ya feel it??”",
"“Yesss... fuck! Every drop!”",
"“So good, nnghhh...”",
"“OH, YES! So tight!”",
"“Uhggh!”",
"“Nnnnnghh!”",
"“NNGGHHH!”",
"“All inside ya... nnghh!”",
"“So fucking TIGHT!! Yessss!”",
"“NNGH!!! Feel me marking this pussy!”"))
](else-if:$character's "race" is "latin" and (twist:1,2) is 1)[
(set:$sperm_defense_messages to
(a:"“NNGGH! Your Latina pussy is so fucking tight!”",
"“Unghhh! Take all of it!”",
"“Nghhh... yeah, milk me dry!”",
"“Oh fuck... all my cum just for you!”",
"“NNGH! Feel that? Filling you up!”",
"“Ngggh... your pussy's perfect!”",
"“Ughhh... so FUCKING tight!”",
"“NNGH! Yeah, take it, slut!”",
"“Your Latina cunt is squeezing me!”",
"“Nngghh... can't stop cumming!”",
"“Fuck! All of it, take it ALL!”",
"“Nnnghh! You like being filled up?”",
"“Nghh... here it comes!”",
"“UNNGHH! So tight, so fucking good!”",
"“Ngggh! You're taking it all!!”",
"“Ughh... milking me dry!”",
"“UNNGH! Yeah, take it, whore!”",
"“NNGH! Feel me cumming inside you!”",
"“God, you're squeezing me so hard!”",
"“NNGH! Your little pussy is mine!”",
"“Ohh fuck... unghhh!”",
"“Nghh! MILK ME, BITCH!”",
"“Ughhh! Your pussy's amazing!”",
"“NNGH! So tight... so warm!”",
"“Unnnfff... can't stop... NNGHH!”",
"“NNGGH! Take all my load, slut!”",
"“Nnghhh! Can't hold back... take it!!”",
"“Gonna BREED YOU, Latina slut!”",
"“Fucking tighten up... nghhh!”",
"“Ugh... your cunt is mine, forever!”",
"“NNGH! Filling you up so good!”",
"“NNGH! All inside! Take it all!”",
"“Mmmf...”",
"“Mmmm... so tight... unnghh!”",
"“God, YESS! All this for YOU!!”",
"“Ahhh! Take all my fucking cum!”",
"“Nnggh...”",
"“NNGH! Your hot Latina pussy is perfect!”",
"“Ugnnnf, so fucking good!”",
"“Unnnf... inside you... nghh!”",
"“Yesss, take it all...”",
"“Your wet pussy's amazing... nghhh!”",
"“Ohhh God! Nngh... so tight!”",
"“NNNGH! You're squeezing me!!”",
"“Ohh... ughh... yeahh!”",
"“Nngghh!”",
"“Fucking made for my cock... NNGHH!”",
"“Yesss! Oh, fuck yeah!”",
"“NNGHH! Perfect for breeding, nghh!”",
"“Ohh, fuck! FILLING YOU UP!!”",
"“Ungghh! So FUCKING tight!”",
"“Nnnn...”",
"“Your pussy... so perfect!”",
"“Nngh! Unghh!”",
"“AHHH! Take it... yeahh!”",
"“Oh, fuck! Milking me so good!”",
"“Nnghh! Feel every drop!!”",
"“Mmmm... yeahhh!”",
"“Unnghh! Gonna fill you up!!”",
"“NNGGH! Ahhh, yeahh!!”",
"“Mmmmf! Fuck, so good!”",
"“Ughhh!! Holy fuck!”",
"“NNNGHHH!”",
"“You're so tighttt! Take it!”",
"“Nnghh, God YES! UGH!”",
"“All this cum... inside you, UNGH!”",
"“Nnnn, holy shit! YEAH!”",
"“Mmmm, unnghh! Milk me!!”",
"“Negh... can't hold back!”",
"“Ugh... filling you up, all of it!”",
"“NNNGHH! SO TIGHT!”",
"“All my cum for you... unnfff!”",
"“Your pussy's mine now... nggh!”",
"“FUCK! So good, SO TIGHT!”"))
](else-if:$character's "race" is "black" and (twist:1,2) is 1)[
(set:$sperm_defense_messages to
(a:"“Nnnnggh!”",
"“Fuck yeah!”",
"“Oh fuck... ungh! Chocolate cream pie!”",
"“NNGH! Feel all that spunk inside you!”",
"“Unnngh! Take it!”",
"“Nghhh... so good! Your pussy's perfect!”",
"“Nnnngh! Milking me so fucking good!”",
"“NNGGHH! This black cunt is mine!”",
"“Unnnhh! All this cream, just for you!”",
"“Fuck! Take my seed!”",
"“Ohhh shit! Here it comes!”",
"“NNNGHH! So tight!”",
"“Nnnnghh... you're squeezing me dry!”",
"“Unff! Feel that? Filling you up!”",
"“NNGH!!”",
"“God, YES! Squeezing me so fucking good!”",
"“Unnngh!”",
"“Nngghh...”",
"“Fuck! Breeding this black pussy!”",
"“NNNGHH! So tighttt! Nghhh!”",
"“God! Your pussy's amazing!”",
"“NNGH! Milk me dry, slut!”",
"“Ugh, yeah! All this cum, just for you!”",
"“Nnnghhh... MY pussy! I own it now!”",
"“NNNGHH! God, so good!!”",
"“Unnfff... ”",
"“Nnnghh! Cumming inside my black goddess!”",
"“NNNGH! Chocolate pussy's so fucking tight!!”",
"“NNGH! Taking every last drop!!”",
"“Ughhh!”",
"“Nnnnghh!”",
"“Yeahhh!!”",
"“Ohhh GOD! So fucking good!”",
"“Nnnghh! Take it all!”",
"“NNGHH! UNGH!”",
"“Unnhhh! Can't stop cumming!”",
"“NNGH! Every drop... for you!”",
"“NNNGH! Can't stop cumming!”",
"“Nnnggghhh!”"))
](else:)[
(set:$sperm_defense_messages to
(a:"“NGGGH! Fuck! Your pussy is so tight...”",
"“OH FUCK! Your wet little cunt is milking my cock!”",
"“Gonna fucking fill you up! Take it all!”",
"“Shit shit shit... I'm cumming! Ohhhh YEAH!”",
"“Fuck, you feel so good! Take my cum!”",
"“Your tight pussy is squeezing my cock... UNGHHH!”",
"“FUUUCK! Oh god, here it comes, ALL OF IT!”",
"“I’m cumming so hard... fuck, you’re perfect!”",
"“OH SHIT! UNNGGH- FUCK YEAH!”",
"“NGGGH! Fuck! Your pussy is so tight...”",
"“OH FUCK! Your wet little cunt is milking my cock!”",
"“Gonna fucking fill you up! Take it all!”",
"“Shit shit shit... I'm cumming! Ohhhh YEAH!”",
"“Fuck, you feel so good!”",
"“Your tight pussy is squeezing my cock... UNGHHH!”",
"“FUUUCK! Oh god, here it comes, ALL OF IT!”",
"“I’m cumming so hard... fuck, you’re perfect!”",
"“OH SHIT! UNNGGH- FUCK YEAH!”",
"“Nnnnghh! Your pussy... so fucking wet!”",
"“YEAH, TAKE IT! Oh fffuuuck, take my load!”",
"“Ohh god, this pussy... nghhh!!!”",
"“Filling you up... unghhh!”",
"“Nnnngh!!! Fuck, you're squeezing me dry!”",
"“Oh f- fuck! It's so good... can't... Nghhhh!”",
"“Nngh! Oh god, cumming sooo deep...”",
"“Aaahhhh! More! Take all of it!”",
"“Oh yes! YES! Keep squeezing my cock!”",
"“Ahhhh fuck, this pussy... is perfect!”",
"“Unnngh, yeah!!”",
"“NNGGHH! Take every drop, bitch!”",
"“UGH, fuck! Nghhh!”",
"“UNGHH, take my fucking cum, slut!”",
"“NNGHH, feel that?! All inside you!”",
"“Fucking god! So tight... nnnghh!”",
"“Fuck! UNGH... take it all!”",
"“NNNNGGHH! Gonna fill you up, bitch!”",
"“UNGHGH! Yeah, slut!”",
"“Nghhh... all this cum for you!”",
"“Ungh... yeah bitch, take it!”",
"“Nnnngh! Yeah! Fuck yeah!”",
"“NNNGH! Fuck! NNGH!!”",
"“AH! UH! Aaahh!”",
"“Nnnngh... you whore!”",
"“NNNGH! Tight little slut!”",
"“Ungh... fuck yeah!”",
"“UNNGHH! YEAH! NNGH!”",
"“OHH YEAH! Unghh...!”",
"“Shit, slut... feel it all inside you!”",
"“NNGH! Fuck you! Fucking whore!”",
"“Nghhh, slut! Feel my cum!”",
"“Ahhh! Fuck, take it!”",
"“NNNNGH! Unnggggh...”",
"“Fuck, take all my cum!”",
"“Ngh... YEAH! All of it!”",
"“Take it, whore! NGH!”",
"“NNNNGH!”",
"“Unnngh... so GOOD!”",
"“NNGGH! Here it comes, slut!”",
"“NNGH! Ugh! UNGH!”",
"“Guhhh... yeah, whore!”",
"“Nnngh! Get wrecked, slut!”",
"“NNGH! Nghh!”",
"“UNGHH! So fucking tight!”",
"“N-NNGHHH! Take it all!”",
"“Nnn! UGHHH!”",
"“Nghhhh! GOD YES!”",
"“UNNNGH! NNNGH!”",
"“OHHH fuck! All my cum!”",
"“NGGH! Whore... feel it!”",
"“NNNNGH! Good little slut!”",
"“Fuck! Nghh... take it!”",
"“Uuggghh! Fuck yeah!”",
"“NNNGGHH! Gonna fill you up!”",
"“All inside you! NNNGH!”",
"“Yeah whore! NNNGH!”",
"“Feels so good, slut! Fuck!”",
"“NNGH! There it is, take it!”",
"“Fuck, ngh! Good slut!”",
"“NNNNGH... uhh!”",
"“NGHH! Nghh!”",
"“Yes! Take it all! Ahn!”",
"“NNGH! Oh god!”",
"“NNNNGH! Ugh, ughh!”",
"“Dumb slut, feel my seed!”",
"“NNGH! Tight fucking cunt!”",
"“NNGH! Uhhh!”",
"“Fuck, ngh! Take it!”",
"“NNNGH! Yeah, bitch!”",
"“NNNNGH! Fucking whore!”",
"“Ugh! Ugh! Nghhh!”",
"“YEAH! Take it all!”",
"“NNNGGH! All my cum!”",
"“Ungggh... fuck!”",
"“Ungh! Nghh!”",
"“Fuck, fucking whore!“",
"“NNNGH! Feels so good!”",
"“N-ngghh! Oh shit!”",
"“AH! UH! UNGH!”",
"“NNNGH! My whore!”",
"“NNGH! Uuunnngh!”",
"“OHHH YEAH!”",
"“YYYESSHHH!”",
"“Oh my god! Yes!”",
"“NNNNGHHH!”",
"“Make you my bitch!”",
"“Oh FUCK!”",
"“NNNGHH!”",
"“Mmmm, yeah, take it, whore!”",
"“NNNNGH!”",
"“Fuck, take it all!”",
"“NNNGHH! Such a tight little hole!”",
"“Ugh, UGH! Take my load, slut!”",
"“Nnngghhh! God, YES!”",
"“UGHH, unghh!”",
"“YEAH! Take my cum, bitch!”",
"“NNNGHHH! Ungh!”",
"“Fucking cum-dump, take it all!”",
"“NNNGHH! That’s right, you slut!”",
"“Uuuggghh! Feel every drop, bitch!”",
"“NNNGHH! So perfect!”",
"“Mmm! Take it, take my cum!”",
"“Nngghhh! Fuck yeah!”",
"“Feel that, slut?!”",
"“NNNGH! Ohh FUCK!”",
"“God, YES! So tight!”",
"“NNNGH! Just for you, whore!”",
"“Fuck! So good!”",
"“NNNGHHHH! Take it all!”",
"“Unghh, unghh, oh god!”",
"“NNNGHH! YEAH!”",
"“UMPH! Yeah!”",
"“NNNGHH!”",
"“God, UGH! Fucking slut!”",
"“NNGH! Feel my seed fill you up!”",
"“NNNGGH! Ohhh!”",
"“NNNGH! Take it, take it!”",
"“Unnghh, nghh! Feel it!”",
"“NNNGH! Take my load, slut!”",
"“Nnnghhh! Mmmm, just for you!”",
"“NNGH! Take it all, you bitch!”",
"“Nngghhh! Perfect tight pussy!”",
"“Ungh, UNGH! You’re my cum-dump!”",
"“NNGH! OH YEAH!”",
"“Nghhh YES! Fill you up!”",
"“NNNGHH! So good, bitch!”",
"“NNNGHHH! You feel that?!”",
"“MMMPH! Just for you, whore!”",
"“Take it, TAKE IT!”"))]
(set:$sperm_defense_messages to (twisted:...$sperm_defense_messages))
}{
($centered:[(color:"red")[(link:"Engage nanobot birth control!")[(set:$today_events to it + (a:"nanobots activation"))(set:$is_simulation to false)(display:"sperm defense alert box")]]])
}{
($centered:[(color:"#1ec31e")[(link:"Engage sperm simulation routine!")[(masteraudio:"stopall")(set:$cum_amount to (num:$cum_amount))(set:$sperm_amount to $cum_amount * 45 + 15 * (twist:3,6))(set:$today_events to it + (a:"nanobots activation"))(set:$is_simulation to true)(display:"sperm defense alert box")($cs:"nanobots simulation triggered")]]])
}{
(unless:$creampie_image_override is 0)[(set:$creampie_image to $creampie_image_override)](set:$creampie_image_override to 0)(if:$creampie_image is 0)[(display:"sex creampie image")]
<div class="alert-overlay">
<div class="alert-box">
<div class="alert-content">
(display:"sperm defense game")
</div>
</div>
</div>
(set:$sperm_minigame_result to "running")
(live:2s)[(unless:$sperm_minigame_result is "running")[(stop:)(if:$sperm_minigame_result is "win")[(unless:$is_simulation)[(display:"Missile Command Trigger")(display:"Adult Swimmers Trigger")(display:"remove pregnancy")]](live:(cond:$sperm_minigame_result is "win",2000,9000))[(stop:)
(if:$sperm_minigame_result is "win")[
<script>
window.closeAlertSuccess();
window.playSoundEffect('sperm win', 'aud/se/sperm defense/win.mp3');
</script>
](else:)[
<script>
window.closeAlertFailure();
window.playSoundEffect('sperm lose', 'aud/se/sperm defense/lose.mp3');
</script>
]
(set:$creampie_image_override to 0)
](masteraudio:"stopall","sex loop")]]
}{
<style>
#gameContainer {
position: relative;
width: 100%;
padding-top: 50.625%;
margin: 2% auto;
border: 3px solid #4a2424;
border-radius: 125px 5px 125px 5px/5px 125px 5px 125px;
box-shadow: 0 0 5px rgba(74, 36, 36, 0.5);
overflow: hidden;
}
canvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
#backgroundVideo {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
#startMenu {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
z-index: 2;
background: rgba(0, 0, 0, 0.7);
padding: 20px;
border-radius: 125px 5px 125px 5px/5px 125px 5px 125px;
color: white;
}
.power-up-message {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 2em;
font-weight: bold;
font-family: Helvetica, Arial, sans-serif;
color: bisque;
text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
background-color: rgba(0, 0, 0, 0.7);
padding: 20px;
border-radius: 125px 5px 125px 5px/5px 125px 5px 125px;
z-index: 1000;
opacity: 0;
transition: opacity 0.3s ease-in-out;
}
.spurt-message {
position: absolute;
left: 0;
width: 100%;
font-family: Helvetica, Arial, sans-serif;
font-weight: bold;
color: rgba(255, 255, 255, 0);
text-align: center;
white-space: nowrap;
z-index: 1;
opacity: 0;
transition: opacity 0.3s ease-in-out;
pointer-events: none;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
.spurt-message.active {
opacity: 1;
}
.spurt-message .char,
.spurt-message .space {
display: inline-block;
opacity: 0;
transform: scale(0.5) rotate(0deg);
transition: all 0.3s ease-out;
}
.spurt-message .space {
width: 0.3em;
}
.spurt-message .char.animate,
.spurt-message .space.animate {
opacity: 1;
color: rgba(255, 255, 255, 0.8);
transform: scale(1.2) rotate(0deg);
animation: urgentPulse 0.3s ease-in-out forwards;
}
@keyframes urgentPulse {
0%, 100% { transform: scale(1) rotate(0deg); }
50% { transform: scale(1.4) rotate(5deg); }
}
.power-up-message.show {
opacity: 1;
}
@keyframes glowAnimation {
0% { box-shadow: 0 0 5px 2px rgba(255, 255, 255, 0.7); }
50% { box-shadow: 0 0 20px 10px rgba(255, 255, 255, 0.9); }
100% { box-shadow: 0 0 5px 2px rgba(255, 255, 255, 0.7); }
}
.spurt-announcement {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0);
font-size: 3em;
font-weight: bold;
font-family: Helvetica, Arial, sans-serif;
color: #332200;
text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
z-index: 1000;
opacity: 0;
transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}
.spurt-announcement.splat {
transform: translate(-50%, -50%) scale(1);
opacity: 1;
}
.spurt-announcement.drip {
transition: transform 3s cubic-bezier(0.25, 0.1, 0.25, 1), opacity 3s ease-in;
transform: translate(-50%, 100%) scale(1);
opacity: 0;
}
.spurt-announcement::before {
content: '';
position: absolute;
top: -20px;
left: -20px;
right: -20px;
bottom: -20px;
background: rgba(255, 253, 240, 0.9);
border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
z-index: -1;
transform: scale(0);
transition: transform 0.3s ease-out;
}
.spurt-announcement.splat::before {
transform: scale(1.5);
animation: splatAnimation 0.5s ease-out, drip 3s 0.5s forwards;
}
@keyframes splatAnimation {
0% {
clip-path: circle(10% at 50% 50%);
border-radius: 50%;
}
30% {
clip-path: circle(50% at 50% 50%);
border-radius: 45% 55% 50% 50% / 55% 45% 55% 45%;
}
100% {
clip-path: circle(75% at 50% 50%);
border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
}
}
@keyframes drip {
0% {
border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
opacity: 1;
}
20% {
border-radius: 55% 45% 65% 35% / 55% 55% 45% 45%;
opacity: 0.9;
}
40% {
border-radius: 50% 50% 60% 40% / 60% 50% 50% 40%;
opacity: 0.7;
}
60% {
border-radius: 45% 55% 55% 45% / 65% 45% 55% 35%;
opacity: 0.5;
}
80% {
border-radius: 40% 60% 50% 50% / 70% 40% 60% 30%;
opacity: 0.3;
}
100% {
border-radius: 35% 65% 45% 55% / 75% 35% 65% 25%;
opacity: 0;
}
}
#gameContainer {
position: relative;
z-index: 2;
}
</style>
(print:'{<div id="gameContainer">
<video class="borderless" id="backgroundVideo" loop muted>
<source src="' + $creampie_image + '" type="video/mp4">
</video>
<canvas id="gameCanvas"></canvas>
<div id="startMenu">Your nanobots are active - click / tap the screen to launch artificial antibodies and defeat incoming sperm.
<button class="buttonlink" onclick="window.startSpermGame()">Start!</button></div>
</div>}')
<script>
(function() {
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
const video = document.getElementById('backgroundVideo');
const startButton = document.querySelector('#startMenu button');
const TOTAL_SPERM = Harlowe.variable("$sperm_amount");
const TOTAL_SPURTS = Harlowe.variable("$cum_amount");
const SPURT_DURATION = 15000;
const BREATHING_PERIOD = 2000;
const BLAST_RADIUS_FACTOR = 0.08;
const FPS = 60;
const FRAME_TIME = 500 / FPS;
const isSimulation = Harlowe.variable("$is_simulation");
const PowerUpTypes = {
ANTIBODY_RUSH: { label: '💉', color: '#FFD700', message: 'Antibody Rush!', duration: 10000 },
BIG_BOOM: { label: '💥', color: '#FF0000', message: 'Bigger Blast Activated!', duration: 15000 },
REPAIR: { label: '🛠️', color: '#00FF00', message: 'Repaired 5 cell sections!', duration: 0 },
BOMB: { label: '💣', color: '#000000', message: 'KA-BOOM!', duration: 0 },
UPGRADE: { label: '⬆️', color: '#0000FF', message: '+1 Blast Radius Upgrade!', duration: 0 }
};
const PowerUpProbabilities = {
NORMAL: { ANTIBODY_RUSH: 0, BIG_BOOM: 0, REPAIR: 0.01, BOMB: 0, UPGRADE: 0 },
FAST: { ANTIBODY_RUSH: 0.05, BIG_BOOM: 0.008, REPAIR: 0.005, BOMB: 0.0002, UPGRADE: 0.008 },
POWERFUL: { ANTIBODY_RUSH: 0.015, BIG_BOOM: 0.012, REPAIR: 0.01, BOMB: 0.005, UPGRADE: 0.012 },
VFAST: { ANTIBODY_RUSH: 0.2, BIG_BOOM: 0.18, REPAIR: 0.15, BOMB: 0.1, UPGRADE: 0.2 },
MEGA: { ANTIBODY_RUSH: 0, BIG_BOOM: 0.22, REPAIR: 0.2, BOMB: 0.25, UPGRADE: 0.05 },
SMART: {
ANTIBODY_RUSH: 0,
BIG_BOOM: 0,
REPAIR: 0,
BOMB: 0,
UPGRADE: 1
}
};
function playShootSound() {
const shootSounds = [
"shoot 1",
"shoot 2",
"shoot 3",
"shoot 4",
"shoot 5"
];
game.lastShootSoundIndex = (game.lastShootSoundIndex + 1) % shootSounds.length;
window.playSoundEffect(shootSounds[game.lastShootSoundIndex], "aud/se/sperm defense/shoot.mp3");
}
function drawPowerUps() {
if (game.powerUps && Array.isArray(game.powerUps)) {
game.powerUps.forEach(powerUp => {
if (powerUp && typeof powerUp === 'object' && !powerUp.collected) {
ctx.save();
ctx.beginPath();
ctx.arc(powerUp.x, powerUp.y, powerUp.radius, 0, Math.PI * 2);
// Create gradient for glow effect
const gradient = ctx.createRadialGradient(
powerUp.x, powerUp.y, 0,
powerUp.x, powerUp.y, powerUp.radius * 1.5
);
gradient.addColorStop(0, PowerUpTypes[powerUp.type]?.color || '#FFFFFF');
gradient.addColorStop(1, 'rgba(255, 255, 255, 0)');
ctx.fillStyle = gradient;
ctx.fill();
ctx.font = `${powerUp.radius * 1.2}px Arial`;
ctx.fillStyle = '#000000';
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.fillText(PowerUpTypes[powerUp.type]?.label || '?', powerUp.x, powerUp.y);
// Add pulsating animation
const pulseFactor = 1 + Math.sin(Date.now() * 0.01) * 0.1;
ctx.scale(pulseFactor, pulseFactor);
ctx.restore();
}
});
}
}
function checkPowerUpCollision() {
game.powerUps.forEach(powerUp => {
if (!powerUp.collected) {
for (const missile of game.missiles) {
const dx = powerUp.x - missile.x;
const dy = powerUp.y - missile.y;
const distance = Math.sqrt(dx * dx + dy * dy);
if (distance < powerUp.radius) {
activatePowerUp(powerUp);
powerUp.collected = true;
break;
}
}
}
});
}
function checkPowerUpCollision() {
game.powerUps.forEach(powerUp => {
if (!powerUp.collected) {
for (const missile of game.missiles) {
const dx = powerUp.x - missile.x;
const dy = powerUp.y - missile.y;
const distance = Math.sqrt(dx * dx + dy * dy);
if (distance < powerUp.radius) {
activatePowerUp(powerUp);
powerUp.collected = true;
break;
}
}
}
});
}
let spurtMessages = [];
function initializeSpurtMessages() {
spurtMessages = Harlowe.variable("$sperm_defense_messages");
if (!Array.isArray(spurtMessages) || spurtMessages.length === 0) {
console.warn("$sperm_defense_messages is not a valid array.");
spurtMessages = [];
}
}
function spurtMessage(spurtNumber) {
if (spurtMessages.length === 0 || spurtNumber > spurtMessages.length) {
console.log("No more spurt messages available.");
return;
}
const message = spurtMessages[spurtNumber - 1];
const messageElement = document.createElement('div');
messageElement.className = 'spurt-message';
// Split the message into words, wrap each character in a span, and join with nbsp
messageElement.innerHTML = message.split(' ').map(word =>
`<span class="word">${word.split('').map(char => `<span class="char">${char}</span>`).join('')}</span>`
).join('<span class="space"> </span>');
document.getElementById('gameCanvas').parentNode.appendChild(messageElement);
// Adjust font size based on message length
const fontSize = Math.min(6, 80 / message.length) + 'vw';
messageElement.style.fontSize = fontSize;
// Position the message higher above the egg
const canvasRect = document.getElementById('gameCanvas').getBoundingClientRect();
const eggY = game.egg.y / canvasRect.height * 100;
messageElement.style.top = `${Math.max(5, eggY - 30)}%`;
// Trigger the animation
setTimeout(() => {
messageElement.classList.add('active');
Array.from(messageElement.querySelectorAll('.char, .space')).forEach((span, index) => {
setTimeout(() => {
span.classList.add('animate');
}, index * 50);
});
setTimeout(() => {
messageElement.classList.remove('active');
setTimeout(() => {
messageElement.remove();
}, 500);
}, 3000);
}, 50);
}
function showPowerUpMessage(message) {
const powerUpMessage = document.createElement('div');
powerUpMessage.textContent = message;
powerUpMessage.className = 'power-up-message';
document.body.appendChild(powerUpMessage);
setTimeout(() => {
powerUpMessage.classList.add('show');
setTimeout(() => {
powerUpMessage.classList.remove('show');
setTimeout(() => {
document.body.removeChild(powerUpMessage);
}, 300);
}, 2000);
}, 50);
}
function repairProtectiveLayers(amount) {
let repairsLeft = amount;
// First, repair Zona Pellucida (inner layer)
for (let i = 0; i < game.zonaPellucida.length && repairsLeft > 0; i++) {
let segment = game.zonaPellucida[i];
if (segment.health < segment.maxHealth) {
segment.health = segment.maxHealth; // Fully repair the segment
repairsLeft--;
}
}
// If repairs are left, move to Corona Radiata (outer layer)
for (let i = 0; i < game.coronaRadiata.length && repairsLeft > 0; i++) {
let segment = game.coronaRadiata[i];
if (segment.health < segment.maxHealth) {
segment.health = segment.maxHealth; // Fully repair the segment
repairsLeft--;
}
}
console.log(`Repairs completed. ${amount - repairsLeft} segments repaired.`);
}
function destroyAllSperm() {
game.spermCells.forEach(sperm => {
sperm.isDying = true;
sperm.deathProgress = 0;
});
}
// Define the sperm types with their properties
const SpermTypes = {
NORMAL: {
speed: 1.5,
tailThickness: 1,
tailWiggleSpeed: 1,
health: 1,
headSize: 1,
color: '#FFFFFF',
simulationColor: '#FFFFFF',
spawnProbability: 1 - (1/25 + 1/50 + 1/150 + 1/200 + 1/100)
},
FAST: {
speed: 5,
tailThickness: 1,
tailWiggleSpeed: 2,
health: 1,
headSize: 1,
color: '#FFFFFF',
simulationColor: '#334eff',
spawnProbability: 1/25
},
VFAST: {
speed: 8,
tailThickness: 1,
tailWiggleSpeed: 3,
health: 1,
headSize: 1,
color: '#d7e8d3',
simulationColor: '#ffe100',
spawnProbability: 1/150
},
POWERFUL: {
speed: 3,
tailThickness: 1,
tailWiggleSpeed: 1.5,
health: 2,
headSize: 1.5,
color: '#FFFFFF',
simulationColor: '#90EE90',
spawnProbability: 1/50
},
MEGA: {
speed: 1.5,
tailThickness: 1,
tailWiggleSpeed: 1,
health: 3,
headSize: 2,
color: '#e8e7d3',
simulationColor: '#ff0000',
spawnProbability: 1/150
},
SMART: {
speed: 4,
tailThickness: 1,
tailWiggleSpeed: 2,
health: 1,
headSize: 1.2,
color: '#FFFFFF',
simulationColor: '#00FFFF',
spawnProbability: 1/100,
evadeTime: 2000
}
};
let game = {
egg: null,
spermCells: [],
antibodies: [],
missiles: [],
score: 0,
gameOver: false,
gradientAngle: 0,
canShoot: true,
powerUp: null,
powerUpActive: false,
powerUpStartTime: 0,
win: false,
powerUpSpawned: false,
currentWave: 0,
currentSpurt: 0,
spurtSizes: [],
isSpurtActive: false,
lastSpurtEndTime: 0,
animationFrameId: null,
lastUpdateTime: 0,
deltaTime: 0,
bigBoomActive: false,
noShootZoneRadius: 0,
isNoShootZoneFlashing: false,
noShootZoneFlashDuration: 1000,
noShootZoneFlashStartTime: 0,
isStunned: false,
stunnedStartTime: 0,
stunnedDuration: 4000,
zonaPellucida: [],
coronaRadiata: [],
blastRadius: 0,
blastRadiusMultiplier: 1,
powerUps: []
};
function initGame() {
resizeCanvas();
game.egg = {
x: canvas.width / 2,
y: canvas.height / 2,
radius: canvas.width * 0.05,
innerRadius: canvas.width * 0.025
};
game.spermCells = [];
game.antibodies = [];
game.missiles = [];
game.powerUps = [];
game.spurtSizes = calculateSpurtSizes(Harlowe.variable("$sperm_amount"), Harlowe.variable("$cum_amount"));
game.currentSpurt = 0;
createScoreDisplay();
game.score = 0;
game.isSpurtActive = false;
game.lastSpurtEndTime = 0;
updateScoreDisplay();
game.gameOver = false;
game.gradientAngle = 0;
game.canShoot = true;
game.powerUpActive = false;
game.powerUpStartTime = 0;
game.win = false;
game.blastRadius = canvas.width * BLAST_RADIUS_FACTOR;
game.blastRadiusMultiplier = 1;
initializeProtectiveLayers();
game.lastUpdateTime = performance.now();
game.deltaTime = 0;
initializeSpurtMessages();
}
function spawnSperm() {
console.log("spawnSperm called. Current spurt:", game.currentSpurt, "Is spurt active:", game.isSpurtActive);
if (game.currentSpurt >= TOTAL_SPURTS) {
console.log("All spurts completed");
return;
}
if (game.isSpurtActive) {
console.log("Spurt already active, waiting for next opportunity");
return;
}
game.currentSpurt++; // Increment here before spawning
game.isSpurtActive = true;
const spurtSize = game.spurtSizes[game.currentSpurt - 1];
const spawnInterval = Math.max(50, SPURT_DURATION / spurtSize);
console.log(`Starting Spurt ${game.currentSpurt} with ${spurtSize} sperm`);
showSpurtAnnouncement(game.currentSpurt);
updateScoreDisplay();
let spawnedCount = 0;
const spawnIntervalId = setInterval(() => {
if (spawnedCount < spurtSize) {
const newSperm = createSpermCell();
game.spermCells.push(newSperm);
spawnedCount++;
console.log(`Spawned sperm ${spawnedCount}/${spurtSize}. Total sperm: ${game.spermCells.length}`);
} else {
clearInterval(spawnIntervalId);
console.log(`Finished spawning sperm for Spurt ${game.currentSpurt}`);
game.isSpurtActive = false;
game.lastSpurtEndTime = Date.now();
updateScoreDisplay();
console.log(`Spurt ${game.currentSpurt} ended. Total sperm: ${game.spermCells.length}`);
if (game.currentSpurt < TOTAL_SPURTS) {
setTimeout(checkForNextSpurt, BREATHING_PERIOD);
} else {
console.log("All spurts completed. Game will end when all sperm are destroyed.");
}
}
}, spawnInterval);
}
function calculateSpurtSizes(totalSperm, totalSpurts) {
// Adjust the exponent to control ramp-up smoothness
// Exponent less than 1 makes the ramp-up less steep
const exponent = 0.7; // You can adjust this value between 0 and 1
let weights = [];
for (let i = 0; i < totalSpurts; i++) {
weights[i] = Math.pow(i + 1, exponent);
}
// Calculate the sum of weights
const sumOfWeights = weights.reduce((a, b) => a + b, 0);
// Calculate initial sizes based on weights
let sizes = weights.map(weight => (weight * totalSperm) / sumOfWeights);
// Convert sizes to integers using the Largest Remainder Method
let integerSizes = sizes.map(size => Math.floor(size));
let totalAllocated = integerSizes.reduce((a, b) => a + b, 0);
let remaining = totalSperm - totalAllocated;
// Distribute remaining sperm based on largest fractional parts
let fractionalParts = sizes.map((size, index) => ({
index: index,
fraction: size - integerSizes[index]
}));
fractionalParts.sort((a, b) => b.fraction - a.fraction);
for (let i = 0; i < remaining; i++) {
integerSizes[fractionalParts[i].index]++;
}
// Ensure the sizes always ramp up
for (let i = 1; i < integerSizes.length; i++) {
if (integerSizes[i] < integerSizes[i - 1]) {
integerSizes[i] = integerSizes[i - 1];
}
}
// Adjust sizes if total sperm count doesn't match after ramp-up
totalAllocated = integerSizes.reduce((a, b) => a + b, 0);
let adjustment = totalSperm - totalAllocated;
if (adjustment > 0) {
// Add extra sperm to the last spurt
integerSizes[integerSizes.length - 1] += adjustment;
} else if (adjustment < 0) {
// Remove excess sperm starting from the last spurt
for (let i = integerSizes.length - 1; i >= 0 && adjustment < 0; i--) {
let decrease = Math.min(-adjustment, integerSizes[i] - (i > 0 ? integerSizes[i - 1] : 1));
integerSizes[i] -= decrease;
adjustment += decrease;
}
}
// Final safety check to ensure sizes ramp up and sum correctly
for (let i = 1; i < integerSizes.length; i++) {
if (integerSizes[i] < integerSizes[i - 1]) {
integerSizes[i] = integerSizes[i - 1];
}
}
totalAllocated = integerSizes.reduce((a, b) => a + b, 0);
if (totalAllocated !== totalSperm) {
integerSizes[integerSizes.length - 1] += totalSperm - totalAllocated;
}
console.log("Spurt sizes:", integerSizes);
console.log("Total sperm:", integerSizes.reduce((a, b) => a + b, 0));
return integerSizes;
}
function createScoreDisplay() {
let scoreDisplay = document.getElementById('scoreDisplay');
if (!scoreDisplay) {
scoreDisplay = document.createElement('div');
scoreDisplay.id = 'scoreDisplay';
scoreDisplay.style.position = 'absolute';
scoreDisplay.style.top = '10px';
scoreDisplay.style.left = '10px';
scoreDisplay.style.color = 'white';
scoreDisplay.style.fontSize = '18px';
scoreDisplay.style.fontWeight = 'bold';
document.getElementById('gameContainer').appendChild(scoreDisplay);
}
updateScoreDisplay();
}
function createGradientBackground() {
const gradient = ctx.createLinearGradient(0, 0, canvas.width, canvas.height);
gradient.addColorStop(0, `hsla(${game.gradientAngle}, 100%, 30%, 0.5)`);
gradient.addColorStop(1, `hsla(${(game.gradientAngle + 60) % 360}, 100%, 30%, 0.5)`);
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, canvas.width, canvas.height);
game.gradientAngle = (game.gradientAngle + 0.25) % 360;
}
game.bigBoomActive = false;
game.noShootZoneRadius = 0;
game.isNoShootZoneFlashing = false;
game.noShootZoneFlashDuration = 1000; // 1 second flash duration
game.noShootZoneFlashStartTime = 0;
function drawEgg() {
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, game.egg.radius, 0, Math.PI * 2);
ctx.fillStyle = '#FFB6C1';
ctx.fill();
ctx.closePath();
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, game.egg.innerRadius, 0, Math.PI * 2);
ctx.fillStyle = '#FF69B4';
ctx.fill();
ctx.closePath();
// Draw no-shoot zone
const effectiveBlastRadius = game.blastRadius * (game.bigBoomActive ? 1.5 : 1);
const dangerZoneRadius = game.egg.radius * 1.3 + effectiveBlastRadius;
// Smoothly animate the no-shoot zone radius
game.noShootZoneRadius += (dangerZoneRadius - game.noShootZoneRadius) * 0.1;
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, game.noShootZoneRadius, 0, Math.PI * 2);
// Flash the no-shoot zone when it changes
if (game.isNoShootZoneFlashing) {
const flashProgress = (Date.now() - game.noShootZoneFlashStartTime) / game.noShootZoneFlashDuration;
const flashIntensity = Math.sin(flashProgress * Math.PI * 4) * 0.5 + 0.5;
ctx.strokeStyle = `rgba(255, ${Math.floor(255 * (1 - flashIntensity))}, 0, 0.5)`;
if (flashProgress >= 1) {
game.isNoShootZoneFlashing = false;
}
} else {
ctx.strokeStyle = 'rgba(255, 0, 0, 0.5)';
}
ctx.setLineDash([5, 5]);
ctx.stroke();
ctx.setLineDash([]);
if (game.isStunned) {
const stunnedProgress = (Date.now() - game.stunnedStartTime) / game.stunnedDuration;
const pulseFactor = 1 + Math.sin(stunnedProgress * Math.PI * 10) * 0.1;
ctx.save();
ctx.translate(game.egg.x, game.egg.y);
ctx.scale(pulseFactor, pulseFactor);
// Draw a "vulnerable" overlay
ctx.beginPath();
ctx.arc(0, 0, game.egg.radius, 0, Math.PI * 2);
ctx.fillStyle = `rgba(255, 105, 180, ${0.3 + Math.sin(stunnedProgress * Math.PI * 10) * 0.2})`;
ctx.fill();
ctx.restore();
}
}
function initializeProtectiveLayers() {
const segments = 12;
game.zonaPellucida = [];
game.coronaRadiata = [];
for (let i = 0; i < segments; i++) {
const angle = (Math.PI * 2) / segments;
game.zonaPellucida.push({
startAngle: i * angle,
endAngle: (i + 1) * angle,
health: 3,
maxHealth: 3,
});
game.coronaRadiata.push({
startAngle: i * angle,
endAngle: (i + 1) * angle,
health: 3,
maxHealth: 3,
});
}
}
function drawProtectiveLayers() {
drawCoronaRadiata();
drawZonaPellucida();
}
function drawCoronaRadiata() {
const innerRadius = game.egg.radius * 1.2;
const outerRadius = game.egg.radius * 1.3;
game.coronaRadiata.forEach(segment => {
if (segment.health > 0) {
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, outerRadius, segment.startAngle, segment.endAngle);
ctx.arc(game.egg.x, game.egg.y, innerRadius, segment.endAngle, segment.startAngle, true);
ctx.closePath();
ctx.fillStyle = 'rgba(255, 223, 186, 1)'; // Light golden color with full opacity
ctx.fill();
}
});
}
function drawZonaPellucida() {
const innerRadius = game.egg.radius * 1.1;
const outerRadius = game.egg.radius * 1.2;
game.zonaPellucida.forEach(segment => {
if (segment.health > 0) {
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, outerRadius, segment.startAngle, segment.endAngle);
ctx.arc(game.egg.x, game.egg.y, innerRadius, segment.endAngle, segment.startAngle, true);
ctx.closePath();
ctx.fillStyle = 'rgba(255, 192, 203, 1)'; // Pinkish color with full opacity
ctx.fill();
}
});
}
function createSpermCell() {
let x, y, angle;
const type = determineSpermType();
if (type === 'FAST' || type === 'VFAST') {
// FAST and VFAST sperm only spawn on left or right sides
if (Math.random() < 0.5) {
x = 0;
y = Math.random() * canvas.height;
angle = 0;
} else {
x = canvas.width;
y = Math.random() * canvas.height;
angle = Math.PI;
}
} else {
// For other types, use the original spawning logic
const side = Math.random();
if (side < 0.25) {
x = 0;
y = Math.random() * canvas.height;
angle = 0;
} else if (side < 0.5) {
x = canvas.width;
y = Math.random() * canvas.height;
angle = Math.PI;
} else if (side < 0.75) {
x = Math.random() * canvas.width;
y = 0;
angle = Math.PI / 2;
} else {
x = Math.random() * canvas.width;
y = canvas.height;
angle = -Math.PI / 2;
}
}
const spermType = SpermTypes[type];
return {
x,
y,
angle,
tailAngle: 0,
isDying: false,
deathProgress: 0,
type: type,
health: spermType.health,
maxHealth: spermType.health,
damagedBy: new Set(),
type: type,
health: spermType.health,
maxHealth: spermType.health,
damagedBy: new Set(),
isEvading: false,
evadeStartTime: 0,
evadeTargetX: 0,
evadeTargetY: 0
};
}
function determineSpermType() {
const rand = Math.random();
let cumulativeProbability = 0;
for (const spermType in SpermTypes) {
cumulativeProbability += SpermTypes[spermType].spawnProbability;
if (rand < cumulativeProbability) {
return spermType;
}
}
// Fallback to NORMAL if no type is selected (should rarely happen)
return 'NORMAL';
}
function moveSpermCells() {
game.spermCells = game.spermCells.filter(sperm => {
const spermType = SpermTypes[sperm.type];
if (!sperm.isDying) {
let targetX = game.egg.x;
let targetY = game.egg.y;
if (sperm.type === 'SMART' && sperm.isEvading) {
const evadeTimeElapsed = Date.now() - sperm.evadeStartTime;
if (evadeTimeElapsed < SpermTypes.SMART.evadeTime) {
targetX = sperm.evadeTargetX;
targetY = sperm.evadeTargetY;
} else {
sperm.isEvading = false;
}
}
const dx = targetX - sperm.x;
const dy = targetY - sperm.y;
const distance = Math.sqrt(dx * dx + dy * dy);
const speed = canvas.width * 0.00010 * spermType.speed * game.deltaTime / FRAME_TIME;
sperm.x += dx / distance * speed;
sperm.y += dy / distance * speed;
sperm.angle = Math.atan2(dy, dx);
sperm.tailAngle += 0.15 * spermType.tailWiggleSpeed * game.deltaTime / FRAME_TIME;
return true;
} else {
sperm.deathProgress += 0.075 * game.deltaTime / FRAME_TIME;
if (sperm.deathProgress >= 1) {
game.score++;
updateScoreDisplay();
if (!sperm.diedFromWallCollision) {
spawnPowerUp(sperm.x, sperm.y, sperm.type);
}
return false;
}
return true;
}
});
if (game.spermCells.length === 0 && !game.isSpurtActive && game.currentSpurt < TOTAL_SPURTS) {
checkForNextSpurt();
}
}
function createMissile(x, y) {
const dx = x - game.egg.x;
const dy = y - game.egg.y;
const distance = Math.sqrt(dx * dx + dy * dy);
game.missiles.push({
startX: game.egg.x,
startY: game.egg.y,
targetX: x,
targetY: y,
x: game.egg.x,
y: game.egg.y,
progress: 0,
speed: canvas.width * 0.0045 / distance,
isBigBoom: game.bigBoomActive
});
playShootSound();
// Trigger SMART sperm evasion
game.spermCells.forEach(sperm => {
if (sperm.type === 'SMART' && !sperm.isEvading) {
const dx = sperm.x - x;
const dy = sperm.y - y;
const distanceToBlast = Math.sqrt(dx * dx + dy * dy);
if (distanceToBlast <= game.blastRadius * 2) { // Evade if within twice the blast radius
sperm.isEvading = true;
sperm.evadeStartTime = Date.now();
// Calculate evasion target (opposite direction from the blast)
const evadeAngle = Math.atan2(dy, dx);
const evadeDistance = canvas.width * 0.2; // Adjust this value as needed
sperm.evadeTargetX = sperm.x + Math.cos(evadeAngle) * evadeDistance;
sperm.evadeTargetY = sperm.y + Math.sin(evadeAngle) * evadeDistance;
}
}
});
}
function updateMissiles() {
game.missiles = game.missiles.filter(missile => {
missile.progress += missile.speed * game.deltaTime / FRAME_TIME;
missile.x = missile.startX + (missile.targetX - missile.startX) * missile.progress;
missile.y = missile.startY + (missile.targetY - missile.startY) * missile.progress;
if (missile.progress >= 1) {
createAntibody(missile.targetX, missile.targetY, missile.isBigBoom);
return false;
}
return true;
});
}
function updateAntibodies() {
game.antibodies = game.antibodies.filter(antibody => {
antibody.radius += canvas.width * 0.0015 * game.deltaTime / FRAME_TIME;
// Damage segments if they are within the current radius
// Damage Corona Radiata segments
const coronaOuterRadius = game.egg.radius * 1.3; // Outer radius of Corona Radiata
game.coronaRadiata.forEach(segment => {
if (segment.health > 0) {
// Check if segment overlaps with antibody's current radius
const segmentMidAngle = (segment.startAngle + segment.endAngle) / 2;
const segmentX = game.egg.x + coronaOuterRadius * Math.cos(segmentMidAngle);
const segmentY = game.egg.y + coronaOuterRadius * Math.sin(segmentMidAngle);
const dxSegment = segmentX - antibody.x;
const dySegment = segmentY - antibody.y;
const distanceToSegment = Math.sqrt(dxSegment * dxSegment + dySegment * dySegment);
if (distanceToSegment <= antibody.radius) {
segment.health = 0; // Destroy segment when explosion reaches it
}
}
});
// Damage Zona Pellucida segments
const zonaOuterRadius = game.egg.radius * 1.2; // Outer radius of Zona Pellucida
game.zonaPellucida.forEach(segment => {
if (segment.health > 0) {
// Check if segment overlaps with antibody's current radius
const segmentMidAngle = (segment.startAngle + segment.endAngle) / 2;
const segmentX = game.egg.x + zonaOuterRadius * Math.cos(segmentMidAngle);
const segmentY = game.egg.y + zonaOuterRadius * Math.sin(segmentMidAngle);
const dxSegment = segmentX - antibody.x;
const dySegment = segmentY - antibody.y;
const distanceToSegment = Math.sqrt(dxSegment * dxSegment + dySegment * dySegment);
if (distanceToSegment <= antibody.radius) {
segment.health = 0; // Destroy segment when explosion reaches it
}
}
});
if (antibody.radius >= antibody.maxRadius) {
antibody.alpha -= 0.075 * game.deltaTime / FRAME_TIME;
return antibody.alpha > 0;
}
return true;
});
}
function drawMissiles() {
ctx.strokeStyle = '#FF0000';
ctx.lineWidth = canvas.width * 0.002;
game.missiles.forEach(missile => {
ctx.beginPath();
ctx.moveTo(missile.startX, missile.startY);
ctx.lineTo(missile.x, missile.y);
ctx.stroke();
});
}
function drawSpermCell(sperm) {
const spermType = SpermTypes[sperm.type];
ctx.save();
ctx.translate(sperm.x, sperm.y);
ctx.rotate(sperm.angle);
const headLength = canvas.width * 0.012 * spermType.headSize;
const headWidth = canvas.width * 0.006 * spermType.headSize;
const tailLength = canvas.width * 0.03;
let spermColor = isSimulation ? spermType.simulationColor : spermType.color;
if (!isSimulation && (sperm.type === 'POWERFUL' || sperm.type === 'MEGA')) {
const healthRatio = sperm.health / sperm.maxHealth;
if (healthRatio < 1) {
const redIntensity = Math.floor(255 * (1 - healthRatio));
spermColor = `rgb(255, ${255 - redIntensity}, ${255 - redIntensity})`;
}
}
if (sperm.isDying) {
ctx.globalAlpha = 1 - sperm.deathProgress;
}
// Add glow effect if simulation is active
if (isSimulation) {
ctx.shadowBlur = canvas.width * 0.005;
ctx.shadowColor = 'rgba(3, 160, 98, 0.7)';
}
// Draw sperm head
if (sperm.type === 'SMART') {
// Bulbous head for SMART sperm
ctx.beginPath();
ctx.ellipse(0, 0, headLength * 0.6, headWidth * 0.8, 0, 0, Math.PI * 2);
ctx.fillStyle = spermColor;
ctx.fill();
// Two front circles
const circleRadius = headWidth * 0.3;
ctx.beginPath();
ctx.arc(headLength * 0.4, -circleRadius, circleRadius, 0, Math.PI * 2);
ctx.arc(headLength * 0.4, circleRadius, circleRadius, 0, Math.PI * 2);
ctx.fillStyle = spermColor;
ctx.fill();
// Outline for better visibility
ctx.strokeStyle = 'rgba(0, 0, 0, 0.5)';
ctx.lineWidth = 1;
ctx.stroke();
} else {
// Original head shape for other sperm types
ctx.beginPath();
ctx.ellipse(0, 0, headLength / 2, headWidth / 2, 0, 0, Math.PI * 2);
ctx.fillStyle = spermColor;
ctx.fill();
}
// Draw sperm tail
ctx.beginPath();
ctx.moveTo(-headLength / 2, 0);
for (let i = 0; i < 30; i++) {
const x = -headLength / 2 - i * (tailLength / 30);
const y = Math.sin(i * 0.3 + sperm.tailAngle) * headWidth * 0.75 * spermType.tailThickness;
ctx.lineTo(x, y);
}
ctx.strokeStyle = spermColor;
ctx.lineWidth = headWidth * 0.25 * spermType.tailThickness;
ctx.stroke();
// Reset shadow properties to prevent affecting other drawings
if (isSimulation) {
ctx.shadowBlur = 0;
ctx.shadowColor = 'transparent';
}
ctx.restore();
}
game.isStunned = false;
game.stunnedStartTime = 0;
game.stunnedDuration = 4000; // 4 seconds
function createAntibody(x, y, isBigBoom) {
const antibodyId = Date.now() + Math.random();
const effectiveBlastRadius = game.blastRadius * (isBigBoom ? 1.5 : 1);
game.antibodies.push({
x,
y,
radius: 0,
maxRadius: effectiveBlastRadius,
alpha: 1,
id: antibodyId
});
// Check if blast overlaps with egg center
const dx = x - game.egg.x;
const dy = y - game.egg.y;
const distanceToEggCenter = Math.sqrt(dx * dx + dy * dy);
if (distanceToEggCenter <= effectiveBlastRadius) {
stunEgg();
}
// Damage Corona Radiata
const coronaOuterRadius = game.egg.radius * 1.3; // Outer radius of Corona Radiata
if (distanceToEggCenter <= coronaOuterRadius + game.blastRadius) {
game.coronaRadiata.forEach(segment => {
if (segment.health > 0) {
// Check if segment overlaps with blast radius
const segmentMidAngle = (segment.startAngle + segment.endAngle) / 2;
const segmentX = game.egg.x + coronaOuterRadius * Math.cos(segmentMidAngle);
const segmentY = game.egg.y + coronaOuterRadius * Math.sin(segmentMidAngle);
const dxSegment = segmentX - x;
const dySegment = segmentY - y;
const distanceToSegment = Math.sqrt(dxSegment * dxSegment + dySegment * dySegment);
if (distanceToSegment <= game.blastRadius) {
segment.health--;
}
}
});
}
function stunEgg() {
game.isStunned = true;
game.stunnedStartTime = Date.now();
showStunnedMessage();
}
// Damage Zona Pellucida
const zonaOuterRadius = game.egg.radius * 1.2; // Outer radius of Zona Pellucida
if (distanceToEggCenter <= zonaOuterRadius + game.blastRadius) {
game.zonaPellucida.forEach(segment => {
if (segment.health > 0) {
// Check if segment overlaps with blast radius
const segmentMidAngle = (segment.startAngle + segment.endAngle) / 2;
const segmentX = game.egg.x + zonaOuterRadius * Math.cos(segmentMidAngle);
const segmentY = game.egg.y + zonaOuterRadius * Math.sin(segmentMidAngle);
const dxSegment = segmentX - x;
const dySegment = segmentY - y;
const distanceToSegment = Math.sqrt(dxSegment * dxSegment + dySegment * dySegment);
if (distanceToSegment <= game.blastRadius) {
segment.health--;
}
}
});
}
}
function showStunnedMessage() {
const stunnedMessage = document.createElement('div');
stunnedMessage.textContent = 'Stunned!';
stunnedMessage.className = 'power-up-message';
stunnedMessage.style.color = 'red';
document.body.appendChild(stunnedMessage);
setTimeout(() => {
stunnedMessage.classList.add('show');
setTimeout(() => {
stunnedMessage.classList.remove('show');
setTimeout(() => {
document.body.removeChild(stunnedMessage);
}, 300);
}, 2000);
}, 50);
}
function drawAntibodies() {
game.antibodies.forEach(antibody => {
ctx.beginPath();
ctx.arc(antibody.x, antibody.y, antibody.radius, 0, Math.PI * 2);
ctx.fillStyle = `rgba(255, 0, 0, ${antibody.alpha})`;
ctx.fill();
});
}
function checkCollisions() {
game.spermCells.forEach(sperm => {
if (sperm.isDying) return;
const dx = sperm.x - game.egg.x;
const dy = sperm.y - game.egg.y;
const distance = Math.sqrt(dx * dx + dy * dy);
const angle = Math.atan2(dy, dx);
let adjustedAngle = angle < 0 ? angle + 2 * Math.PI : angle;
// Check collision with Corona Radiata
const coronaRadius = game.egg.radius * 1.25;
if (distance <= coronaRadius) {
const segment = game.coronaRadiata.find(seg => adjustedAngle >= seg.startAngle && adjustedAngle < seg.endAngle && seg.health > 0);
if (segment) {
segment.health = 0; // Segment disappears immediately
sperm.isDying = true;
sperm.deathProgress = 0;
sperm.diedFromWallCollision = true;
window.playSoundEffect('chomp', 'aud/se/sperm defense/chomp.mp3'); // Play chomp sound
return;
}
}
// Check collision with Zona Pellucida
const zonaRadius = game.egg.radius * 1.15;
if (distance <= zonaRadius) {
const segment = game.zonaPellucida.find(seg => adjustedAngle >= seg.startAngle && adjustedAngle < seg.endAngle && seg.health > 0);
if (segment) {
segment.health = 0; // Segment disappears immediately
sperm.isDying = true;
sperm.deathProgress = 0;
sperm.diedFromWallCollision = true;
window.playSoundEffect('chomp', 'aud/se/sperm defense/chomp.mp3'); // Play chomp sound
return;
}
}
// Check collision with Egg
if (distance <= game.egg.radius) {
game.gameOver = true;
game.win = false;
fertilizeEgg(sperm); // Pass the specific sperm to fertilizeEgg
return;
}
// Rest of the collision checks remain the same
for (const antibody of game.antibodies) {
const abDx = antibody.x - sperm.x;
const abDy = antibody.y - sperm.y;
const abDistance = Math.sqrt(abDx * abDx + abDy * abDy);
if (abDistance < antibody.radius) {
if (!sperm.damagedBy.has(antibody.id)) {
sperm.damagedBy.add(antibody.id);
if (sperm.type === 'POWERFUL' || sperm.type === 'MEGA') {
sperm.health--;
if (sperm.health <= 0) {
sperm.isDying = true;
sperm.deathProgress = 0;
}
} else {
sperm.isDying = true;
sperm.deathProgress = 0;
}
}
break;
}
}
});
}
function fertilizeEgg(fertilizingSperm) {
window.playSoundEffect('fertilize', 'aud/se/sperm defense/fertilize.mp3');
let progress = 0;
let fertilizationAnimationId;
const animationDuration = 7000; // 7 seconds
const startTime = Date.now();
const entryAngle = Math.atan2(game.egg.y - fertilizingSperm.y, game.egg.x - fertilizingSperm.x);
function animateFertilization() {
const currentTime = Date.now();
progress = (currentTime - startTime) / animationDuration;
ctx.clearRect(0, 0, canvas.width, canvas.height);
createGradientBackground();
// Draw egg
const eggExpansion = Math.sin(progress * Math.PI) * 0.1;
const eggRadius = game.egg.radius * (1 + eggExpansion);
// Egg color change
const r = Math.floor(255 - progress * 80);
const g = Math.floor(182 - progress * 57);
const b = Math.floor(193 + progress * 62);
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, eggRadius, 0, Math.PI * 2);
ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;
ctx.fill();
ctx.closePath();
// Animate sperm
ctx.save();
const spermProgress = Math.min(1, progress * 1.5); // Sperm enters faster than overall animation
const startX = fertilizingSperm.x;
const startY = fertilizingSperm.y;
const endX = game.egg.x;
const endY = game.egg.y;
const spermX = startX + (endX - startX) * spermProgress;
const spermY = startY + (endY - startY) * spermProgress;
ctx.translate(spermX, spermY);
ctx.rotate(entryAngle);
const spermType = SpermTypes[fertilizingSperm.type];
const headLength = canvas.width * 0.012 * spermType.headSize;
const headWidth = canvas.width * 0.006 * spermType.headSize;
const tailLength = canvas.width * 0.03;
// Draw sperm head (sinking into egg)
const sinkProgress = Math.min(1, spermProgress / 0.7);
ctx.save();
// Create a clipping region for the head
ctx.beginPath();
ctx.rect(-headLength / 2, -headWidth / 2, headLength * (1 - sinkProgress), headWidth);
ctx.clip();
// Draw the head
ctx.beginPath();
ctx.ellipse(0, 0, headLength / 2, headWidth / 2, 0, 0, Math.PI * 2);
ctx.fillStyle = isSimulation ? spermType.simulationColor : spermType.color;
ctx.fill();
ctx.restore();
// Calculate tail start position (back of the head)
// Further slow down the tail's movement towards the center
const tailStartX = -headLength / 2 * (1 - Math.pow(sinkProgress, 3));
// Draw wiggling tail (always visible)
ctx.beginPath();
ctx.moveTo(tailStartX, 0); // Start from the back of the head
for (let i = 0; i < 30; i++) {
const x = tailStartX - i * (tailLength / 30);
const wiggleIntensity = Math.sin(progress * Math.PI * 20) * headWidth * 2;
// Reduce wiggle speed after fertilization
const wiggleSpeed = progress > 0.7 ? 5 : 10;
const y = Math.sin(i * 0.3 + fertilizingSperm.tailAngle + progress * wiggleSpeed) * wiggleIntensity;
ctx.lineTo(x, y);
}
ctx.strokeStyle = isSimulation ? spermType.simulationColor : spermType.color;
ctx.lineWidth = headWidth * 0.25 * spermType.tailThickness;
ctx.stroke();
ctx.restore();
// DNA fusion color pulse
if (progress > 0.7) {
const pulseProgress = (progress - 0.7) / 0.3;
const pulseRadius = eggRadius * pulseProgress;
const gradient = ctx.createRadialGradient(
game.egg.x, game.egg.y, 0,
game.egg.x, game.egg.y, pulseRadius
);
gradient.addColorStop(0, 'rgba(255, 255, 255, 0.8)');
gradient.addColorStop(0.7, 'rgba(255, 255, 255, 0.3)');
gradient.addColorStop(1, 'rgba(255, 255, 255, 0)');
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, pulseRadius, 0, Math.PI * 2);
ctx.fillStyle = gradient;
ctx.fill();
}
// Pulsating egg effect
const pulseFactor = 1 + Math.sin(progress * Math.PI * 10) * 0.05;
ctx.save();
ctx.translate(game.egg.x, game.egg.y);
ctx.scale(pulseFactor, pulseFactor);
ctx.beginPath();
ctx.arc(0, 0, eggRadius, 0, Math.PI * 2);
ctx.fillStyle = `rgba(255, 182, 193, ${0.3 + Math.sin(progress * Math.PI * 10) * 0.2})`;
ctx.fill();
ctx.restore();
if (progress >= 1) {
cancelAnimationFrame(fertilizationAnimationId);
drawFertilizedEgg(spermX, spermY, entryAngle, tailLength, headWidth, spermType);
} else {
fertilizationAnimationId = requestAnimationFrame(animateFertilization);
}
}
fertilizationAnimationId = requestAnimationFrame(animateFertilization);
}
function drawFertilizedEgg(spermX, spermY, entryAngle, tailLength, headWidth, spermType) {
let textProgress = 0;
let textAnimationId;
const textAnimationDuration = 2000; // 2 seconds
const textStartTime = Date.now();
let soundPlayed = false;
function animateFertilizedText() {
const currentTime = Date.now();
textProgress = (currentTime - textStartTime) / textAnimationDuration;
ctx.clearRect(0, 0, canvas.width, canvas.height);
createGradientBackground();
// Draw fertilized egg
ctx.beginPath();
ctx.arc(game.egg.x, game.egg.y, game.egg.radius * 1.1, 0, Math.PI * 2);
ctx.fillStyle = '#FF69B4'; // Hot pink color for fertilized egg
ctx.fill();
ctx.closePath();
// Draw sperm tail sticking out
ctx.save();
ctx.translate(spermX, spermY);
ctx.rotate(entryAngle);
ctx.beginPath();
ctx.moveTo(0, 0); // Start from where the head disappeared
for (let i = 0; i < 30; i++) {
const x = -i * (tailLength / 30);
const y = Math.sin(i * 0.3) * headWidth; // Reduced wiggling
ctx.lineTo(x, y);
}
ctx.strokeStyle = isSimulation ? spermType.simulationColor : spermType.color;
ctx.lineWidth = headWidth * 0.25 * spermType.tailThickness;
ctx.stroke();
ctx.restore();
// Animate "FERTILIZED" text
ctx.save();
ctx.translate(canvas.width / 2, canvas.height / 2);
const scaleFactor = Math.min(1, textProgress * 2); // Quick zoom in
const wobbleFactor = Math.sin(textProgress * Math.PI * 10) * 0.1; // Wobble effect
ctx.scale(scaleFactor * (1 + wobbleFactor), scaleFactor * (1 - wobbleFactor));
ctx.font = `bold ${canvas.width * 0.1}px Arial`;
ctx.fillStyle = `rgb(${255 * (1 - textProgress)}, 0, 0)`; // Fade from red to black
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
// Add text shadow for more impact
ctx.shadowColor = 'rgba(255, 0, 0, 0.5)';
ctx.shadowBlur = 10 * (1 - textProgress);
ctx.shadowOffsetX = 5 * (1 - textProgress);
ctx.shadowOffsetY = 5 * (1 - textProgress);
ctx.fillText('FERTILIZED', 0, 0);
ctx.restore();
// Play the sound effect once when the text starts appearing
if (!soundPlayed && textProgress > 0) {
window.playSoundEffect('fertilized notification', 'aud/se/sperm defense/fertilized notification.mp3');
soundPlayed = true;
}
if (textProgress < 1) {
textAnimationId = requestAnimationFrame(animateFertilizedText);
} else {
// Animation complete, game truly over
game.gameOver = true;
}
}
textAnimationId = requestAnimationFrame(animateFertilizedText);
}
function spawnSperm() {
console.log("spawnSperm called. Current spurt:", game.currentSpurt, "Is spurt active:", game.isSpurtActive);
if (game.currentSpurt >= TOTAL_SPURTS) {
console.log("All spurts completed");
return;
}
if (game.isSpurtActive) {
console.log("Spurt already active, waiting for next opportunity");
return;
}
game.isSpurtActive = true;
const spurtSize = game.spurtSizes[game.currentSpurt];
const spawnInterval = Math.max(50, SPURT_DURATION / spurtSize);
console.log(`Starting Spurt ${game.currentSpurt + 1} with ${spurtSize} sperm`);
showSpurtAnnouncement(game.currentSpurt + 1);
let spawnedCount = 0;
const spawnIntervalId = setInterval(() => {
if (spawnedCount < spurtSize) {
const newSperm = createSpermCell();
game.spermCells.push(newSperm);
spawnedCount++;
console.log(`Spawned sperm ${spawnedCount}/${spurtSize}. Total sperm: ${game.spermCells.length}`);
} else {
clearInterval(spawnIntervalId);
console.log(`Finished spawning sperm for Spurt ${game.currentSpurt + 1}`);
game.isSpurtActive = false;
game.lastSpurtEndTime = Date.now();
game.currentSpurt++; // Increment here after the spurt is complete
updateScoreDisplay();
console.log(`Spurt ${game.currentSpurt} ended. Total sperm: ${game.spermCells.length}`);
if (game.currentSpurt < TOTAL_SPURTS) {
setTimeout(checkForNextSpurt, BREATHING_PERIOD);
} else {
console.log("All spurts completed. Game will end when all sperm are destroyed.");
}
}
}, spawnInterval);
}
function checkForNextSpurt() {
console.log("Checking for next spurt. Current spurt:", game.currentSpurt, "Is spurt active:", game.isSpurtActive);
if (!game.isSpurtActive && game.currentSpurt < TOTAL_SPURTS) {
if (game.spermCells.length === 0) {
console.log("Conditions met for next spurt. Spawning...");
spawnSperm();
} else {
console.log("Waiting for all sperm to be destroyed before next spurt");
setTimeout(checkForNextSpurt, 1000); // Check again in 1 second
}
} else {
console.log("All spurts completed or spurt active. Waiting for remaining sperm to be destroyed.");
checkGameEnd();
}
}
function checkGameEnd() {
if (game.currentSpurt >= TOTAL_SPURTS && game.spermCells.length === 0) {
console.log("All sperm destroyed. Ending game.");
game.gameOver = true;
game.win = true;
} else {
setTimeout(checkGameEnd, 1000); // Keep checking until all sperm are destroyed
}
}
function gameLoop(currentTime) {
if (!game.gameOver) {
game.deltaTime = currentTime - game.lastUpdateTime;
game.lastUpdateTime = currentTime;
ctx.clearRect(0, 0, canvas.width, canvas.height);
if (video.readyState === 4) {
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
}
// Draw gradient after video
createGradientBackground();
if (game.isStunned && Date.now() - game.stunnedStartTime > game.stunnedDuration) {
game.isStunned = false;
}
moveSpermCells();
updateMissiles();
updateAntibodies();
checkCollisions();
checkPowerUpCollision();
updatePowerUpStatus();
cleanPowerUps();
removeCollectedPowerUps();
// Rendering
ctx.clearRect(0, 0, canvas.width, canvas.height);
if (video.readyState === 4) {
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
}
createGradientBackground();
drawEgg();
drawProtectiveLayers();
game.spermCells.forEach(drawSpermCell);
drawMissiles();
drawAntibodies();
drawPowerUps();
drawPowerUpEffect();
game.animationFrameId = requestAnimationFrame(gameLoop);
} else {
endGame();
if (game.win) {
displayGameOver();
}
}
}
let gameInitialized = false;
window.startSpermGame = function() {
if (gameInitialized) {
console.log("Game already initialized. Ignoring repeated start.");
return;
}
console.log("Starting game");
gameInitialized = true;
document.getElementById('startMenu').style.display = 'none';
initGame();
addEventListeners();
requestAnimationFrame(gameLoop);
console.log("Game loop started, initiating first spurt");
checkForNextSpurt();
};
function showSpurtAnnouncement(spurtNumber) {
const announcement = document.createElement('div');
announcement.textContent = `Spurt ${spurtNumber}`;
announcement.className = 'spurt-announcement';
document.body.appendChild(announcement);
// Play a random spurt sound effect
const randomSpurtSound = Math.floor(Math.random() * 9) + 1; // Random number between 1 and 9
window.playSoundEffect(`spurt ${randomSpurtSound}`, `aud/se/sperm defense/splurt ${randomSpurtSound}.mp3`);
setTimeout(() => {
announcement.classList.add('splat');
setTimeout(() => {
announcement.classList.add('drip');
spurtMessage(spurtNumber);
setTimeout(() => {
document.body.removeChild(announcement);
updateScoreDisplay();
}, 2000);
}, 500);
}, 50);
}
function updateScoreDisplay() {
const scoreDisplay = document.getElementById('scoreDisplay');
if (scoreDisplay) {
scoreDisplay.textContent = ``;
}
}
function createPowerUp(x, y, type) {
if (!PowerUpTypes[type]) {
console.error(`Invalid power-up type: ${type}`);
return null;
}
return {
x,
y,
type,
radius: canvas.width * 0.02,
collected: false
};
}
function cleanPowerUps() {
if (game.powerUps && Array.isArray(game.powerUps)) {
game.powerUps = game.powerUps.filter(powerUp =>
powerUp && typeof powerUp === 'object' && 'collected' in powerUp
);
}
}
function spawnPowerUp(x, y, spermType) {
const rand = Math.random();
let cumulativeProbability = 0;
for (const [powerUpType, probability] of Object.entries(PowerUpProbabilities[spermType])) {
cumulativeProbability += probability;
if (rand < cumulativeProbability) {
const powerUp = createPowerUp(x, y, powerUpType);
if (powerUp) {
game.powerUps.push(powerUp);
}
break;
}
}
}
function drawPowerUp() {
if (game.powerUp) {
ctx.beginPath();
ctx.arc(game.powerUp.x, game.powerUp.y, game.powerUp.radius, 0, Math.PI * 2);
ctx.fillStyle = '#FFD700';
ctx.fill();
ctx.strokeStyle = '#FFA500';
ctx.lineWidth = 2;
ctx.stroke();
}
}
function checkPowerUpCollision() {
if (game.powerUps && Array.isArray(game.powerUps)) {
game.powerUps.forEach(powerUp => {
if (!powerUp.collected) {
for (const missile of game.missiles) {
const dx = powerUp.x - missile.x;
const dy = powerUp.y - missile.y;
const distance = Math.sqrt(dx * dx + dy * dy);
if (distance < powerUp.radius) {
activatePowerUp(powerUp);
powerUp.collected = true;
console.log(`Power-up collected: ${powerUp.type}`);
break;
}
}
}
});
}
}
function activatePowerUp(powerUp) {
const powerUpInfo = PowerUpTypes[powerUp.type];
// Play the power-up sound effect
window.playSoundEffect('powerup', 'aud/se/sperm defense/powerup.mp3');
switch (powerUp.type) {
case 'ANTIBODY_RUSH':
game.powerUpActive = true;
game.powerUpStartTime = Date.now();
game.powerUpDuration = powerUpInfo.duration;
break;
case 'BIG_BOOM':
game.bigBoomActive = true;
game.powerUpActive = true;
game.powerUpStartTime = Date.now();
game.powerUpDuration = powerUpInfo.duration;
// Trigger no-shoot zone flashing
game.isNoShootZoneFlashing = true;
game.noShootZoneFlashStartTime = Date.now();
break;
case 'REPAIR':
repairProtectiveLayers(5);
break;
case 'BOMB':
destroyAllSperm();
flashScreen();
break;
case 'UPGRADE':
game.blastRadius *= 1.1;
// Trigger no-shoot zone flashing for upgrade as well
game.isNoShootZoneFlashing = true;
game.noShootZoneFlashStartTime = Date.now();
break;
}
showPowerUpMessage(powerUpInfo.message);
console.log(`Power-up activated: ${powerUp.type}`);
}
function updatePowerUpStatus() {
if (game.powerUpActive && Date.now() - game.powerUpStartTime > game.powerUpDuration) {
game.powerUpActive = false;
if (game.bigBoomActive) {
game.bigBoomActive = false;
// Trigger no-shoot zone flashing when Big Boom ends
game.isNoShootZoneFlashing = true;
game.noShootZoneFlashStartTime = Date.now();
}
console.log("Power-up effect ended");
}
}
function flashScreen() {
const flash = document.createElement('div');
flash.style.position = 'fixed';
flash.style.top = '0';
flash.style.left = '0';
flash.style.width = '100%';
flash.style.height = '100%';
flash.style.backgroundColor = 'white';
flash.style.opacity = '0';
flash.style.transition = 'opacity 0.1s ease-in-out';
flash.style.pointerEvents = 'none';
flash.style.zIndex = '9999';
document.body.appendChild(flash);
setTimeout(() => {
flash.style.opacity = '1';
setTimeout(() => {
flash.style.opacity = '0';
setTimeout(() => {
document.body.removeChild(flash);
}, 100);
}, 100);
}, 0);
}
function drawPowerUpEffect() {
if (game.powerUpActive) {
ctx.save();
ctx.fillStyle = 'rgba(255, 215, 0, 0.2)';
ctx.fillRect(0, 0, canvas.width, canvas.height);
for (let i = 0; i < 50; i++) {
ctx.beginPath();
ctx.arc(
Math.random() * canvas.width,
Math.random() * canvas.height,
Math.random() * 3,
0,
Math.PI * 2
);
ctx.fillStyle = 'rgba(255, 255, 255, 0.5)';
ctx.fill();
}
ctx.restore();
}
}
function displayGameOver() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
createGradientBackground();
ctx.font = 'bold 48px Helvetica, Arial, sans-serif';
ctx.fillStyle = '#FFFFFF';
ctx.textAlign = 'center';
ctx.fillText('Not pregnant!', canvas.width / 2, canvas.height / 2);
ctx.font = 'bold 24px Helvetica, Arial, sans-serif';
ctx.fillText(``, canvas.width / 2, canvas.height / 2 + 50);
}
function handleInput(x, y) {
if (game.gameOver || game.isStunned) return;
const dx = x - game.egg.x;
const dy = y - game.egg.y;
const distance = Math.sqrt(dx * dx + dy * dy);
if (game.canShoot || game.powerUpActive) {
createMissile(x, y);
if (!game.powerUpActive) {
game.lastShotTime = Date.now();
game.canShoot = false;
setTimeout(() => { game.canShoot = true; }, 500);
}
}
}
function resizeCanvas() {
canvas.width = canvas.clientWidth;
canvas.height = canvas.clientHeight;
// Update blast radius based on the new canvas width
game.blastRadius = canvas.width * BLAST_RADIUS_FACTOR;
// Update other sizes that depend on canvas size
if (game.egg) {
game.egg.x = canvas.width / 2;
game.egg.y = canvas.height / 2;
game.egg.radius = canvas.width * 0.05;
game.egg.innerRadius = canvas.width * 0.025;
}
}
function addEventListeners() {
canvas.addEventListener('click', handleClick);
canvas.addEventListener('touchstart', handleTouch);
window.addEventListener('resize', handleResize);
}
function removeEventListeners() {
canvas.removeEventListener('click', handleClick);
canvas.removeEventListener('touchstart', handleTouch);
window.removeEventListener('resize', handleResize);
}
function removeCollectedPowerUps() {
if (game.powerUps && Array.isArray(game.powerUps)) {
game.powerUps = game.powerUps.filter(powerUp => !powerUp.collected);
}
}
function handleClick(event) {
const rect = canvas.getBoundingClientRect();
const x = event.clientX - rect.left;
const y = event.clientY - rect.top;
handleInput(x, y);
}
function handleTouch(event) {
event.preventDefault();
const rect = canvas.getBoundingClientRect();
const x = event.touches[0].clientX - rect.left;
const y = event.touches[0].clientY - rect.top;
handleInput(x, y);
}
function handleResize() {
resizeCanvas();
// Recalculate blast radius
game.blastRadius = canvas.width * BLAST_RADIUS_FACTOR;
if (game.egg) {
game.egg.x = canvas.width / 2;
game.egg.y = canvas.height / 2;
game.egg.radius = canvas.width * 0.05;
game.egg.innerRadius = canvas.width * 0.025;
}
}
function endGame() {
cancelAnimationFrame(game.animationFrameId);
removeEventListeners();
Harlowe.variable("$sperm_minigame_result", game.win ? 'win' : 'fertilized');
}
function flashScreen() {
const flash = document.createElement('div');
flash.style.position = 'fixed';
flash.style.top = '0';
flash.style.left = '0';
flash.style.width = '100%';
flash.style.height = '100%';
flash.style.backgroundColor = 'white';
flash.style.opacity = '0';
flash.style.transition = 'opacity 0.1s ease-in-out';
flash.style.pointerEvents = 'none';
flash.style.zIndex = '9999';
document.body.appendChild(flash);
setTimeout(() => {
flash.style.opacity = '1';
setTimeout(() => {
flash.style.opacity = '0';
setTimeout(() => {
document.body.removeChild(flash);
}, 100);
}, 100);
}, 0);
}
function checkGameContext() {
const gameContainer = document.getElementById('gameContainer');
// Check if we're still on the game page
if (!gameContainer) {
// We're no longer on the game page, clean up and stop the game
cleanupGame();
return;
}
}
video.addEventListener('canplay', () => {
video.play();
});
window.startSpermGame = function() {
window.playSoundEffect('sperm begin', 'aud/se/sperm defense/begin.mp3');
if (gameInitialized) {
console.log("Game already initialized. Ignoring repeated start.");
return;
}
console.log("Starting game");
gameInitialized = true;
document.getElementById('startMenu').style.display = 'none';
initGame();
addEventListeners();
gameLoop();
console.log("Game loop started, initiating first spurt");
checkForNextSpurt();
};
})();
</script>}{(unless:(datanames:$blackjack_params) contains "color")[(set:$color to "normal")](else:)[(set:$color to $blackjack_params's color)](set:$score to 0)(set:$score_required to ((floor:$blackjack_params's "skill check difficulty" / 5) + 10))(if:$blackjack_params's "skill check" is "milking")[(set:$score_required to $milk)(if:$items contains "breast pump")[(set:$score_required to (ceil:$score_required / 2))]](set:$towergame to "playing")(set:$count to 0)(set:$style to "tower blocks")(set:$moves to 0)<div id="towerheader" class="game_header">(if:(datanames:$blackjack_params) contains "backdrop type")[(print:$blackjack_params's "backdrop")](else:)[(print:"<video disableRemotePlayback src='img/" + $blackjack_params's "backdrop" + "' autoplay='' loop='' " + $muted + " playsinline/>")]<div id="towerscreen" class="game_full_screen">[]<game_screen|</div></div><div class='options'>[]<score|
[]<demo_ind|</div>
(replace:?right_options)[{<span class='shadow'><div id="instructions">(if:$mobile_mode is "Real Time Minigames: Disabled")[(Real Time Minigames are Disabled.)](else:)[Stack the blocks on top of each other!(nl:2)Click, tap or press Space when a block is above the stack.]</div><div id="results"></div><div id='begintowergame'>|enter>[(unless:$mobile_mode is "Real Time Minigames: Disabled")[(display:"tower blocks setup")(link:"Play minigame")[
(display:"tower blocks begin")
]]]</div>
<br/>
(display:"blackjack skill check link")
(if:$minigame_skip is "Skippable Minigames: On")[
(link:"Skip (win)")[
(set:$next to $blackjack_params's "result passage")
(set:$result to "pass")
(display:"change screen")
]
(link:"Skip (lose)")[
(set:$next to $blackjack_params's "result passage")
(set:$result to "fail")
(display:"change screen")
]
]
}]}(live:0.5s)[(replace:?game_screen)[<div id="towergame"></div>](replace:?score)[<div id="win-bar">
<div class='bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'><span class='shadow'><div id="score">(text-style:"fade-in-out")[Target: $score_required blocks.]</div></span></div>
</div>]{
(display:"tower blocks javascript")
}(stop:)]{<script>
window.focus(); // Capture keys right away (by default focus is on editor)
let camera, scene, renderer; // ThreeJS globals
let world; // CannonJs world
let lastTime; // Last timestamp of animation
let stack; // Parts that stay solid on top of each other
let overhangs; // Overhanging parts that fall down
const boxHeight = 1; // Height of each layer
const originalBoxSize = 3; // Original width and height of a box
let autopilot;
let gameEnded;
let robotPrecision; // Determines how precise the game is on autopilot
const scoreElement = document.getElementById("score");
const instructionsElement = document.getElementById("instructions");
const resultsElement = document.getElementById("results");
init();
// Determines how precise the game is on autopilot
function setRobotPrecision() {
robotPrecision = Math.random() * 1 - 0.5;
}
function init() {
autopilot = true;
GE.updateStats($score_required,0);
gameEnded = false;
lastTime = 0;
stack = [];
overhangs = [];
setRobotPrecision();
// Initialize CannonJS
world = new CANNON.World();
world.gravity.set(0, -10, 0); // Gravity pulls things down
world.broadphase = new CANNON.NaiveBroadphase();
world.solver.iterations = 40;
// Initialize ThreeJs
const aspect = document.getElementById("towerheader").clientWidth / document.getElementById("towerheader").clientHeight;
const width = 10;
const height = width / aspect;
camera = new THREE.OrthographicCamera(
width / -2, // left
width / 2, // right
height / 2, // top
height / -2, // bottom
0, // near plane
100 // far plane
);
camera.position.set(4, 4, 4);
camera.lookAt(0, 0, 0);
scene = new THREE.Scene();
// Foundation
addLayer(0, 0, originalBoxSize, originalBoxSize);
// First layer
addLayer(-10, 0, originalBoxSize, originalBoxSize, "x");
// Set up lights
const ambientLight = new THREE.AmbientLight(0xffffff, 0.6);
scene.add(ambientLight);
const dirLight = new THREE.DirectionalLight(0xffffff, 0.6);
dirLight.position.set(10, 20, 0);
scene.add(dirLight);
// Set up renderer
renderer = new THREE.WebGLRenderer({ alpha:true });
renderer.setSize(document.getElementById("towerheader").clientWidth, document.getElementById("towerheader").clientHeight);
renderer.setClearColor( 0x000000, 0 );
renderer.setAnimationLoop(animation);
document.getElementById("towerscreen").appendChild(renderer.domElement);
}
function startGame() {
autopilot = false;
gameEnded = false;
lastTime = 0;
stack = [];
overhangs = [];
if (instructionsElement) instructionsElement.style.display = "none";
if (resultsElement) resultsElement.style.display = "none";
if (scoreElement) scoreElement.innerText = 0;
if (world) {
// Remove every object from world
while (world.bodies.length > 0) {
world.remove(world.bodies[0]);
}
}
if (scene) {
// Remove every Mesh from the scene
while (scene.children.find((c) => c.type == "Mesh")) {
const mesh = scene.children.find((c) => c.type == "Mesh");
scene.remove(mesh);
}
// Foundation
addLayer(0, 0, originalBoxSize, originalBoxSize);
// First layer
addLayer(-10, 0, originalBoxSize, originalBoxSize, "x");
}
if (camera) {
// Reset camera positions
camera.position.set(4, 4, 4);
camera.lookAt(0, 0, 0);
}
}
function addLayer(x, z, width, depth, direction) {
const y = boxHeight * stack.length; // Add the new box one layer higher
const layer = generateBox(x, y, z, width, depth, false);
layer.direction = direction;
stack.push(layer);
}
function addOverhang(x, z, width, depth) {
const y = boxHeight * (stack.length - 1); // Add the new box one the same layer
const overhang = generateBox(x, y, z, width, depth, true);
overhangs.push(overhang);
}
function generateBox(x, y, z, width, depth, falls) {
// ThreeJS
const geometry = new THREE.BoxGeometry(width, boxHeight, depth);
const color = new THREE.Color(`hsl(${30 + stack.length * 4}, 100%, 50%)`);
const material = new THREE.MeshPhongMaterial({ color});
const mesh = new THREE.Mesh(geometry, material);
mesh.position.set(x, y, z);
scene.add(mesh);
// CannonJS
const shape = new CANNON.Box(
new CANNON.Vec3(width / 2, boxHeight / 2, depth / 2)
);
let mass = falls ? 5 : 0; // If it shouldn't fall then setting the mass to zero will keep it stationary
mass *= width / originalBoxSize; // Reduce mass proportionately by size
mass *= depth / originalBoxSize; // Reduce mass proportionately by size
const body = new CANNON.Body({ mass, shape });
body.position.set(x, y, z);
world.addBody(body);
return {
threejs: mesh,
cannonjs: body,
width,
depth
};
}
function cutBox(topLayer, overlap, size, delta) {
const direction = topLayer.direction;
const newWidth = direction == "x" ? overlap : topLayer.width;
const newDepth = direction == "z" ? overlap : topLayer.depth;
// Update metadata
topLayer.width = newWidth;
topLayer.depth = newDepth;
// Update ThreeJS model
topLayer.threejs.scale[direction] = overlap / size;
topLayer.threejs.position[direction] -= delta / 2;
// Update CannonJS model
topLayer.cannonjs.position[direction] -= delta / 2;
// Replace shape to a smaller one (in CannonJS you can't simply just scale a shape)
const shape = new CANNON.Box(
new CANNON.Vec3(newWidth / 2, boxHeight / 2, newDepth / 2)
);
topLayer.cannonjs.shapes = [];
topLayer.cannonjs.addShape(shape);
}
window.GE = window.GE || {};
window.GE.mouseDownHandler = function(event) {
eventHandler(event);
};
window.GE.touchStartHandler = function(event) {
eventHandler(event);
};
window.GE.keyDownHandler = function(event) {
eventHandler(event);
};
window.GE.beginGameClickHandler = function(event) {
if(event.target) {
event.preventDefault();
startGame();
return;
}
};
window.addEventListener("mousedown", window.GE.mouseDownHandler);
window.addEventListener("touchstart", window.GE.touchStartHandler);
window.addEventListener("keydown", window.GE.keyDownHandler);
document.getElementById("begintowergame").addEventListener("click", window.GE.beginGameClickHandler);
function eventHandler() {
if (!autopilot) splitBlockAndAddNextOneIfOverlaps();
}
function splitBlockAndAddNextOneIfOverlaps() {
if (gameEnded) return;
const topLayer = stack[stack.length - 1];
const previousLayer = stack[stack.length - 2];
const direction = topLayer.direction;
const size = direction == "x" ? topLayer.width : topLayer.depth;
const delta =
topLayer.threejs.position[direction] -
previousLayer.threejs.position[direction];
const overhangSize = Math.abs(delta);
const overlap = size - overhangSize;
if (overlap > 0) {
cutBox(topLayer, overlap, size, delta);
// Overhang
const overhangShift = (overlap / 2 + overhangSize / 2) * Math.sign(delta);
const overhangX =
direction == "x"
? topLayer.threejs.position.x + overhangShift
: topLayer.threejs.position.x;
const overhangZ =
direction == "z"
? topLayer.threejs.position.z + overhangShift
: topLayer.threejs.position.z;
const overhangWidth = direction == "x" ? overhangSize : topLayer.width;
const overhangDepth = direction == "z" ? overhangSize : topLayer.depth;
addOverhang(overhangX, overhangZ, overhangWidth, overhangDepth);
// Next layer
const nextX = direction == "x" ? topLayer.threejs.position.x : -10;
const nextZ = direction == "z" ? topLayer.threejs.position.z : -10;
const newWidth = topLayer.width; // New layer has the same size as the cut top layer
const newDepth = topLayer.depth; // New layer has the same size as the cut top layer
const nextDirection = direction == "x" ? "z" : "x";
if (scoreElement && !autopilot) scoreElement.innerText = stack.length - 1;
if (!autopilot) $score = stack.length-1;
if (!autopilot) GE.updateStats($score_required,$score);
if (!autopilot && $score >= $score_required){
$score = $score_required;
gameEnded = true;
if (!autopilot) {
$towergame = "won";
window.removeEventListener("mousedown", eventHandler);
window.removeEventListener("touchstart", eventHandler);
window.removeEventListener("keydown", eventHandler);
}
} else {
addLayer(nextX, nextZ, newWidth, newDepth, nextDirection);
}
} else {
missedTheSpot();
}
}
function missedTheSpot() {
const topLayer = stack[stack.length - 1];
// Turn to top layer into an overhang and let it fall down
addOverhang(
topLayer.threejs.position.x,
topLayer.threejs.position.z,
topLayer.width,
topLayer.depth
);
world.remove(topLayer.cannonjs);
scene.remove(topLayer.threejs);
gameEnded = true;
if (!autopilot) {
$towergame = "lost";
window.removeEventListener("mousedown", eventHandler);
window.removeEventListener("touchstart", eventHandler);
window.removeEventListener("keydown", eventHandler);
}
if (resultsElement && !autopilot) resultsElement.style.display = "flex";
}
function animation(time) {
if (lastTime) {
const timePassed = time - lastTime;
const speed = 0.008;
const topLayer = stack[stack.length - 1];
const previousLayer = stack[stack.length - 2];
// The top level box should move if the game has not ended AND
// it's either NOT in autopilot or it is in autopilot and the box did not yet reach the robot position
const boxShouldMove =
!gameEnded &&
(!autopilot ||
(autopilot &&
topLayer.threejs.position[topLayer.direction] <
previousLayer.threejs.position[topLayer.direction] +
robotPrecision));
if (boxShouldMove) {
// Keep the position visible on UI and the position in the model in sync
topLayer.threejs.position[topLayer.direction] += speed * timePassed;
topLayer.cannonjs.position[topLayer.direction] += speed * timePassed;
// If the box went beyond the stack then show up the fail screen
if (topLayer.threejs.position[topLayer.direction] > 10) {
missedTheSpot();
}
} else {
// If it shouldn't move then is it because the autopilot reached the correct position?
// Because if so then next level is coming
if (autopilot) {
splitBlockAndAddNextOneIfOverlaps();
setRobotPrecision();
}
}
// 4 is the initial camera height
if (camera.position.y < boxHeight * (stack.length - 2) + 4) {
camera.position.y += speed * timePassed;
}
updatePhysics(timePassed);
renderer.render(scene, camera);
}
lastTime = time;
}
function updatePhysics(timePassed) {
world.step(timePassed / 1000); // Step the physics world
// Copy coordinates from Cannon.js to Three.js
overhangs.forEach((element) => {
element.threejs.position.copy(element.cannonjs.position);
element.threejs.quaternion.copy(element.cannonjs.quaternion);
});
}
</script>}{
(replace:?right_options)[](replace:?demo_ind)[]
(live:0.5s)[(unless:$towergame is "playing")[(replace:?right_options)[(display:"tower blocks result")](stop:)]]
}{
(set:$result to "pass")
(replace:?score)[($highlight:[(css:"font-size:4vmin")[<span class='shadow'>You (print:$blackjack_params's "good action").</span>]])]
(replace:?right_options)[(display:"blackjack gain xp")(link:"Next")[{
<script>
window.removeEventListener("mousedown", window.GE.mouseDownHandler);
window.removeEventListener("touchstart", window.GE.touchStartHandler);
window.removeEventListener("keydown", window.GE.keyDownHandler);
document.getElementById("begintowergame").removeEventListener("click", window.GE.beginGameClickHandler);
</script>
}(set:$next to $blackjack_params's "result passage")(set:$result to "pass")(display:"change screen")(replace:?right_options)[]]]
}{
(set:$result to "fail")
(replace:?score)[(css:"font-size:4vmin")[<span class='shadow'>You (print:$blackjack_params's "bad action"). ($score/$score_required)</span>]]
(replace:?right_options)[(display:"blackjack gain xp")(link:"Next")[{
<script>
window.removeEventListener("mousedown", window.GE.mouseDownHandler);
window.removeEventListener("touchstart", window.GE.touchStartHandler);
window.removeEventListener("keydown", window.GE.keyDownHandler);
document.getElementById("begintowergame").removeEventListener("click", window.GE.beginGameClickHandler);
</script>
}(set:$next to $blackjack_params's "result passage")(set:$result to "fail")(display:"change screen")(replace:?right_options)[]]
(if:$action_points > 0)[(link:"Use Action Point")[(set:$action_params to (dm:"cost",1,"result",$blackjack_params's "result passage","type","minigame"))(display:"use action point")]]]
}{(live:0.5s)[(replace:?game_big_screen)[](if:$towergame is "lost")[(display:"tower blocks lose")](if:$towergame is "won")[(display:"tower blocks win") ](stop:)]}{
<div class="game_header">
(print:$word_game's "backdrop")
<div class="game_header_text">[<span class='shadow'>(twirl:"Form correct sentences before the time runs out.","Un-scramble the sentences before the time runs out!")</span>]<challenge_text|</div>
</div>
(replace:?right_options)[(link:"Begin")[(replace:?right_options)[](replace:?screen)[(display: "word game begin")]](display:"word game skill check")
(if:$action_points > 0)[(link:"Use Action Point")[(set:$action_params to (dm:"cost",1,"result",$word_game's "victory passage","type","minigame"))(display:"use action point")]]
(if:$minigame_skip is "Skippable Minigames: On")[
(link:"Skip (win)")[(set:$result to "pass")(replace:?right_options)[](set:$next to $word_game's "victory passage")(display:"change screen")]
(link:"Skip (lose)")[(set:$result to "fail")(replace:?right_options)[](set:$next to $word_game's "failure passage")(display:"change screen")]]]
}{
(set:$word_time_left to ($word_time_left - 1))
(if:$word_time_left is 0)[(display:"word minigame check fail")](else-if:$word_time_left < 0)[(replace:?timer)[]](else:)[
(replace:?timer)[<span class='shadow'>($highlight:[(css:"font-size:4em")[$word_time_left]])</span>]]
}{(if:(subarray:$persuasion_correct,1,$index) is $persuasion_guess)[(if:$index is $persuasion_correct's length)[(display:"word minigame check pass")(stop:)]](else:)[(display:"word minigame check fail")(stop:)(stop:)]}{
(stop:)(set:$persuade to "true")
(replace:?challenge_text)[(if:$word_game's "type" is "pick up")[(set:$text to "good")(display:$word_game's "win passage")](else:)[(for: each _item, ...$persuasion_correct)[*_item*(print:" ")]]](replace:?options)[(display:"word minigame score")]
}{
(unless:$persuade is "true")[(replace:?challenge_text)[](replace:?options)[(display:"word minigame fail")]](set:$persuade to "false")
}{
($play:"sound","quicktime correct 1 B")
(set:$word_game's "points" to (min:$word_game's "points to win", ($word_game's "points" + $win_amount)))
(replace:?score_bar)[(updateprogress: $word_game's "points to win", (min: $word_game's "points", $word_game's "points to win"))]
(if:$word_game's "points" >= $word_game's "points to win")[(replace:?right_options)[(replace:?right_options)[(link:"You win!")[(display:"word minigame win")]](set:$result to "pass")]](else:)[($play:"sound","quicktime correct 1 A")(display:"word minigame next")(set:$word_time_left to $word_time_left + (max:$time_limit,($persuasion_correct's length)*2))]
(replace:?challenge_text)[<mark>(set:$text to "good")(display:$word_game's "win passage")</mark>(if:$word_game's "points" >= $word_game's "points to win")[(replace:?options)[(set:$gain_base to 3)(display:"charm gain xp")]]]
(set:$win_amount to ($win_amount + 1))
}{(replace:?timer)[]($play:"sound","quicktime incorrect")
(set:$word_game's points to (max:$word_game's "points" - $lose_amount,0))
(replace:?score_bar)[(updateprogress: $word_game's "points to win", (min:$word_game's "points",$word_game's "points to win"))](replace:?challenge_text)[(set:$text to "bad")(display:$word_game's "fail passage")]
(live:0.5s)[(if:$word_game's "points" < 1)[(unless:(win:))[(set:$result to "fail")]](else:)[(display:"word minigame next")](stop:)]
(set:$lose_amount to ($lose_amount + 1))
}{
(if:((datanames:$word_game) contains "word association") and (twist:1,2) is 1)[(display:"word minigame association")](else:)[
(set:$persuasion_guess to (a:))
(set:$persuasion_guess to (a:))
(set:$persuasion_correct to (words:$sentences's 1st))
(if:$sentences's length > 1)[(set:$sentences to (subarray:$sentences, 2, $sentences's length))(if:$word_game's "type" is "pick up")[(set:$word_game's "first lines" to (subarray:$word_game's "first lines", 2, $word_game's "first lines"'s length))]](else-if:$sentences's length is 1)[(set:$sentences to (a:))]
(set:$persuasion_bits to (twisted:...$persuasion_correct))
(display:"word minigame arousal mod")
(display:"word minigame shame mod")
(set:$index to 0)
(replace:?result)[]
(replace:?options)[(link:"Next")[(if:$word_time_left < 1)[(set:$word_time_left to (max:$time_limit,(($persuasion_correct's length)*2)))](replace:?challenge_text)[(print:$word_game's "first lines"'s 1st)]
(replace:?options)[(set:$persuade to "na")(replace:?ticking)[](for: each _word, ...$persuasion_bits)[
(print:"(link: '" + (text: _word) + "')[(append:?result)[(print:'" + (text: _word) + "' + ' ')](inc:'index')(set:$persuasion_guess to $persuasion_guess + (a:'" + (text: _word) + "'))(display:'word minigame check guess')]")
]]]]]
}{
(if:$association_index > (length of $word_game's "association question"))[(set:$association_index to 1)]
(set:$question to ($association_index of $word_game's "association question"))
(set:$bad_answer to ($association_index of $word_game's "association bad answer"))
(set:$good_answer to ($association_index of $word_game's "association good answer"))
(replace:?options)[(link:"Next")[(replace:?result)[(print:$question)](replace:?challenge_text)[$question]
(replace:?options)[(if:(Random:1,2) is 1)[(link:$bad_answer)[(display:"word minigame association incorrect")](link:$good_answer)[(display:"word minigame association correct")]](else:)[(link:$good_answer)[(display:"word minigame association correct")](link:$bad_answer)[(display:"word minigame association incorrect")]]]]](inc:'association_index')
}{(replace:?result)[](replace:?challenge_text)[$question $good_answer.](replace:?options)[(display:"word minigame score")]}{(replace:?result)[](replace:?challenge_text)[](replace:?options)[(display:"word minigame fail")]}{
(if:(datanames:$word_game) contains "aroused words")[
(if:$character's "arousal" > 0)[
(set:$words to (twisted:...($word_game's "aroused words")))]
(if:$character's "arousal" > 7)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2)))](else:)[(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2,3)))](else:)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2,3,4)))]]
](else-if:$character's "arousal" > 3)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))](else:)[(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2)))]]
](else-if:$character's "arousal" > 2)[
(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
](else-if:$character's "arousal" > 1)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
](else-if:$character's "arousal" > 0)[
(if:(twist:1,4) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
]]
(if:(datanames:$word_game) contains "controlled words")[
(if:$control < 6)[
(set:$words to (twisted:...($word_game's "controlled words")))]
(if:$control < 2)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2)))](else:)[(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2,3)))](else:)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2,3,4)))]]
](else-if:$control < 3)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))](else:)[(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2)))]]
](else-if:$your_pleasure > 9)[
(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
](else-if:$your_pleasure > 8)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
](else-if:$your_pleasure > 7)[
(if:(twist:1,4) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
]]
(set:$persuasion_bits to (twisted:...$persuasion_bits))
}{
(set:$pride to -1*$submissiveness)
(if:(datanames:$word_game) contains "pride words")[
(if:$pride > 0)[
(set:$words to (twisted:...($word_game's "pride words")))]
(if:$pride > 3)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))](else:)[(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1,2)))]]
](else-if:$pride> 2)[
(if:(twist:1,2) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
](else-if:$pride > 1)[
(if:(twist:1,3) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
](else-if:$pride > 0)[
(if:(twist:1,4) is 1)[(set:$persuasion_bits to ($persuasion_bits + $words's (a:1)))]
]]
}{(set:$persuade to "na")(set:$result to "none")
(set:$difficulty to $word_game's "difficulty")(set:$association_index to 1)
(if:$difficulty > 74)[(set:$win_amount to 1)](else-if:$difficulty < 26)[(set:$win_amount to 5)](else-if:$difficulty > 65)[(set:$win_amount to 2)](else-if:$difficulty < 34)[(set:$win_amount to 4)](else:)[(set:$win_amount to 3)]
(if:$difficulty > 74)[(set:$lose_amount to 5)](else-if:$difficulty < 26)[(set:$lose_amount to 1)](else-if:$difficulty > 65)[(set:$lose_amount to 4)](else-if:$difficulty < 34)[(set:$lose_amount to 2)](else:)[(set:$lose_amount to 3)]
(set:$persuasion_guess to (a:))
(set:$sentences to $word_game's "sentences")
(set:$persuasion_correct to (words:$sentences's 1st))
(if:$sentences's length > 1)[(set:$sentences to (subarray:$sentences, 2, $sentences's length))](else-if:$sentences's length is 1)[(set:$sentences to (a:))]
(set:$persuasion_bits to (twisted:...$persuasion_correct))(display:"word minigame arousal mod")
(set:$index to 0)
<div class="game_header">
(print:$word_game's "backdrop")
<div class="game_header_text">(set:$time_limit to (round:((-0.07 * $difficulty) + 20)))(set:$word_time_left to (max:$time_limit,(($persuasion_correct's length)*2)))[(live:1s)[(display:"word minigame timer")(unless:$result is "none")[(replace:?timer)[](if:(win:))[(replace:?challenge_text)[<mark>(display:$word_game's "win passage")</mark>](replace:?right_options)[<span class='shadow'>You win!</span>
(link:"Next")[(replace:?right_options)[](set:$next to $word_game's "victory passage")(display:"change screen")]]](else:)[(replace:?challenge_text)[<mark>(display:$word_game's "fail passage")</mark>](replace:?right_options)[<span class='shadow'>You lose...</span>
(link:"Next")[(replace:?right_options)[](set:$next to $word_game's "failure passage")(display:"change screen")]]](stop:)]]($highlight:[(css:"font-size:4em")[<span class='shadow'>$time_limit</span>]])]<timer|(print:"
")
<mark>|challenge_text>[(if:$word_game's "type" is "pick up")[(print:$word_game's "first lines"'s 1st)]]</mark></div>
</div>
<div class="options">
</div>
(updateprogress:$word_game's "points to win",$word_game's "points")
<div id="win-bar">
<div class='bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>[**(print:$word_game's "points") / (print:$word_game's "points to win")**]<score_bar|</div>
</div><table cellpadding="0" cellspacing="0"><tr><td width=25%>|result>[]|cursor>[(text-style:"blink")[_]]</td>
</tr>
</table><div class='options'>[(for: each _word, ...$persuasion_bits)[
(print:"(link: '" + (text: _word) + "')[(append:?result)[(print:'" + (text: _word) + "' + ' ')](inc:'index')(set:$persuasion_guess to $persuasion_guess + (a:'" + (text: _word) + "'))(display:'word minigame check guess')]")
]]<options|</div>
}{
(replace:?challenge_text)[]
(set:$skill_difficulty to 50 + ($character's "arousal" * 5))
(set:$percentage_chance to (get_charm:) of (dm:
1,30,
2,35,
3,45,
4,50,
5,60,
6,70,
7,80,
8,85,
9,90,
10,95))
(set:_difficulty_mod to (100-$skill_difficulty))
(unless:$percentage_chance is 50)[(set:$percentage_chance to (min:(max:(ceil:((_difficulty_mod + $percentage_chance + $percentage_chance)/3)),5),95))](if:$percentage_chance < 56 and $percentage_chance > 44)[(set:$percentage_chance to 50)]
(link:"Charm check" + " (" + (text:$percentage_chance) + "%)")[
(replace:?challenge_text)[]
(replace:?right_options)[($play:"sound","dice")(display:"word game skill check result")]
]
}{(replace:?right_options)[(set:$roll to 21-(twist:1,20))(set:$needed to (20 - (floor:$percentage_chance*0.2)) + 1)(if:$needed is 0)[(set:$needed to 1)](if:$needed > 20)[(set:$needed to 20)](color:$palette_colors's 4th)[(if:$needed is 20)[You need to roll a 20.](else-if:$needed is 1)[As long as you don't roll a 1, you're good.(set:$needed to 2)](else:)[(twirl:"You need to roll a $needed or higher to succeed.","You need at least a $needed...","You need a $needed or higher to pass...","Gotta roll at least a $needed.")]](nl:1)
D20 roll:(print:" ")<span class='shadow'>[]<dice|</span>
(replace:?dice)[$roll]
(if:$roll >= $needed)[(set:$result to "pass")(twirl:"You win!","Nice!","You got it!")
(link:"Next")[(replace:?right_options)[](set:$next to $word_game's "victory passage")(display:"change screen")]
(replace:?challenge_text)[<mark>(display:$word_game's "win passage")</mark>
(set:$gain_base to 3)(display:"charm gain xp")(set:$result to "pass")]](else:)[(replace:?challenge_text)[<mark>(display:$word_game's "fail passage")</mark>
(set:$gain_base to 2)(display:"charm gain xp")](set:$result to "fail")(if:($needed - $roll < 2))[(twirl:"You fail, just barely...","So close!","Almost!","Too bad, that was close!")](else:)[(twirl:"You lose.","Too low.","You fail.")](nl:1)(set:$result to "fail")
(link:"Next")[(replace:?right_options)[](set:$next to $word_game's "failure passage")(display:"change screen")](link:"Use Action Point")[(set:$action_params to (dm:"cost",1,"result",$word_game's "victory passage","type","minigame"))(display:"use action point")]]]}{
(display:"refresh possible activities")
(set:_message to (dm:))
(display:"gym scenes message")
(if:$character's "side effects" contains any of (a:"maid","people pleaser","people pleaser temp") and $request is "chores")[
(activities:$character's "side effects" contains any of (a:"maid","people pleaser","people pleaser temp") and $request is "chores","Do chores","morning",true,(cond:$character's "side effects" contains "maid","Because of the Live-In Maid side effect, the urge to clean is overwhelming.","You don't want to disappoint stepdad! (People Pleaser Side Effect)"))
]
(display:"count hidden achievements")(display:"achievement-engine recent success")
(unless:$today_events contains "daily tags")[
($passage_tags:"daily")(if:$is_raining)[(display:"rain emoji")($play:"ambience","morning rain ambience",1000)](else:)[(masteraudio:"stopall","ambience")]
(display:"count hidden achievements")
(for: each _line, ...(dm-values:_message))[(print: _line)](if:length of (dm-values:_message) > 0)[(nl:2)](set:$today_events to it + (a:"daily tags"))]
(display:"activities menu")(display:"household contributions")
}{
(unless:$morning_activity_force is "none")[(set:$morning_activity to $morning_activity_force)]
(unless:$daytime_activity_force is "none")[(set:$daytime_activity to $daytime_activity_force)]
(unless:$evening_activity_force is "none")[(set:$evening_activity to $evening_activity_force)]
}{
(display:"sync forced activities")
<style>
<style>
.activity-planner {
max-width: 1200px;
margin: 1.5vmin auto;
padding: 2vmin;
}
.activity-message {
border: none;
border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
background-color: transparent;
padding: 1.25vmin;
padding-bottom: 0;
line-height: 1.1;
margin: 1vmin;
margin-top: 0.5vmin;
margin-bottom: 0;
font-size: 2vmin;
color: var(--theme-text-color);
position: relative;
text-align: center;
}
.time-slots {
display: flex;
padding: 1vmin;
flex-wrap: wrap;
gap: 1.5vmin;
justify-content: center;
align-items: flex-start;
margin-top: 2vmin;
}
.time-slot {
flex: 1;
min-width: 200px;
max-width: 400px;
padding-bottom: 1vmin;
background: var(--theme-table-background-color, #4a2424);
box-shadow: 0 0 5px rgba(74, 36, 36, 0.5);
border-radius: 125px 10px 110px 10px / 10px 110px 10px 125px;
transition: all 0.3s ease;
}
.time-header {
position: relative;
border: 2px solid var(--theme-link-color, #e27087);
border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
background-color: var(--theme-link-color, #e27087);
color: var(--theme-link-text-color, white);
padding: 0.75vmin;
font-size: 2.5vmin;
text-align: center;
margin-bottom: 1.5vmin;
height: 5vmin;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0.3vmin 0.3vmin 0 var(--theme-table-border-color, #4a2424),
-0.1vmin -0.1vmin 0 var(--theme-table-border-color, #4a2424),
0.1vmin -0.1vmin 0 var(--theme-table-border-color, #4a2424),
-0.1vmin 0.1vmin 0 var(--theme-table-border-color, #4a2424),
0.1vmin 0.1vmin 0 var(--theme-table-border-color, #4a2424);
text-shadow: 3px 3px 0 var(--theme-table-border-color),
-1px -1px 0 var(--theme-table-border-color),
1px -1px 0 var(--theme-table-border-color),
-1px 1px 0 var(--theme-table-border-color),
1px 1px 0 var(--theme-table-border-color);
}
.time-header h3 {
margin: 0;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5vmin;
font-size: 2.5vmin;
}
.status-indicator {
position: absolute;
top: 0;
right: 0;
transform: translateY(-40%) rotate(10deg);
font-size: 1.5vmin;
padding: 0.5vmin 0.5vmin;
border: solid #FFF 0.3vmin;
border-radius: 1vmin;
font-weight: bold;
z-index: 1;
white-space: nowrap;
text-shadow: none;
}
.status-forced {
background-color: #ff4444;
color: white;
}
.status-past {
background-color: #888888;
color: white;
}
.status-current {
background-color: bisque;
color: #4a2424;
}
.current-activity {
position: relative;
border: 2px solid var(--theme-link-color, #e27087);
border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
padding: 0.75vmin;
text-align: center;
margin: 0 1.5vmin;
font-size: 2.5vmin;
transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
height: 2.1em;
display: flex;
align-items: center;
justify-content: center;
word-break: break-word;
hyphens: auto;
overflow: hidden;
}
.current-activity.tall {
height: 4.2em;
}
.current-activity .activity-text {
width: 100%;
text-align: center;
font-size: 2.5vmin;
line-height: 1.2;
padding: 0.5vmin;
position: absolute;
left: 0;
right: 0;
margin: auto;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
.emoji-bar {
display: flex;
justify-content: center;
gap: 0.5vmin;
margin: 0.75vmin;
margin-top: 1.25vmin;
flex-wrap: wrap;
}
.emoji-button {
font-size: 2.5vmin;
padding: 0;
margin: 0.5vmin;
border: 2px solid var(--theme-link-color, #e27087);
border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
background: var(--theme-link-color, #e27087);
cursor: pointer;
transition: all 0.2s ease;
min-width: 4vmin;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 3px 3px 0 var(--theme-table-border-color),
-1px -1px 0 var(--theme-table-border-color),
1px -1px 0 var(--theme-table-border-color),
-1px 1px 0 var(--theme-table-border-color),
1px 1px 0 var(--theme-table-border-color);
text-shadow: 3px 3px 0 var(--theme-table-border-color),
-1px -1px 0 var(--theme-table-border-color),
1px -1px 0 var(--theme-table-border-color),
-1px 1px 0 var(--theme-table-border-color),
1px 1px 0 var(--theme-table-border-color);
}
.emoji-button:hover:not(.disabled):not(.forced) {
background-color: var(--mark-color, #4a2424);
border: 2px solid var(--mark-color, #e27087);
color: var(--mark-background-color, #fff);
}
.emoji-button.selected {
background-color: var(--mark-background-color, #fff);
border: 2px solid var(--mark-background-color, #e27087);
}
.activity-list {
height: auto;
transition: opacity 0.3s ease;
opacity: 1;
}
.activity-option {
border: 2px solid var(--theme-link-color, #e27087);
border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
background-color: transparent;
color: var(--theme-link-color, #e27087);
padding: 0.75vmin;
margin: 0.75vmin;
margin-left: 1.5vmin;
margin-right: 1.5vmin;
text-align: center;
cursor: pointer;
transition: all 0.2s ease;
font-size: 2.5vmin;
}
.activity-option:hover:not(.disabled):not(.forced) {
background-color: var(--mark-color, #4a2424);
color: var(--mark-background-color, #fff);
border: 2px solid var(--mark-color, #4a2424);
}
.activity-option.selected {
background-color: var(--mark-background-color, #fff);
color: var(--mark-color, #4a2424);
border: 2px solid var(--mark-background-color, #fff);
}
.time-slot.past .current-activity,
.time-slot.current .current-activity,
.time-slot.forced .current-activity {
cursor: not-allowed;
}
.time-slot.collapsed .activity-list,
.time-slot.past .activity-list,
.time-slot.forced .activity-list,
.time-slot.current .activity-list {
display: none;
}
.activity-text.outgoing-up {
animation: slideOutUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
.activity-text.outgoing-down {
animation: slideOutDown 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
.activity-text.incoming-up {
animation: slideInUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
.activity-text.incoming-down {
animation: slideInDown 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes slideOutUp {
0% {
transform: translateY(0);
opacity: 1;
}
100% {
transform: translateY(-100%);
opacity: 0;
}
}
@keyframes slideOutDown {
0% {
transform: translateY(0);
opacity: 1;
}
100% {
transform: translateY(100%);
opacity: 0;
}
}
@keyframes slideInUp {
0% {
transform: translateY(100%);
opacity: 0;
}
100% {
transform: translateY(0);
opacity: 1;
}
}
@keyframes slideInDown {
0% {
transform: translateY(-100%);
opacity: 0;
}
100% {
transform: translateY(0);
opacity: 1;
}
}
</style>
<div id="activities" class="activity-planner"><div class="time-slots"></div></div>
<script>
const MIN_EMOJI_ACTIVITIES = 2;
function shouldBeTall(text) {
return text.length > 20;
}
function adjustHeight(element, text) {
const container = element.closest('.current-activity');
if (container) {
container.classList.toggle('tall', shouldBeTall(text));
}
}
function getCharacterAttributes() {
const character = Harlowe.variable('$character');
return {
gender: character.get('gender'),
race: character.get('race')
};
}
function getEmojiForActivity(activity) {
const char = getCharacterAttributes();
return window.ActivityEmojis.get(activity, char.gender, char.race);
}
function buildEmojiBar(activities, currentActivity, slot) {
// Check if emoji icons are disabled via the setting
const emojiIconsDisabled = Harlowe.variable('$activity_icons') === "Activity Icons: Disabled";
// If icons are disabled, return empty bar
if (emojiIconsDisabled) {
return { html: '', emojiActivities: [] };
}
const emojiActivities = activities.filter(activity => getEmojiForActivity(activity));
if (emojiActivities.length < MIN_EMOJI_ACTIVITIES) return { html: '', emojiActivities: [] };
const html = `
<div class="emoji-bar">
${emojiActivities.map(activity => `
<button
class="emoji-button ${activity === currentActivity ? 'selected' : ''}"
data-activity="${activity}"
title="${activity}">
${getEmojiForActivity(activity)}
</button>
`).join('')}
</div>
`;
return { html, emojiActivities };
}
function animateActivityChange(timeSlot, oldActivity, newActivity) {
const currentActivityDiv = timeSlot.querySelector('.current-activity');
const activities = Array.from(timeSlot.querySelectorAll('.activity-option, .emoji-button'))
.map(el => el.dataset.activity)
.filter(Boolean);
activities.push("Nothing");
const oldIndex = activities.indexOf(oldActivity);
const newIndex = activities.indexOf(newActivity);
const movingDown = newIndex > oldIndex;
currentActivityDiv.innerHTML = '';
const outgoingEl = document.createElement('div');
outgoingEl.className = `activity-text outgoing-${movingDown ? 'up' : 'down'}`;
outgoingEl.textContent = oldActivity;
currentActivityDiv.appendChild(outgoingEl);
const incomingEl = document.createElement('div');
incomingEl.className = `activity-text incoming-${movingDown ? 'down' : 'up'}`;
incomingEl.textContent = newActivity === "Nothing" ? "None" : newActivity;
currentActivityDiv.appendChild(incomingEl);
// Apply height based on new activity text
adjustHeight(incomingEl, newActivity);
setTimeout(() => {
const finalText = document.createElement('div');
finalText.className = 'activity-text';
finalText.textContent = newActivity === "Nothing" ? "None" : newActivity;
currentActivityDiv.innerHTML = '';
currentActivityDiv.appendChild(finalText);
adjustHeight(finalText, newActivity);
}, 300);
}
function getTimeSlotClasses(timeValue, currentActivity, forcedActivity) {
const isPast = gameData.time > timeValue;
const isCurrent = gameData.time === timeValue;
const isForced = forcedActivity !== "none";
let classes = ['time-slot'];
if (isPast) classes.push('past');
if (isCurrent) classes.push('current');
if (isForced) classes.push('forced');
return classes.join(' ');
}
function getCurrentActivityClasses(timeValue, isForced) {
const isPast = gameData.time > timeValue;
const isCurrent = gameData.time === timeValue;
let classes = ['current-activity'];
if (isPast) classes.push('past');
if (isCurrent) classes.push('active');
if (isForced) classes.push('forced');
return classes.join(' ');
}
function getStatusIndicator(slot, activity, timeValue) {
if (slot.forcedActivity !== "none") {
return '<span class="status-indicator status-forced">Forced</span>';
}
if (gameData.time < timeValue) {
return '';
} else if (gameData.time === timeValue) {
return '<span class="status-indicator status-current">Current</span>';
} else {
return '<span class="status-indicator status-past">Past</span>';
}
}
function initActivityPlanner() {
const container = document.querySelector('.time-slots');
const timeSlots = [
{ id: 'morning', emoji: '⏰', title: 'Morning', timeValue: 1,
forcedActivity: gameData.morningActivityForce,
message: gameData.morningActivityMessage },
{ id: 'daytime', emoji: '🌞', title: 'Daytime', timeValue: 2,
forcedActivity: gameData.daytimeActivityForce,
message: gameData.daytimeActivityMessage },
{ id: 'evening', emoji: '🌙', title: 'Evening', timeValue: 3,
forcedActivity: gameData.eveningActivityForce,
message: gameData.eveningActivityMessage }
];
timeSlots.forEach(slot => {
const activities = gameData[slot.id + 'Activities'].filter(activity => activity !== "Nothing");
const currentActivity = gameData[slot.id + 'Activity'];
const isForced = slot.forcedActivity !== "none";
const isPast = gameData.time > slot.timeValue;
const isCurrent = gameData.time === slot.timeValue;
const timeSlot = document.createElement('div');
timeSlot.className = getTimeSlotClasses(slot.timeValue, currentActivity, slot.forcedActivity);
if ((isPast || isCurrent || isForced)) {
timeSlot.classList.add('collapsed');
}
let messageHtml = '';
if (slot.message && slot.message !== "none") {
messageHtml = `
<div class="activity-message">
${slot.message}
</div>
`;
}
timeSlot.innerHTML = `
<div class="time-header">
<h3>${slot.emoji} ${slot.title}</h3>
${getStatusIndicator(slot, currentActivity, slot.timeValue)}
</div>
<div class="${getCurrentActivityClasses(slot.timeValue, isForced)}">
${isForced ? slot.forcedActivity : (currentActivity === "Nothing" ? "None" : currentActivity)}
</div>
${messageHtml}
${(!isPast && !isCurrent && !isForced) ? (() => {
const { html: emojiBarHtml, emojiActivities } = buildEmojiBar(activities, currentActivity, slot);
const remainingActivities = activities.filter(activity => !emojiActivities.includes(activity));
return `
${emojiBarHtml}
${remainingActivities.length > 0 ? `
<div class="activity-list">
${remainingActivities.map(activity => `
<div class="activity-option
${activity === currentActivity ? 'selected' : ''}"
data-activity="${activity}">
${activity}
</div>
`).join('')}
</div>
` : ''}
`;
})() : ''}
`;
container.appendChild(timeSlot);
});
document.querySelectorAll('.time-slot:not(.past):not(.current):not(.forced)').forEach(slot => {
const header = slot.querySelector('.time-header');
const currentActivity = slot.querySelector('.current-activity');
[header, currentActivity].forEach(element => {
element.addEventListener('click', () => {
slot.classList.toggle('collapsed');
});
});
});
function handleActivitySelection(element, timeSlot) {
const activity = element.dataset.activity;
const slotType = timeSlots.find(s =>
timeSlot.querySelector('.time-header h3').textContent.includes(s.title)
).id;
if (gameData[slotType + 'ActivityForce'] !== "none") return;
const currentActivity = Harlowe.variable(`$${slotType}_activity`);
if (element.classList.contains('selected')) {
animateActivityChange(timeSlot, currentActivity, "Nothing");
Harlowe.variable(`$${slotType}_activity`, "Nothing");
element.classList.remove('selected');
} else {
animateActivityChange(timeSlot, currentActivity, activity);
Harlowe.variable(`$${slotType}_activity`, activity);
timeSlot.querySelectorAll('.activity-option, .emoji-button').forEach(opt =>
opt.classList.toggle('selected', opt.dataset.activity === activity)
);
}
}
document.querySelectorAll('.activity-option, .emoji-button').forEach(option => {
option.addEventListener('click', (e) => {
e.stopPropagation();
handleActivitySelection(option, option.closest('.time-slot'));
});
});
// Initialize heights for existing activities
document.querySelectorAll('.current-activity').forEach(container => {
const text = container.textContent.trim();
container.classList.toggle('tall', shouldBeTall(text));
});
}
// Game data setup
const gameData = {
time: Harlowe.variable('$time'),
morningActivity: Harlowe.variable('$morning_activity'),
daytimeActivity: Harlowe.variable('$daytime_activity'),
eveningActivity: Harlowe.variable('$evening_activity'),
morningActivities: Harlowe.variable('$morning_activities'),
daytimeActivities: Harlowe.variable('$daytime_activities'),
eveningActivities: Harlowe.variable('$evening_activities'),
morningActivityForce: Harlowe.variable('$morning_activity_force') || "none",
daytimeActivityForce: Harlowe.variable('$daytime_activity_force') || "none",
eveningActivityForce: Harlowe.variable('$evening_activity_force') || "none",
morningActivityMessage: Harlowe.variable('$morning_activity_message') || "none",
daytimeActivityMessage: Harlowe.variable('$daytime_activity_message') || "none",
eveningActivityMessage: Harlowe.variable('$evening_activity_message') || "none"
};
// Initialize
initActivityPlanner();
</script>
}{
<!-- creating local variables that are reset each time we loop back around to this passage. Hopefully makes it safer and easier for mods to add or change the activity lists without causing issues down the line. -->
(activities:)
(set:_morning to (a: ...$morning_activities))
(set:_daytime to (a: ...$daytime_activities))
(set:_evening to (a: ...$evening_activities))
(set:_message to (dm:)) <!-- _message is a datamap so that mods using the hook later in this passage can add to or replace a *specific* message (like the live in maid side effect) by name -->
(if:$character's "side effects" contains any of (a:"maid","people pleaser","people pleaser temp") and $request is "chores")[
(set:_morning to (a:"Do chores"))
(set:_message to it + (dm:"chores", (cond:$character's "side effects" contains "maid","Because of the Live-In Maid side effect, the urge to clean is almost overwhelming. \n\nLike it or not, you're going to have to take care of it now.","Because of the People Pleaser side effect, you can't bring yourself to not do the chores, and possibly disappoint stepdad!")))
]
(if:$daytime_activity is "8-week prenatal appointment")[
(set:_daytime to (a:"8-week prenatal appointment"))
(set:_message to it + (dm:"prenatal_8","You're about eight weeks along, so it's time for your first prenatal appointment. You'll have to put off whatever other plans you had for the day."))
](else-if:$daytime_activity is "12-week prenatal appointment")[
(set:_daytime to (a:"12-week prenatal appointment"))
(set:_message to it + (dm:"prenatal_12","You're twelve weeks along now, and that means that it's time for another prenatal appointment."))
]
(display:"count hidden achievements")(display:"achievement-engine recent success")
(unless:$today_events contains "daily tags")[
($passage_tags:"daily")(if:$is_raining)[(display:"rain emoji")($play:"ambience","morning rain ambience",1000)](else:)[(masteraudio:"stopall","ambience")]
(display:"count hidden achievements")
(for: each _line, ...(dm-values:_message))[(print: _line)](if:length of (dm-values:_message) > 0)[(nl:2)](set:$today_events to it + (a:"daily tags"))]
<span class='shadow'>Morning:</span>
(if:_morning's length > 1 and $time < 1)[(dropdown: bind $morning_activity, ..._morning)](else-if:$time is 1)[(color:"bisque")[$morning_activity]](else-if:$time > 1)[$morning_activity](else-if:_morning's length is 1)[(set:$morning_activity to _morning's 1st)(print:_morning's 1st)](else:)[(set:$morning_activity to "Nothing")(print:"Nothing")](print:"
")
<span class='shadow'>Daytime:</span>
(if:_daytime's length > 1 and $time < 2)[(dropdown: bind $daytime_activity, ..._daytime)](else-if:$time is 2)[(color:"bisque")[$daytime_activity]](else-if:$time > 2)[$daytime_activity](else-if:_daytime's length is 1)[(set:$daytime_activity to _daytime's 1st)(print:_daytime's 1st)](else:)[(set:$daytime_activity to "Nothing")(print:"Nothing")](print:"
")
<span class='shadow'>Evening:</span>
(if:_evening's length > 1 and $time < 3)[(dropdown: bind $evening_activity, ..._evening)](else-if:$time is 3)[(color:"bisque")[$evening_activity]](else-if:$time > 3)[$evening_activity](else-if:_evening's length is 1)[(set:$evening_activity to _evening's 1st)(print:_evening's 1st)](else:)[(set:$evening_activity to "Nothing")(print:"Nothing")]
(nl:1)(display:"household contributions")
}{
($show_tooltip:[(color:$palette_colors's 4th)[Rent contributed this week: $[(print:$rent_this_week)]<rent|]],[Your stepdad really appreciates it when you contribute toward rent & household expenses, and doing so will give you some benefits on a weekly basis. Click the 💸 icon to contribute more.])<span class='borderless'>(color:"#6edb6e")[(print:" ")(link:"💸")[(if:$rent_recurring is 0)[(set:$rent_recurring to false)]<div class='options'>[(link-repeat:"+$25")[(set:$amount to 25)(display:"transfer initiate")](link-repeat:"+$50")[(set:$amount to 50)(display:"transfer initiate")](link-repeat:"+$100")[(set:$amount to 100)(display:"transfer initiate")](link-repeat:"+$250")[(set:$amount to 250)(display:"transfer initiate")]]<options|(nl:1)(color:"white")[(checkbox: 2bind $rent_recurring, "Make Recurring")(nl:1)[]<not_enough|]</div>]</span>]
}{
(set:$morning_activities to (a:"Shower","Do chores","Workout","Nothing"))
(set:$daytime_activities to (a:"Go to the mall","Go to the beach","Find a job","Nothing"))
(set:$evening_activities to (a:"Hit the bar","Go clubbing","Watch a movie","Nothing"))
}{
(display:"refresh possible activities relationships")
(display:"refresh possible activities job")
(display:"refresh possible activities home")
(display:"refresh possible activities club")
(display:"refresh possible activities makeup")
(if:(knows_preg:))[(display:"refresh possible activities pregnancy")]
(display:"refresh possible activities milking")
(activities:)
}{
(activities:(a:"Saturday","Friday") contains $day_of_week,"Go clubbing","evening")
}{
(activities:((is_fem:) and ($global_events contains "makeup") and not ((get_makeup:) > 3 and $global_events contains "makeup slot disable")),"Do your makeup","morning")
}{
(if:$ruined_outfits is 0)[(set:$ruined_outfits to (a:))]
(activities:(length of $ruined_outfits > 0),"Do laundry","evening")
}{
(if:$pregnancy's weeks is 8 and not ($pregnancy's events contains "8-week prenatal appointment"))[(set:$father_callable to "false")]
(activities:
($pregnancy's weeks is 8 and not ($pregnancy's events contains "8-week prenatal appointment")),
"8-week prenatal appointment",
"daytime",
true,
"You're about eight weeks along, so it's time for your first prenatal appointment. You'll have to put off whatever other plans you had for the day."
)
(activities:
($pregnancy's weeks is 12 and not ($pregnancy's events contains "12-week prenatal appointment")),
"12-week prenatal appointment",
"daytime",
true,
"You're twelve weeks along now, and that means that it's time for another prenatal appointment."
)
(activities:
($pregnancy's weeks >= 8 and it < 13 and not ($pregnancy's events contains "Call the father") and $father_callable is "true"),
"Call the father",
"evening"
)
}{
(activities:$milk_timer > 0 and (is_fem:),"Milk yourself","evening")
}{(if:$auto_makeup_apply is 0)[(set:$auto_makeup_apply to false)]
(if:$auto_makeup_apply is true and (is_fem:) and $current_look is "none" and (get_makeup:) >= 6)[(if:$daytime_activity is any of (a:"Go to the beach","Go to work","Go shopping","Go to the mall") or $evening_activity is any of (a:"Go clubbing","Invite guy over","Hit the bar"))[
(if:$makeup's Foundation > 0 and $makeup's Mascara > 0 and $makeup's "Tinted Lip Balm" > 0)[
(set:$makeup's Foundation to it - 1)(set:$makeup's Mascara to it - 1)(set:$makeup's "Tinted Lip Balm" to it - 1)
(set:$current_look to (dm:"look","Basic Everyday","items",(a:"Foundation","Mascara","Tinted Lip Balm","Blush"),"double items",(a:),"appearance",10,"fleekness",1,"order",(a:"Foundation","Mascara","Tinted Lip Balm"),"boosted",(a:"Foundation","Blush","Mascara","Tinted Lip Balm"),"skill",50))]]]
}{
<div style='display: none;'>(set:$stats_refresh to "refresh stats")
(set:$outfit_button to "dont show",$current_location_icon to 0,$location_params to (dm:))
(if:$time is 1)[(set:$current_activity to $morning_activity)(set:$next to $morning_activity)(display:"check pregnancy events")]
(if:$time is 2)[(display:"auto makeup check")(set:$current_activity to $daytime_activity)(set:$next to $daytime_activity)]
(if:$time is 3)[(if:(a:"Milk yourself") contains $evening_activity and (is_male:))[(set:$evening_activity to "Nothing")](display:"npc check guys calling you")(if:$guy_calling is "no one")[(set:$current_activity to $evening_activity)(set:$next to $evening_activity)]]
(if:$time is 4)[(set:$current_activity to "Night")(set:$next to $evening_activity)(set:$next to "Night")]
(display:"outfit type")(unless:(a:"Nothing","Sell lemonade","Give sales demo","Invite guy over") contains $current_activity or (is_male:))[(display:"load outfit")](if:(is_male:))[(display:"apply mens clothes")]
(if:(is_resistance:))[(display:"resistance counter")]
(set:$your_name to $character's "gender" of (dm:"male",$character's "male name","female",$character's "female name"))
(if:$pregnant_discover_timer > 0)[(dec:'pregnant_discover_timer',1)]
(if:($status's "status" is any of (a:"sexually frustrated","very sexually frustrated")) and ($character's "arousal" is 0 or $today_events contains "orgasm"))[(display:"reset status")]
(if:(is_fem:) and not ($character's "status" is "cum"))[(set:$character's "status" to($core_female_status:))]
($passage_tags:"advance_time_post")
(live:1ms)[(stop:)(goto:$next)]</div>
}{(if:$messages is 0)[(set:$messages to (a:))](unless:length of $messages is 0)[<div class='options'><mark>(for:each _message, ...$messages)[(set:_messages to (dm:"Swallow or permanent ID","Since you didn't swallow any cum yesterday, you're going to be stuck in this DNA forever.",
"Orgasm or permanent ID","Since you didn't orgasm yesterday, you're going to be stuck in this DNA forever.",
"Swallow to continue","Since you didn't swallow any cum yesterday, your transformation is going to wear off soon.",
"Orgasm to continue","Since you didn't orgasm yesterday, your transformation is going to wear off soon."
))(if:_messages contains _message)[(print:_message of _messages)]]</mark></div>](set:$messages to (a:))}{(if:$next is "day post transform")[(display:"refresh possible activities")(display:"next")](else:)[
(if:$current_activity is "Do chores")[(display:"change screen")](else-if:$current_activity is "Go shopping")[(display:"next")](else:)[(if:$next is "Go to the mall")[(set:$next to "Go shopping")](if:(a:"The Beach","Paradise Mall","The Broken Drum","Your Bedroom","Witness the Fitness","Your House","Break Room","Laundry Room","Closet") contains $current_location)[(display:"next")](else:)[(display:"change screen")]]]}{
(if:$previous is "day")[(set:$next to "day")(display:"next")](else-if:$current_activity is "Do chores")[(set:$next to "house chores location post change")(display:"next")](else-if:$current_activity is "Invite guy over")[(set:$next to "invite guy over post change")(display:"next")](else-if:$current_activity is "Call the father")[(set:$next to "call father visit post change")(display:"next")](else:)[
(if:$next is "Go to the mall")[(set:$next to "Go shopping")]
(if:(a:"The Beach","Paradise Mall","The Broken Drum","Your Bedroom","Witness the Fitness","Your House","Break Room","Laundry Room","The Electric Pickle","Closet") contains $current_location)[(display:"next")](else:)[($cs:"after wardrobe")]]
}{($play:"sound","quicktime correct 1 B")<span class='borderless'><div class='options'>[(if:$navigation's "up" is "none")[(link-repeat:"<img src='img/ui/buttons/64button1up.png'; width=64px; height=auto>")[($play:"sound","quicktime incorrect")]](else:)[(link-repeat:"<img src='img/ui/buttons/64button2up.png'; width=64px; height=auto>")[(set:$next to $navigation's "up")(display:"change screen")]]]<up|(nl:1)
[(if:$navigation's "left" is "none")[(link-repeat:"<img src='img/ui/buttons/64button1left.png'; width=64px; height=auto>")[($play:"sound","quicktime incorrect")]](else:)[(link-repeat:"<img src='img/ui/buttons/64button2left.png'; width=64px; height=auto>")[(set:$next to $navigation's "left")(display:"change screen")]]]<left|[(if:$navigation's "down" is "none")[(link-repeat:"<img src='img/ui/buttons/64button1down.png'; width=64px; height=auto>")[($play:"sound","quicktime incorrect")]](else:)[(link-repeat:"<img src='img/ui/buttons/64button2down.png'; width=64px; height=auto>")[(set:$next to $navigation's "down")(display:"change screen")]]]<down|[(if:$navigation's "right" is "none")[(link-repeat:"<img src='img/ui/buttons/64button1right.png'; width=64px; height=auto>")[($play:"sound","quicktime incorrect")]](else:)[(link-repeat:"<img src='img/ui/buttons/64button2right.png'; width=64px; height=auto>")[(set:$next to $navigation's "right")(display:"change screen")]]]<right|</div></span>}{
(display:"update palette")(set:$current_location to $location_params's "name")[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[(print:$location_params's "changing location pic")(set:$ambience to $location_params's "ambience")(live:1s)[(display:"play ambience")(stop:)](display:"activities")<div class='options'>(if:$location_params contains "pause screen code")[(live:0.5s)[(display:(text:$location_params's "pause screen code"))(stop:)]](link-repeat:$location_params's "home option")[(set:$next to $location_params's "home")(display:"next")]<div>]<screen|</div><div class='top_right' data-simplebar>[]<right_screen|(display:"location and save")
}{
(display:"screen transition stop sounds")
(display:"change screen no stop sound")
}{
(if:(passage:$next)'s tags contains "fullscreen")[(display:"next")](else:)[(replace:?screen)[](live:1ms)[(replace:?screen)[(display:$next)](stop:)]]
}{
(unless:$sex_loop_continue is "true" or (a:"breathing 1","breathing 2","breathing 3","breathing 4","breathing 5",0) contains $sex_loop)[(masteraudio:"stopall","sex loop")]
(unless:(a:0,"ui click 1","ui click 2","ui click 3","ui click 4","0") contains $se)[(masteraudio:"stopall","se")]
}{
(if:$pov is "1st" or (twist:1,2) is 1)[(set:$pov to "3rd")](else-if:(twist:1,2) is 1)[(set:$pov to "3rd")](else:)[(set:$pov to "1st")]
}(replace:?screen_contents)[](live:1ms)[(replace:?screen_contents)[(display:$next)](stop:)]{
(set:$your_name to $character's "gender" of (dm:"male",$character's "male name","female",$character's "female name"))
(replace:?Passage)[](live:1ms)[(replace:?Passage)[(display:$next)](stop:)]
(display:"screen transition stop sounds")(bottomscroll: "scrollable-content")
}{
<script>
window.clearAllXclTooltips();
</script>
}{
(display:"update palette")(set:$your_name to $character's "gender" of (dm:"male",$character's "male name","female",$character's "female name"))
(replace:?Passage)[](live:1ms)[(replace:?Passage)[(display:$next)](stop:)]
(display:"screen transition stop sounds")
}{
(set:$stats_refresh to "refresh stats")(set:$summer_city to (summercity:))
(unless:$character contains "cockfatness")[(display:"generate player dick")]
(set:$time to 0)
(display:"update palette")
(forget-undos:-1)
(forget-visits:-1)
(set:$next to "day")
(display:"outfit type")
(display:"load outfit")
(set:$outfit_button to "dont show")
(display:"refresh portrait")
(display:"family locations")
(set:$current_location to "Your House")
(display:"play day song")
[(display:"character status")]<status|
<div id='scrollable-content' class='center_screen' data-simplebar>[
(if:(is_fem:) and (twist:1,2) is 1)[
(if:$character's "id" is "lana")[
(print:"<video disableRemotePlayback src='img/scenes/characters/" + $character's "id" + "/chores/" + (twirl:"morning 1","morning 2") + ".mp4' autoplay='' loop='' muted='' playsinline/>")
](else:)[
(print:"<video disableRemotePlayback src='img/scenes/characters/" + $character's "id" + "/chores/morning.mp4' autoplay='' loop='' muted='' playsinline/>")
]
]
(display:"calculate pregnancy chance")
(display:"messages")(display:"refresh possible activities")
(display:"activities")
(set:$mall_song to "mall " + (text:(twist:1,8)))
(set:$beach_song to "beach " + (text:(twist:1,11)))
]<screen|</div>
<div class='top_right' data-simplebar>[(display:"day display")
(nl:1)
(display:"today request")
(nl:1)<div class='center'>
(display:"inventory buttons")
(if:(is_fem:))[
(nl:1)
]
(display:"wardrobe buttons")
(display:"position button")
(nl:1)
(link:"Menu")[
(set:$next to "menu")
(display:"next")
]
(nl:2)
(color:"bisque")[
(link:"Start Day")[
($notification:(twirl:"Carpe diem!","Rise and shine!","Have a good day!","Another day in paradise...","Make today count.") + " " + (twirl:"☀️🌴","🌅🌺","🏖️☕","🌊🏝️","🦩🍍","🌅","🍳","🌇"))
(live:0.1s)[
(set:$time to 1)
(display:"events")
(stop:)
]
]
]
(nl:2)
(color:$palette_colors's 4th)[
(unless:$sales_job's "status" is "not hired")[
(checkbox: 2bind $weekday_work_default, " Work on weekdays")
]
(unless:(get_makeup:) < 6)[(if:(is_fem:))[
($show_tooltip:[(checkbox: 2bind $auto_makeup_apply, " Auto-apply makeup")],[If you select this, your character will automatically apply a Basic Everyday makeup look, if you have enough products for it and plan to go out that day. But it won't override any other looks you apply.])]
]
]
</div>]<right_screen|
</div>
($play:"day song",100)
(unless:$today_events contains "daily action point")[(unless:$action_point_gain is "false")[(set:$today_events to it + (a:"daily action point"))(live:1s)[(set:$action_points to (min:$action_points + $action_point_regen,$max_action_points))(display:"update action points")(stop:)]]]
}(display:"score multiplier recalc"){
(replacetrack:"day song",(cond:(is_male:),"aud/music/day/male/" + (lowercase:$day_of_week) + ".mp3","aud/music/day/female/" + (lowercase:$day_of_week) + ".mp3"))
($play:"song","day song")
}{(display:"refresh possible activities")
(set:$current_location to "Your House")(display:"play day song")[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[(if:(is_fem:))[(if:(a:"rae","cassidy") contains $character's "id")[($vid:"/scenes/characters/" + $character's "id" + "/chores/bathroom " + (text:(twist:1,2)) + ".mp4")](else:)[($vid:"scenes/characters/" + $character's "id" + "/chores/bathroom.mp4")]](display:"activities")]<screen|</div><div class='top_right' data-simplebar>[(css:"font-size:3.5vmin")[($shadow:[$day_of_week, Day $day])](nl:1)(display:"today request")(nl:2)
($centered:[(display:"inventory buttons")(nl:1)(display:"wardrobe buttons")(nl:1)(link:"Menu")[(set:$next to "menu")(display:"next")](nl:2)(color:"bisque")[(link:"Start Day")[(set:$time to 1)(display:"events")]](nl:2)(color:$palette_colors's 4th)[(unless:$sales_job's "status" is "not hired")[(checkbox: 2bind $weekday_work_default, " Work on weekdays")]]])]<right_screen|</div>}{
($centered:[{($show_tooltip:[(css:"font-size:3.5vmin")[<span class='shadow'>$day_of_week</span>](nl:1)(color:$palette_colors's 4th)[Day $day]],[(print:$summer_city's "date")(nl:1)(display:"current weather")])}])
}{
(set:_time_access to (clamp:$time,1,4))
(print:(upperfirst:_time_access of $today_weather) + " (" + (text:_time_access of $today_temp) + "°F)")
}{
(set:_time_access to (clamp:$time,1,4))
(set:_weather to (text:(lowercase:_time_access of $today_weather)))
($notification_still:(cond:_weather is "light rain","It's raining. 🌦️",_weather is "drizzle","It's drizzling outside. 💧",
_weather is "scattered showers","Scattered showers today. 🌦️",_weather is "rain","It's raining. 🌧️",_weather is "heavy rain","It's raining heavily today... ⛈️",_weather is "thunderstorms","Thunderstorms today. ⛈️","It's raining. 🌧️"))
}{
<div style='display: none;'>
(display:"clear variables")
(clearstandardvars:)
(set:$seed to "none")
(display:"check sleep status")
(set:$protection's "active" to "false")
(set:$continue to "true")
(display:"check stats")
($passage_tags:"advance_day_pre")
(unless:$hairstyle is 0)[
(dec:'hairstyle_timer')
(if:$hairstyle_timer < 1)[
(set:$hairstyle to 0)
(set:$hairstyle_timer to 0)
]
]
(if:$character's "identity" < 1)[
(set:$next to "identity game over")
(display:"next")
](else:)[
(if:$continue is "true")[
(unless:$today_events contains "next day")[(display:"next day")]
(if:($rent_this_week - $bonus_rent) > 0)[
(if:(datanames:$stepdad) contains "days since thanks")[
(set:$stepdad's "days since thanks" to it + 1)
](else:)[
(set:$stepdad's "days since thanks" to 29)
]
]
(if:$request is "maid cleaned")[
(set:$mess to 0)
](else:)[
(set:$mess to (max:0,$mess) + 1)
(if:$items contains "robot vacuum" and (twist:1,2) is 1)[(dec:'mess')]
(display:"house dirty rooms")
(if:$mess > 4 and not ($disable_chores is "Chores Disabled: True") and $rent_this_week < 50)[
(set:$request to "chores")
](else:)[
(set:$request to "none")
]
]
(if:$day_of_week is "Sunday")[
(set:$sales_job's "weekly sales" to 0)
(if:$rent_recurring is true)[
(if:$bonus_rent > 0)[(set:$rent_this_week to (max:0,$rent_this_week - $bonus_rent))]
(if:(money:) >= $rent_this_week)[
(set:$character's money to it - $rent_this_week)
](else:)[
(set:$rent_this_week to 0)
(set:$rent_recurring to false)
]
](else:)[
(set:$rent_this_week to 0)
]
(set:$bonus_rent to 0)
]
(if:(is_fem:))[
(inc:'days_on_xchange')
](else:)[
(inc:'days_not_on_xchange')
]
(set:_serra_outfit_index to ($day % ($serra_outfits's length) + 1))
(set:$serra_outfit to _serra_outfit_index of $serra_outfits)
(set:$places_visited to (a:))
(set:$mall_song to "mall " + (text:(twist:1,8)))
(display:"sex sound variants")
(if:$character's "side effects" contains "Swallow to continue" and not ($today_events contains "swallow"))[
(set:$pill_timer to 0)
(set:$character's "side effects" to $character's "side effects" - (a:"Swallow to continue"))
(set:$messages to (a:"Swallow to continue"))
]
(if:$character's "side effects" contains "Orgasm to continue" and not ($today_events contains "orgasm"))[
(set:$pill_timer to 0)
(set:$character's "side effects" to $character's "side effects" - (a:"Orgasm to continue"))
(set:$messages to (a:"Orgasm to continue"))
]
(if:$character's "side effects" contains "Swallow or permanent ID" and not ($today_events contains "swallow"))[
(set:$character's "real id" to $character's "id")
(set:$character's "dna" to "tainted")
(set:$character's "side effects" to $character's "side effects" - (a:"Swallow or permanent ID"))
(set:$messages to (a:"Swallow or permanent ID"))
]
(if:$character's "side effects" contains "Orgasm or permanent ID" and not ($today_events contains "orgasm"))[
(set:$character's "real id" to $character's "id")
(set:$character's "dna" to "tainted")
(set:$character's "side effects" to $character's "side effects" - (a:"Orgasm or permanent ID"))
(set:$messages to (a:"Orgasm or permanent ID"))
]
(if:$character's "side effects" contains "Arousal is bad" and ($character's arousal > 9))
[
(set_charm:"xp",(floor:(get_charm:"xp")*0.9))
]
(if:(pill:"Cum-Cure") and ($today_events contains "swallow"))[
(set:$pill_timer to ($clamp:$pill_timer - ((count:$today_events,"swallow","swallow big","swallow huge") * (twist:20,28)),1,100))
]
(set:$yesterday_events to $today_events)
(set:$today_events to (a:))
(display:"refresh possible activities")
(if:$character's "pregnant" is "false" and (is_fem:) and $pregnancy_chance > 0 and $preg_perc > 0.9)[
(set:$character's "arousal" to $character's "arousal" + (twist:1,3))
]
($passage_tags:"advance_day_post")
(set:$previous_activities to (a:$morning_activity,$daytime_activity,$evening_activities))
]
]
</div>
}(masteraudio:"stopall")(display:"Autosave Slot Save")(goto:"day"){
(inc:'days_spent')
(display:"next day")
}{
(forget-undos:-1)
(forget-visits:-1)
(set:$reluctance_debuff to "none")
(masteraudio:"stopall")
(cleanupaudio:)
(inc:'day')(set:$morning_activity_force to "none",$daytime_activity_force to "none",$evening_activity_force to "none",$morning_activity_message to "none",$daytime_activity_message to "none",$evening_activity_message to "none")
(set:$summer_city to (summercity:))
(set:$time to 0)
(if:$day_of_week is "Saturday")[(display:"refresh club playlist")]
(if:$day_of_week is "Sunday")[(display:"secretary warehouse checks")(set:$combo_xp_buffs to (floor:$combo_xp_buffs / 2))(set:$week_events to (a:))(display:"refresh purchasable outfits")(display:"refresh used outfits")(if:$stepsis's "shower" is -1)[(set:$stepsis's "shower" to 5)]]
(display:"shop prices")
(set:$character's "intellect buff" to 0)
(set:$character's "alcohol consumed" to 0)
(set:$character's "alcohol status" to 0)
(if:$pregnant_discover_timer > 0)[(set:$pregnant_discover_timer to (max:$pregnant_discover_timer - 4,0))]
(set:$milk_timer to (max:(it - 1),0))
(if:(is_fem:) and $character's "side effects" contains "milky")[(set:$milk_timer to (min:250,$milk_timer + 30))]
(set:$current_zipple to 0)
(if:(is_bim:))[(inc:'bimbo_timer')]
(if:$lactation is "Lactation Enabled: False")[(set:$milk_timer to 0)]
(if:$milk_timer > 0 and (is_fem:))[(set:$milk to (min:50,it + (twist:2,5)))]
(set:$character's "fitness buff" to 0)
(set:$shower_timer to 0)
(if:$test_kit_timer > 0)[(dec:'test_kit_timer',1)](set:$unprepared_transform to false)
<!---Clean old memories-->
(unless:$memories's length < 1)[(set: $memories to (find: _memory where (_memory's strength is -1 or ($day - _memory's day) <= (_memory's strength-1)), ...$memories))]
(set:$action_point_gain to "true")
(set:$position to "none")
(if:(is_male:))[(set:$soreness to 0)](else:)[(set:$soreness to (max:0,$soreness - 2))]
(if:$items contains "body pillow")[(set:$soreness to (max:0,$soreness - 6))]
(if:$pregnancy is 0)[(set:$pregnancy to (dm:"weeks",-1))]
(unless:$pregnancy's weeks > 10)[
(if:(get_fitness:"level") > 3)[(inc:'gym_timer')]
(if:$gym_timer > 7 and (get_fitness:"level") > 3)[($play:"sound","drain")(gain_fitness:-1)(set:$gym_timer to -5)]
(if:(get_charm:"level") > 3)[(inc:'social_timer')]
(if:$social_timer > 7 and (get_charm:"level") > 3)[($play:"sound","drain")(gain_charm:-1)(set:$social_timer to -5)]
]
(set:$club_timer to (max:0,$club_timer - 1))
(display:"score multiplier recalc")
(set:$previous_activities to (a:$morning_activity,$daytime_activity,$evening_activity))
(display:"refresh possible activities")
(css:"display:none")[(display:"bruce advance evil plans")]
(if:(is_preg:))[
(if:$day_of_week is $pregnancy's "day of week")[(set:$pregnancy's weeks to (min:40,$pregnancy's weeks + 1))]
(if:$pregnancy contains "extra days")[(if:($pregnancy's "extra days") contains $day_of_week)[(set:$pregnancy's weeks to $pregnancy's weeks + 1)]]
]
(display:"update stats")
(set:$today_events to it + (a:"next day"))
}{
(if:$stepdad's "events" contains "sex" and not ($stepdad's events contains "no more sex"))[(set:$stepdad's "events" to (unique:...$stepdad's "events") + (a:"sex eligible"))](else:)[(set:$stepdad's "events" to it - (a:"sex eligible"))]
}{
<div style='display: none;'>
(if:(is_male:))[(set:$pill_known to "true")]
(masteraudio:"stopall","ambience")(if:$time > 2)[(masteraudio:"stopall","music")]
($passage_tags:"advance_time_pre")
(display:"curiosity time check")(display:"Speedrun Fun Trigger 2")
(set:$stage to 0, $lightsout to "false")
(set:$tagalong to "none")
(if:$character's "side effects" contains "Libido overdrive")[(set:$character's "arousal" to (min:$character's "arousal" + 1,10))]
(if:(is_resistance:))[(if:$resistance_effect's "side effects" contains "arousal")[(set:$character's "arousal" to (min:$character's "arousal" + (count:$resistance_effect's "side effects","arousal"),10))]]
(if:(is_male:))[ (set:$soreness to 0) ]
(unless:$character's "temp pill" is "true" or (is_male:))[
(unless:$character's "status" is "cum")[(set:$character's "status" to ($core_female_status:))]
(if:(a:"C","D","E","F","G") contains ($character's breasts) and not ($current_activity is "Nothing" or $soreness_toggle is "Breast Soreness Mechanics: Off" or (is_nude:)))[
(set:$soreness to it + (cond:
$outfit's "breast support" > 3,($clamp:($outfit's "breast support"),1,10) of (a:0,0,0,-1,-2,-3,-3,-3,-4,-4,-4),
$character's "breasts" is "C",2,
$character's "breasts" is "D",3,
(a:"E","F","G") contains $character's "breasts",4,
0))
]
]
(set:$npc_type to "normal", $location_params to 0, $reluctance_debuff to "none",$ambience to 0,$old_ambience to 0, $tagalong to "none", $stage to 0, $time_events to (a:),$control_stat to "disabled",$turns to 0,$outfit to (dm:"tags",(a:),"lingerie","none","breast support",10,"colors",(a:),"top","top","bottom","bottom","pussy","bottom","breasts","top","category","casual","comfort",10,"locations",(a:)))
(display:"mood time effect")
(set:$memory to (dm:"strength",3))
(unless:(a:"none","Plus") contains $pill_taken)[(set:$pill_timer to ($pill_timer - 1))]
(unless:$marked_timer < 1)[(dec:'marked_timer')](if:$marked_timer < 1)[(set:$marked_npc to "none")]
(if:($recall:"f2f transform"))[(if:($memory's "day" + $memory's "strength" - 1) <= ($day))[(unless:$memory's "strength" < 3)[(goto:"f2f expires")]]]
(if:$pill_timer <= 0 and $character's "pregnancy known" is "false" and not ((a:"none","Plus") contains $pill_taken))[
(set:$next to "pill expires")
(set:$pill_timer to 0)
(goto:"next")
](else-if:(is_preg:) and $character's "pregnancy known" is "false" and $pregnant_discover_timer < 1 and $time is 1)[
(set:$next to "morning sickness")
(set:$pregnant_discover_timer to 0)
(display:"next")
](else-if:(is_bim:) and $time is 1 and not ($daytime_activity is "Go to the mall") and $bimbo_timer > 5)[
(goto:"bimbo mall temptation")
](else:)[
(inc:"time")(set:$summer_city to (summercity:))
(display:"events")
]
</div>
}(replace:?right_screen)[(display:"day display")<div class='center'>[]<right_options|</div>]{
($play:"ambience",(cond:((clamp:$time+1,1,4) of $today_weather) is "Thunderstorms","night storm ambience",$is_raining,"night rain ambience","bedroom"))
}(unless:$time_events contains "set bruce")[(if:(twist:1,3) is 1)[(set:$time_events to it + (a:"bruce with alexia"))](set:$time_events to it + (a:"set bruce"))](display:"update palette")(set:$outfit_button to (cond:$character's status is "cum","dont show","show outfit"))(set:$current_activity to "Night")(set:$current_location to "Your Bedroom")(set:$song to 0)(display:"play song")[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[(print:"<video disableRemotePlayback src='img/places/home/bedroom/bedroom " + (text:(twist:1,3)) + ".mp4' autoplay='' loop='' muted='' playsinline/>")
(display:"night options")]<screen|</div><div class='top_right' data-simplebar>[(display:"location and time and inventory no saving")]<right_screen|</div>{(display:"advance time")}{
(set:_text_lines to (a:))
(if:$gym_timer > 5 and (get_fitness:"level") > 3)[
(set: _text_lines to it + (a:"Your fitness is going to decay unless you hit the gym soon."))
]
(else-if:$gym_timer is -5)[
(set: _text_lines to it + (a:"Your base fitness has decayed to " + (text:(get_fitness:"level")) + ", from lack of working out."))
]
(if:$bored_in_a_row is -5)[
(set: _text_lines to it + (a:"Your sex skills have decayed."))
]
(if:$social_timer > 5 and (get_charm:"level") > 3)[
(set: _text_lines to it + (a:"Your charm is going to decay unless you do something social soon."))
]
(else-if:$social_timer is -5)[
(set: _text_lines to it + (a:"Your base charm has decayed to " + (text:(get_charm:"level")) + ", from lack of social contact."))
]
(if:$request is "chores")[
(set: _text_lines to it + (a:(twirl:
"Your stepdad asks you to do the chores today.",
"Your stepdad asks you to do some morning chores."
)))
]
(if:$test_kit_result is $pill_taken and $test_kit_timer is 0 and $pill_known is "false")[
(set: _text_lines to it + (a:"Your X-Change Test Kit results come in! It turns out, you're on a " + (text:$test_kit_result) + " pill."))
(set:$test_kit_timer to -1)
(set:$pill_known to "true")
(set:$test_kit_result to "none")
(display:"refresh name")
](else-if:not ($test_kit_result is "none") and $test_kit_timer is 0)[
(set: _text_lines to it + (a:"Your X-Change Test Kit results have arrived! It turns out, you were on a " + (text:$test_kit_result) + " pill. Not that it matters at this point..."))
(set:$test_kit_timer to -1)
(set:$test_kit_result to "none")
]
(else-if:$request is "maid cleaned")[
(set: _text_lines to it + (a:(twirl:
"The house is shockingly clean, what the hell?",
"Is it just you, or is the house extremely clean? What happened?"
)))
(set:$request to "none")
]
(if:(a:"Monday","Tuesday","Wednesday","Thursday","Friday") contains $day_of_week and $sales_job's "status" is "hired")[
(set: _text_lines to it + (a:"It's a work day."))
]
(if:$global_events contains "newu rental")[
(set: _text_lines to it + (a:"You should pick up your rented outfits at the mall."))
]
(if:$ruined_outfits is 0)[(set:$ruined_outfits to (a:))]
(if:length of $ruined_outfits > 0)[
(set: _text_lines to it + (a:"You have some cum-stained clothes that need to be washed."))
]
(if:$character's id is "jia" and (is_fem:) and $outfit_inventory contains "jia gym blue yoga" and $day_of_week is "Wednesday" and $global_events contains "callie gym available")[
(set: _text_lines to it + (a:"Callie will be at the gym today."))
]
($centered:[(joinlinesspace:..._text_lines)])
}{
(set:_tags to $npc's "tags",_race to $npc's "race",_traits to $npc's "traits")
(set:$hair to (cond:_race is "asian" and (twist:1,2) is 1,(twirl:"silky "),_tags contains "long hair",(twirl:"long ","",""),_tags contains "short hair",(twirl:"short ","",""),"") + (cond:
_tags contains "redhead",(twirl:"red","strawberry","red"),
_tags contains "black hair",(twirl:"black","raven-colored","black"),
_tags contains "blonde",(twirl:"blonde","blonde","golden-colored"),
_tags contains any of (a:"brunette","brown hair"),(twirl:"brunette","brown","chestnut"),
_tags contains "pink hair","pink",
_tags contains "purple hair","purple",
"") + " " + (cond:_tags contains "curly hair",(twirl:"curls","hair"),(twirl:"hair","hair","hair")))
(set:$breasts to
(cond:
_tags contains "huge tits",(twirl:"big, fat","massive","huge","big","giant","big, lovely","big, fat") + " " + (twirl:"udders","tits","melons","milkers","tits","boobs","udders"),
_tags contains "big tits",(twirl:"big","generous","huge","sizable","big","big, lovely","big, fat") + " " + (twirl:"udders","tits","melons","milkers","tits","boobs","udders"),
_tags contains "medium tits",(twirl:"tits","medium-sized tits","milkers","boobs","breasts","titties"),
_tags contains "small tits",(twirl:"itty bitty ","small ","little ","","","") + (twirl:"titties","breasts","boobs","mosquito bites","tits","breasts","tits","boobies"),
(twirl:"tits","breasts","milkers","boobs","tits","titties")))
(set:$npc's "alternate names" to
(a:"girl") + (cond:
_race is "asian",(a:"asian girl"),
_race is "latin",(a:"latina"),
_race is "black",(a:"black girl"),
(a:)) +
(cond:
_tags contains "redhead",(a:"redhead"),
_tags contains "blonde",(a:"blonde"),
_tags contains any of (a:"brunette","brown hair"),(a:"brunette"),
(a:)) +
(cond:
_tags contains "redhead",(a:"redhead"),
_tags contains "blonde",(a:"blonde"),
_tags contains any of (a:"brunette","brown hair"),(a:"brunette"),
(a:)) )
(set:_modifier to (cond:
_tags contains "hot","hot",
_tags contains "cute","cute",
_tags contains "slender","slender",
_tags contains "stylish","stylish",
_tags contains "voluptuous","voluptuous",
_tags contains "skinny","skinny",
_tags contains "beautiful","beautiful",
_tags contains "elegant","elegant",
_tags contains "athletic","athletic",
_tags contains "gorgeous","gorgeous",
"none"
))
(unless:_modifier is "none")[
(set:_alt_names to $npc's "alternate names")
(for:each _name, ..._alt_names)[
(set:$npc's "alternate names" to it + (a:_modifier + " " + _name))
]]
(set:$npc's "alternate names" to it + (cond:
_traits contains "bimbo",(a:"bimbo"),
_tags contains "curvy",(a:"curvy girl"),
_tags contains "classy",(a:"classy girl"),
(a:)))
(set:$npc's "alternate names" to (twisted:...$npc's "alternate names"))
(set:$npc's "alternate name index" to 1)
(set:$npc's "unfamiliar name" to (upperfirst:1st of ($npc's "alternate names")))
}{(set:$girl_title to (macro: str-type _case, [
(set:_index to $npc's "alternate name index")
(set:_name to (cond:_case is "upper","The ","the ") + (_index of $npc's "alternate names"))
(set:$npc's "alternate name index" to ($npc's "alternate name index") + 1)(set:_index to $npc's "alternate name index")(if:_index > (length of ($npc's "alternate names")))[(set:$npc's "alternate name index" to 1)]
(output-data:_name)
]))}{
(set:_drinks to (twisted:
"tequila",
"fruity cocktail",
"whisky",
"beer",
"wine"
))
(set:$npcs to (dm:
"leah", (dm:
"id", "leah",
"voice line prefix", "aud/se/npc/bar/leah/voice lines/",
"race", "white",
"possible names", (twisted:
"Leah",
"Lily",
"Michelle",
"Sandra"
),
"name", 1st of (twisted:
"Leah",
"Lily",
"Michelle",
"Sandra"
),
"unfamiliar name", (twirl:
"Brunette",
"Sporty-looking Brunette",
"Hot Brunette"
),
"familiarity male", 0,
"familiarity female", 0,
"likes", (a:
1 of _drinks,
"black",
(twirl:
"doggystyle",
"riding"
),
(twirl:
"rough sex",
"rough sex",
"gentle sex"
)
),
"dislikes", (a:
(twirl:4, 2, 3) of _drinks
),
"traits", (a:
(twirl:
"likes assertive",
"feminist",
"likes assertive"
),
(twirl:
"rich",
"sporty",
"nerdy",
"feminine",
"bimbo"
),
(twirl:
"bitch",
"slut",
"kind",
"religious"
),
(twirl:
"pill",
"no pill"
)
),
"events", (a:),
"topics", (a:),
"sex positions", (a:
"bwc anal 1",
"bwc anal 2"
),
"img", "img/npc/girls/leah/portrait_normal.jpg",
"img dir", "img/npc/girls/leah/portrait_"
), "harley", (dm:
"id", "harley",
"voice line prefix", "aud/se/npc/bar/harley/voice lines/",
"race", "black",
"possible names", (twisted:
"Harley",
"Nia",
"Aliyah",
"Diamond",
"Destiny"
),
"name", 1st of (twisted:
"Harley",
"Nia",
"Aliyah",
"Diamond",
"Destiny"
),
"unfamiliar name", (twirl:
"Classy black girl",
"Hot black girl"
),
"familiarity male", 0,
"familiarity female", 0,
"likes", (a:
2 of _drinks,
(twirl:
"doggystyle",
"riding"
),
(twirl:
"rough sex",
"rough sex",
"gentle sex"
)
),
"dislikes", (a:
(twirl:1, 3, 4) of _drinks
),
"traits", (a:
(twirl:
"likes assertive",
"feminist",
"likes assertive"
),
"no bbc",
(twirl:
"rich",
"sporty",
"nerdy",
"feminine"
),
(twirl:
"bitch",
"slut",
"kind",
"religious"
),
(twirl:
"pill",
"no pill"
)
),
"events", (a:),
"topics", (a:),
"sex positions", (a:
"bwc anal 1",
"bwc anal 2"
),
"img", "img/npc/girls/harley/portrait_normal.jpg",
"img dir", "img/npc/girls/harley/portrait_"
), "kendra", (dm:
"id", "kendra",
"voice line prefix", "aud/se/npc/bar/kendra/voice lines/",
"race", "white",
"possible names", (twisted:
"Kendra",
"Avery",
"Krystal",
"Robyn",
"Jennifer"
),
"name", 1st of (twisted:
"Kendra",
"Avery",
"Krystal",
"Robyn",
"Jennifer"
),
"unfamiliar name", (twirl:
"Blonde",
"Classy-looking Blonde",
"Sexy Blonde"
),
"familiarity male", 0,
"familiarity female", 0,
"likes", (a:
3 of _drinks,
"black",
(twirl:
"doggystyle",
"riding"
),
(twirl:
"rough sex",
"rough sex",
"gentle sex"
)
),
"dislikes", (a:
(twirl:1, 2, 4) of _drinks
),
"traits", (a:
(twirl:
"likes assertive",
"likes assertive"
),
"only bbc",
(twirl:
"rich",
"feminine",
"bimbo"
),
(twirl:
"bitch",
"slut"
),
(twirl:
"pill",
"no pill"
)
),
"events", (a:),
"topics", (a:),
"sex positions", (a:
"bwc anal 1",
"bwc anal 2"
),
"img", "img/npc/girls/kendra/portrait_normal.jpg",
"img dir", "img/npc/girls/kendra/portrait_"
), "gabbie", (dm:
"id", "gabbie",
"voice line prefix", "aud/se/npc/bar/gabbie/voice lines/",
"race", "white",
"possible names", (twisted:
"Maddie",
"Gabbie",
"Kayla",
"Aubrey",
"Bianca",
"Abigail",
"Holly"
),
"name", 1st of (twisted:
"Maddie",
"Gabbie",
"Kayla",
"Aubrey",
"Bianca",
"Abigail",
"Holly"
),
"unfamiliar name", (twirl:
"Blonde",
"Busty Blonde",
"Blonde"
),
"familiarity male", 0,
"familiarity female", 0,
"likes", (a:
4 of _drinks,
"black",
(twirl:
"doggystyle",
"riding"
),
(twirl:
"rough sex",
"rough sex",
"gentle sex"
)
),
"dislikes", (a:
(twirl:1, 2, 3) of _drinks
),
"traits", (a:
(twirl:
"likes assertive",
"feminist",
"likes assertive"
),
(twirl:
"rich",
"sporty",
"nerdy",
"feminine",
"bimbo"
),
(twirl:
"bitch",
"slut",
"kind",
"religious"
),
(twirl:
"pill",
"no pill"
)
),
"events", (a:),
"topics", (a:),
"sex positions", (a:
"bwc cum tits",
"bbc cum tits"
),
"img", "img/npc/girls/gabbie/portrait_normal.jpg",
"img dir", "img/npc/girls/gabbie/portrait_"
)
))
(display:"npcs add mariselle")
(display:"npcs add alexia")
(display:"initialize bar girl relationships")
(set:$excluded_npcs_from_bar to (a:"test", "siri", "kimmy", "maid", "alexia", "stepsis","hailey"))
(display:"setup hailey npc")
}{
(set:$npcs to it + (dm:"alexia", (dm:
"id", "alexia",
"voice line prefix", "aud/se/npc/stepsis/voice lines/",
"race", "asian",
"name", "Alexia",
"familiarity male", 0,
"familiarity female", 0,
"likes", (a:
"wine",
(twirl:"doggystyle","riding"),
(twirl:"rough sex","gentle sex")
),
"dislikes", (a:),
"traits", (a:
"likes assertive",
"size queen",
"slut",
"no pill"
),
"events", (a:"name","seen cock"),
"topics", (a:),
"sex positions", (a:
"bwc cum tits",
"bbc cum tits"
),
"img", "img/npc/girls/alexia/portrait_normal.jpg",
"img dir", "img/npc/girls/alexia/portrait_"
)))
}{
(set:$npcs to it + (dm:"mariselle", (dm:
"id", "mariselle",
"voice line prefix", "aud/se/npc/club/mariselle/voice lines/",
"race", "latin",
"name", "Mariselle",
"familiarity male", 0,
"familiarity female", 0,
"likes", (a:
"wine",
"doggystyle",
"rough sex"
),
"dislikes", (a:),
"traits", (a:
"likes assertive",
"size queen",
"rich",
"slut",
"pill",
"size queen"
),
"events", (a:"name"),
"topics", (a:),
"sex positions", (a:
"bwc cum tits",
"bbc cum tits"
),
"img", "img/npc/girls/mariselle/portrait_normal.jpg",
"img dir", "img/npc/girls/mariselle/portrait_"
)))
(set:$relationships's mariselle to (dm:
"id","mariselle",
"name","Mariselle",
"gender","female",
"respect",0,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:),
"events",(a:)
))
}{
(set:$npcs_men to (dm:
"dredd", (dm:
"id", "dredd",
"name", "Dredd",
"img", "img/npc/guys/dredd/portrait_normal.jpg",
"img dir", "img/npc/guys/dredd/portrait_",
"events", (a:)
), "bruce", (dm:
"id", "bruce",
"name", "Bruce",
"sex name", "Bruce",
"img", "img/npc/guys/bruce/portrait_normal.jpg",
"img dir", "img/npc/guys/bruce/portrait_",
"events", (a:)
)
))
(display:"initialize bruce npc traits")
(display:"initialize stepdad npc traits")
}{
(set:_temp to 0)
(set:$relationships's gabbie to (dm:
"id","gabbie",
"name",(text:"name" of $npcs's "gabbie"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:),
"events",(a:)
))
(set:$relationships's leah to (dm:
"id","leah",
"name",(text:"name" of $npcs's "leah"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:),
"events",(a:)
))
(set:$relationships's harley to (dm:
"id","harley",
"name",(text:"name" of $npcs's "harley"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:),
"events",(a:)
))
(set:$relationships's kendra to (dm:
"id","kendra",
"name",(text:"name" of $npcs's "kendra"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:),
"events",(a:)
))
(set:$relationships's "gabbie while female" to (dm:
"id","gabbie",
"name",(text:"name" of $npcs's "gabbie"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:"while on xchange"),
"events",(a:)
))
(set:$relationships's "leah while female" to (dm:
"id","leah",
"name",(text:"name" of $npcs's "leah"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:"while on xchange"),
"events",(a:)
))
(set:$relationships's "harley while female" to (dm:
"id","harley",
"name",(text:"name" of $npcs's "harley"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:"while on xchange"),
"events",(a:)
))
(set:$relationships's "kendra while female" to (dm:
"id","kendra",
"name",(text:"name" of $npcs's "kendra"),
"gender","female",
"respect",_temp,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:"while on xchange"),
"events",(a:)
))
}{<div id="his-pleasure-bar"><div class='his_pleasure_bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>(if:$scene_type is "ff")[💦](else:)[🍾]</div></div>(display:"update his pleasure")}{<div id="his-pleasure-bar-2nd"><div class='his_pleasure_bar_2nd' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>(if:$scene_type is "ff")[💦](else:)[🍾]</div></div>(display:"update his pleasure 2nd")}{<div id="his-pleasure-bar"><div class='his_pleasure_bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>(if:$scene_type is "ff")[😈](else:)[😈]</div></div>(display:"update his horniness")}(print:'<tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(205, 92, 92, 1) 0%,rgba(205, 92, 92, 1) 100%);background-size:' + (text:(round:($his_satisfaction/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + (text:$his_satisfaction) +' 😋</td></tr>')(print:'<tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(175, 225, 175, 1) 0%,rgba(175, 225, 175, 1) 100%);background-size:' + (text:(round:($noise_level/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + (text:$noise_level) +' 🗣️</td></tr>')(replace:?right_screen)[(display:"location and time contents")]{
($centered:[(if:$current_location_icon is 0)[(color:$palette_colors's 3rd)[*$current_location*]](else:)[(print:$current_location_icon)]])
}{
(display:"day display")(display:"location")
<div class='center'>[]<right_options|[]<outfit_button|(display:"outfit button")(display:"refresh portrait")</div>
}(replace:?right_screen)[(display:"day display")(display:"location")<div class='center'>[(display:"save game button")]<right_options|[]<outfit_button|(display:"outfit button")(display:"refresh portrait")</div>](replace:?right_screen)[(display:"day display")(display:"location")<div class='center'>[(display:"inventory buttons")(nl:1)(display:"wardrobe buttons")(nl:1)(set:_link to "Plan")(if:$location_params contains "pause screen option")[(set:_link to $location_params's "pause screen option")](link:_link)[(goto:"pause screen")](nl:1)]<right_options|[]<outfit_button|</div>(display:"outfit button")(display:"refresh portrait")](replace:?right_screen)[(display:"day display")(display:"location")<div class='center'>[(display:"inventory buttons")(nl:1)(set:_link to "Plan")(if:$location_params contains "pause screen option")[(set:_link to $location_params's "pause screen option")](link:_link)[(goto:"pause screen")](nl:1)]<right_options|[]<outfit_button|</div>(display:"outfit button")(display:"refresh portrait")](replace:?right_screen)[(display:"day display")(display:"location")
<div class='center'>[(display:"inventory buttons")(nl:1)]<right_options|[]<outfit_button|</div>(display:"outfit button")(display:"refresh portrait")](replace:?right_screen)[(display:"day display")(display:"location")<div class='center'>[(display:"inventory buttons")(nl:1)(display:"wardrobe buttons")(nl:1)]<right_options|[]<outfit_button|</div>(display:"outfit button")(display:"refresh portrait")](replace:?right_screen)[($centered:[(css:"font-size:3.5vmin")[<span class='shadow'>???</span>](nl:1)(if:$current_location_icon is 0)[(color:$palette_colors's 3rd)[$current_location]](else:)[(print:$current_location_icon)]])
<div class='center'>[]<right_options|(display:"refresh portrait")</div>](replace:?right_screen)[{(display:"day display")(display:"location")
(print:"<img class='greyborder' src='" + (text:$npc's "img") + "' width='100%' height=auto>")
<div class='options'>
(if:(datanames:$npc) contains "unfamiliar name")[
(if: not ($npc's "events" contains "name"))[
<span class='shadow'>
(print:$npc's "unfamiliar name")
</span>
](else:)[
<span class='shadow'>
(print:$npc's "name")
</span>
]
](else:)[
<span class='shadow'>
(print:$npc's "name")
</span>
]
</div>
<div class='options'>
|right_options>[]
</div>
<div class='options'>
|outfit_button>[]
</div>
(display:"outfit button")
(display:"refresh portrait")
}]{<div id="his-pleasure-bar"><div class='his_pleasure_bar' style='background: repeating-linear-gradient(
45deg,
rgba(255, 255, 255, 0.9),
rgba(255, 255, 255, 0.9) 40px,
rgba(255, 255, 255, 1) 40px,
rgba(255, 255, 255, 1) 80px
);'>💦</div></div>(display:"update her pleasure")}{(set:$her_pleasure to (min:$her_pleasure_max,$her_pleasure))(print: "<script>GE.updateHisPleasure(" + (text: $her_pleasure) + "," + (text:$her_pleasure_max) + ");")}(print:'<tr><td class="table-meter-color" style="width:540px; padding:0.25vmin;background-repeat:no-repeat;background-image:linear-gradient(90deg, rgba(205, 92, 92, 1) 0%,rgba(205, 92, 92, 1) 100%);background-size:' + (text:(round:($her_arousal/10) * 100)) +'%;background-position-x:left;text-align:center" data-raw="">' + (text:$her_arousal) +' 💗</td></tr>'){
(replace:?her_arousal_meter)[(display:"bar girl arousal")]
}{
(set:$her_pleasure to ($clamp:$her_pleasure,0,$her_pleasure_max))
(set:$her_arousal to ($clamp:$her_arousal,0,10))
}(replace:?right_screen)[{
(print:"<img class='greyborder' src='" + (text:$npc's "img") + "' width='100%' height=auto>")
<div class='options'>
(if:(datanames:$npc) contains "unfamiliar name")[
(if: not ($npc's "events" contains "name"))[
<span class='shadow'>
(print:$npc's "unfamiliar name")
</span>
](else:)[
<span class='shadow'>
(print:$npc's "name")
</span>
]
](else:)[
<span class='shadow'>
(print:$npc's "name")
</span>
]
</div>(color:$palette_colors's 3rd)[
(display:"her pleasure meter")
(nl:1)
[(display:"bar girl arousal meter")]<her_arousal_meter|]
(nl:1)
<div class='options'>
|right_options>[]
</div>
<div class='options'>
|outfit_button>[]
</div>
(display:"outfit button")
(display:"refresh portrait")
}]{
(twirl:"His cock isn't out yet.",
"You haven't unzipped his pants yet.",
"You haven't seen his schlong yet.",
"You've yet to spot his meat missile.",
"He hasn't unveiled his pussy pounder yet.",
"His cock is still covered.",
"You haven't uncovered his cock.",
"His meat missile is still in his pants.",
"His zipper is still up.",
"You haven't unzipped his pants yet.",
"You don't know his dick size, yet.",
"His pants are still zipped up.")
}(replace:?right_screen)[{<!-- show tooltip for guy's schlong stats-->
(unless:$npc contains "ballsize")[(print:"<img class='greyborder' src='" + (text:$npc's "img") + "' width='100%' height=auto>")](else:)[($show_tooltip:[(print:"<img class='greyborder' src='" + (text:$npc's "img") + "' width='100%' height=auto>")],
[(if:$npc's "cock" is "out")[Cock Stats:
🍆 Girth: (text:(cock:"girth","npc")) / 10 🍆
📏 Length: (text:(cock:"length","npc")) / 10 📏
🍒 Balls size: (text:(cock:"balls","npc")) / 10 🍒](else-if: $npc's "cock" is "not out")[*(display:"cock not out yet text")*]
])]<div class='options'>
(if:(datanames:$npc) contains "unfamiliar name")[
(if: not ($npc's "events" contains "name"))[
<span class='shadow'>
(print:$npc's "unfamiliar name")
</span>
](else:)[
<span class='shadow'>
(print:$npc's "name")
<span>
]
](else:)[
<span class='shadow'>
(print:$npc's "name")
</span>
]
</div>
|his_stats>[
(display:"his pleasure meter")
<table>
<tbody>
|his_satisfaction>[
(display:"his satisfaction meter")
]
</tbody>
</table>
]
<div class='options'>
|right_options>[]
</div>
<div class='options'>
|outfit_button>[]
</div>
(display:"outfit button")
(display:"refresh portrait")
}]{(live:1s)[(display:"update his pleasure")(stop:)](live:3s)[(replace:?his_stats)[<table><tbody>(display:"his pleasure meter")(display:"his satisfaction meter")</tbody></table>](stop:)]}{
(if:$character's "temp pill" is "true" and not ($outfit's tags contains "temp"))[(set:$outfit_button to "dont show")(replace:?outfit_button)[]](else:)[
(if:(is_fem:))[(live:0.1s)[(unless:$next is "day")[(replace:?outfit_button)[
(unless:(datanames:$outfit) contains "image")[(display:"apply mens clothes")](else:)[(if:$outfit_button is "show outfit")[(link:"Portrait")[(display:"click")(set:$outfit_button to "dont show")(display:"refresh portrait")(display:"outfit button")]](if:$outfit_button is "dont show")[(link:"Show Outfit")[(display:"click")(set:$outfit_button to "show outfit")(display:"refresh portrait")(display:"outfit button")]]]]](stop:)]]]
}{
(set:$outfit_button to "dont show")(display:"refresh portrait")
}{
(unless:(is_male:))[(set:$outfit_button to "show outfit")](display:"outfit button")
}{(rerun:?portrait)}{(if:$character's status is "dream")[(print:"<img class='border' src='img/characters/dream/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](else:)[(if:(is_fem:) and $outfit_button is "show outfit" and (datanames:$outfit) contains "image")[(display:"display outfit")](else:)[(replace:?portrait)[(if:$character's "temp pill" is "true")[(print:"<img class='greyborder' src='img/characters/temp/" + (text:$temp_pill's "id") + "/normal.jpg' width='100%' height=auto>")](else-if:(is_male:))[(display:"male portrait")](else:)[(if:$hairstyle is 0 or not (($character's status) is "female"))[(print:"<img class='border' src='img/characters/" + $character's "status" + "/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")](else:)[(print:"<img class='border' src='img/characters/hairstyle/" + $hairstyle + "/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")]]]]]}{(if:$character's status is "dream")[(set:$your_portrait to "characters/dream/" + (text:$character's "id") + ".jpg")($pic:$your_portrait)](else:)[(if:(is_fem:) and $outfit_button is "show outfit" and (datanames:$outfit) contains "image")[(display:"get portrait")($show_tooltip:[(print:$outfit's image)],[(if:(is_nude:))[You're naked.](else:)[(display:"outfit items")]])](else:)[(display:"get portrait")(if:(is_fem:))[($pic:$your_portrait)]]]}{(if:$character's "temp pill" is "true")[(set:$your_portrait to "characters/temp/" + (text:$temp_pill's "id") + "/normal.jpg")](else-if:(is_male:))[(display:"male portrait")](else:)[(if:$hairstyle is 0 or not ((a:"female","bimbo") contains $character's "status"))[(set:$your_portrait to "characters/" + $character's "status" + "/" + (text:$character's "id") + ".jpg")](else:)[(set:$your_portrait to "characters/hairstyle/" + $hairstyle + "/" + (text:$character's "id") + ".jpg")]]}{(set:$his_pleasure to (min:$his_pleasure_threshold,$his_pleasure))(print: "<script>GE.updateHisPleasure(" + (text: $his_pleasure) + "," + (text:$his_pleasure_threshold) + ");")}{(print: "<script>GE.updateHisPleasure2nd(" + (text: $his_pleasure_2 ) + "," + (text:$his_pleasure_threshold_2) + ");")}{(display:"secretary coworker init horniness")(set:$npc's "horniness" to (min:10,(max:0,$npc's "horniness")))(print: "<script>GE.updateHisPleasure(" + (text: $npc's horniness) + "," + (text:10) + ");")}{
(replace:?his_satisfaction)[(display:"his satisfaction meter")]
}{
(set:$petname to (twirl:"girl","babe"))
(if:$npc's "generation" is "genx")[(set:$petname to (twirl:"toots","love","girl","hun","cutie","girlie"))]
(if:$npc's "tags" contains "chad")[(set:$petname to $your_name)]
(if:$npc's "tags" contains "fuckboy")[(set:$petname to (twirl:"babygirl","babe","slut"))]
(if:$npc's "tags" contains "annoying")[(set:$petname to (twirl:"slut","ho","girl","babe","babygirl"))]
}{==
(set:$your_name to $character's "female name")
(set:$used_petname to "false")(set:$options to (a:$your_name))
(if:(datanames:$npc) contains "petname")[(set:$options to it + (a:$npc's petname))]
(unless:$npc's "tags" contains "nerd" or $npc's "age" < 23)[(set:$options to it + (a:(twirl:"girl","babe")))]
(if:$npc's "generation" is "genx")[(set:$options to it + (a:(twirl:"toots","love","girl","hun","cutie","girlie")))]
(if:$npc's "tags" contains "fuckboy")[(set:$options to it + (a:(twirl:"babygirl","babe","slut")))]
(if:$npc's "tags" contains "annoying")[(set:$options to it + (a:(twirl:"slut","ho","girl","babe","babygirl")))]
(set:$options to (twisted:...$options))
(print:$options's 1st)(if:(datanames:$npc) contains "petname")[(if:$options's 1st is $npc's petname)[(set:$used_petname to "true")]]{
(set:$girl's traits to it +
(cond:
$girl's traits contains "feminist",(a:),
$girl's traits contains "feminine",(a:),
(a:(twirl:"feminist","likes assertive","likes assertive"))
)
)
(set:$girl's traits to it +
(cond:
$girl's traits contains "rich",(a:),
$girl's traits contains "sporty",(a:),
$girl's traits contains "nerdy",(a:),
$girl's traits contains "feminine",(a:),
$girl's traits contains "bimbo",(a:),
(a:(twirl:"rich","sporty","nerdy","feminine","bimbo"))
)
)
(set:$girl's traits to it +
(cond:
$girl's traits contains "bitch",(a:),
$girl's traits contains "slut",(a:),
$girl's traits contains "kind",(a:),
$girl's traits contains "religious",(a:),
(a:(twirl:"bitch","slut","kind","religious"))
)
)
(set:$girl's traits to it +
(cond:
$girl's traits contains "pill",(a:),
$girl's traits contains "no pill",(a:),
(a:(twirl:"pill","no pill"))
)
)
(if:$girl's "tags" contains "widescreen")[
(set:$girl's "image" to "<img class='greyborder' src='img/npc/girls/" + $girl's "location" + "/" + $girl's "variant" + " image.jpg' width='100%' height=auto>")
](else:)[
(set:$girl's "image" to "<div class='top_left_pic'><img class='greyborder' src='img/npc/girls/" + $girl's "location" + "/" + $girl's "variant" + " image.jpg' width='100%' height=auto></div>")
]
(if:$girl's "tags" contains "non-interactive")[
(set:$girl's "portrait" to "")
](else:)[
(set:$girl's "portrait" to "img/npc/girls/" + $girl's "location" + "/" + $girl's "variant" + " portrait.jpg")
]
(set:$girl's name to (cond:$girl's race is "asian" and (twist:1,2) is 1,(twirl:"Mei Ling", "Yuna", "Hana", "Sakura", "Lily", "Aiko", "Jade", "Akiko", "Yumi", "Naomi", "Suki", "Haruka", "Amy", "Kyoko", "Mia", "Sophie", "Asuka", "Miko", "Chloe", "Ava", "Yoshiko", "Ella", "Emi", "Kira", "Rin", "Ayumi", "Emily", "Haruki", "Sayuri", "Harper", "Misaki", "Vivian", "Saya", "Izumi", "Madison", "Keiko", "Aya", "Nina", "Yuri", "Nanami", "Ami", "Lucy", "Hikari", "Miku", "Hina", "Serena", "Sora", "Amelia", "Rika", "Airi", "Risa", "Nao", "Emma", "Maya", "Rei", "Yuka", "Momoka", "Yuki", "Riko", "Moe", "Maki", "Shiori"),
$girl's race is "latin",(twirl:"Sofia", "Isabella", "Camila", "Valentina", "Gabriela", "Mia", "Natalia", "Lucia", "Bianca", "Maria", "Adriana", "Eva", "Sara", "Alejandra", "Jasmine", "Amelia", "Catalina", "Ximena", "Carolina", "Esmeralda", "Daniela", "Luna", "Rosa", "Elena", "Ariadna", "Isabel", "Melanie", "Alicia", "Paula", "Mariana", "Emma", "Violeta", "Ana", "Julieta", "Angelica", "Valeria", "Liliana", "Diana", "Olivia", "Fernanda", "Regina", "Marina", "Luisa", "Beatriz", "Renata", "Aurora", "Clara", "Yasmin", "Karla", "Miranda", "Selena", "Celia", "Ines", "Leila", "Alba", "Lola", "Tatiana", "Paloma"),
$girl's race is "black",(twirl:"Aaliyah", "Imani", "Jasmine", "Tiana", "Nia", "Zoe", "Brielle", "Kyla", "Aria", "Malia", "Naomi", "Kendra", "Keisha", "Zuri", "Amara", "Laila", "Sasha", "Tasha", "Tiara", "Maya", "Ashley", "Crystal", "Desiree", "Ebony", "Harmony", "Jada", "Kiana", "Layla", "Monique", "Nevaeh", "Raven", "Serena", "Tanya", "Vanessa", "Whitney", "Yasmine", "Destiny", "Kenya", "Aisha", "Chloe", "Diana", "Tatiana", "Kira", "Makayla", "Gabrielle", "Alexis", "Brianna", "Trinity", "Paris", "Autumn", "Heaven", "Sierra", "Angelina", "Janelle", "Talia", "Ariel", "Jordyn", "Alana", "Bianca", "Kelsey", "Latoya", "Ebiora"),
$girl's race is "indian",(twirl:"Aishwarya", "Priya", "Anika", "Neha", "Diya", "Pooja", "Riya", "Anushka", "Kavya", "Sonal", "Naina", "Radha", "Aanya", "Tara", "Isha", "Nidhi", "Aarushi", "Shreya", "Mira", "Sara", "Sanya", "Sanjana", "Ayesha", "Rani", "Aditi", "Jaya", "Sakshi", "Anjali", "Simran", "Nisha", "Mina", "Mala"),
(twirl:"Emma", "Sophia", "Ava", "Olivia", "Madison", "Chloe", "Mia", "Emily", "Abigail", "Avery", "Ella", "Scarlett", "Grace", "Isabella", "Amelia", "Aria", "Lily", "Zoe", "Hazel", "Hailey", "Addison", "McKinley", "Paisley", "Brooklyn", "Aubrey", "Bella", "Claire", "Layla", "Natalie", "Piper", "Harper", "Evelyn", "Lucy", "Autumn", "Julia", "Sophie", "Alice", "Ruby", "Ivy", "Penelope", "Sierra", "Willow", "Aurora", "Quinn", "Sadie", "Stella", "Fiona", "Lila", "Lydia", "Violet", "Mila", "Nova", "Harlow")))
}{
(set:_description to $girl's variant of (dm:
"1",(dm:
"loser","You eye a sexy Latina doing yoga - fuck, she's so hot... way out of your league...",
"male","You watch a voluptuous Latina, as she flows form one yoga pose to another ,her massive, sweaty melons barely contained by her sports bra. Fuck, she's hot...",
"masc","You notice a Latina in a teal sports bra, executing her yoga routine with an effortless grace. Where once your eyes might have zeroed in on her cleavage, now you find yourself admiring the fluidity of her movements, the toned muscles working beneath her skin, even as a little echo of your old desires tries to stir within you. She smiles at you.",
"female","You notice a Latina practicing yoga - she looks SO good in her teal sports bra and black yoga pants. Did she come to the gym with a full face of makeup???"),
"2",(dm:
"loser","Your gaze lingers just a little too long on a stunning Latina perfecting her Downward-Facing Dog pose, her sports bra barely containing her glistening cleavage... You can't help but notice the subtle camel toe as her ass faces you...",
"male","You can't tear your eyes away from the fucking gorgeous Latina in a sports bra, as she does some yoga poses. The juicy outline of her pussy lips against the fabric of her leggings has you picturing all kinds of sexy scenarios with her... yum.",
"masc","You observe a well-put-together Latina executing a flawless Upward Bow pose, admiring her flexibility and poise. The way her leggings conform to her pussy lips you feeling oddly conflicted, you aren't as turned on as you were as a man...",
"female","You admire the Latina's form as she flows from Tree pose to Standing Split, enviable control in each movement. Her outfit is on-point, but you can't help wondering if she's aware of the cameltoe she's sporting! Is it intentional?"),
"3",(dm:
"loser","You watch the Asian girl on the stairmaster, her chest heaving with effort, and you fantasize about offering her a towel, just for an excuse to talk to her...",
"male","The sight of an Asian girl's HUGE, pale tits jiggling in her black sports bra is like a scene straight out of a porno. Each step she takes sends a little thrill through you and you imagine cupping those bouncing, sweat-slick breasts. Fuck!",
"masc","You can't help but notice the adorable Asian girl's flushed cheeks as she wipes sweat from her brow, her determined workout on the stairmaster painting her in an unexpectedly erotic light. Though as a guy, your cock probably would have been bursting out of your pants... but now... she's still HOT. Definitely. But just... it's different!",
"female","You smile back at the Asian girl on the stairmaster, her face flushed with exertion. Her dedication is impressive, even if her sports bra seems to have a battle of its own against her jiggling titties."),
"4",(dm:
"loser","You can't but envy the yoga ball as a blonde bombshell contorts herself around it, her huge tits squashing together in an almost obscene display of flexibility and sexuality. Tucking that ball between her thighs, she seems to be winking at you with every sultry stretch...",
"male","A blonde goddess on the yoga ball draws every ounce of your attention as she bends and arches, her tits mashed together in a cleavage that screams 'come hither.' The way she wiggles her ass, sticking it up in the air during her Downward Dog, it's like she's putting on a show just for you...",
"masc","Your eyes are drawn to the blonde using the yoga ball, and while part of you responds to her seductive display, another part appreciates the sheer athleticism. Watching her transition into a Bridge pose, you can't help but admire her strength, even as the sight of her juicy tits pressing together makes you recall what you used to crave.",
"female","You watch a blonde beauty with her yoga ball, and you're torn between admiration and a hint of amusement. She's stunning - absolutely - but the way she's flaunting her assets for the guys is so overtly sexual it's almost funny. Then again, she's just embracing her sexuality, power to her..."),
"5",(dm:
"loser","The MILF on the treadmill has an ass that jiggles with every step, and you imagine what it would be like to be those running shorts, clinging to her flesh. Her cheeks clap together, and you're almost certain she can feel your eyes on her... if only you had the courage to approach a woman like that...",
"male","You're mesmerized by the MILF's fat ass as she runs, the sound of her cheeks clapping together almost drowns out the gym's music. You can see the outline of her ass cheeks hanging out of her little pink shorts, begging to be grabbed, and it's all you can do not to march over there and give her backside a nice spank.",
"masc","The woman on the treadmill has a big, bouncing ass that's hard to ignore, and though you feel a twinge of lust, it's different now. You find yourself focusing more on her form, the determined set of her shoulders, even as her ass puts on a show that once would have had you pitching a tent in your pants...",
"female","The mom running in front of you is a sight to behold - her ass has a life of its own. You can't help but think that her running shorts are a bold choice, leaving little to the imagination, and you wonder if she's aware of the admiring (and envious) glances she's drawing..."),
"6",(dm:
"loser","You watch the elegant blonde at the weights, her form perfect, every squat a lesson in poise. You're awestruck by her beauty, and how her ass looks as she bends - it's like a sculpted work of pure sex art that makes your palms sweat just from looking... she's so hot...",
"male","The blonde bombshell at the squat rack is a wet dream come to life, her ass perfectly rounded and her tits glistening with sweat. You can't help but picture those ass cheeks spread wide as she drops down for another squat, and you're half-tempted to offer to spot her - for safety, of course...",
"masc","The blonde doing squats has a fine ass and you admire her technique, each rep executed with an elegance that's almost as captivating as her body. There's a sheen of sweat that makes her skin glow. Damn she looks good!",
"female","You can't help but be impressed by the blonde's squat form, she's clearly a regular. Her pink sports bra is cute, and you notice the subtle way she wipes the sweat from her brow - it's all so composed. She's the embodiment of gym goals..."),
"7",(dm:
"loser","Two Latinas doing yoga seem to be having their own private party, their big asses in tight leggings making you wish you could join them. The one in pink keeps giggling with her friend, clearly aware of the eyes on her. You're sure they're talking about all the poor schmucks who can't help but stare...",
"male","Watching the Latina yoga duo, you're struck by their perfectly sculpted big asses as they transition from one suggestive pose to another. The pink-clad one is particularly hot, her thick lips breaking into giggles as she whispers something to her friend.",
"masc","The Latina pair practicing yoga have a routine that's almost choreographed seduction, their big asses the stars of the show. Even though part of you appreciates the aesthetics, you can't help but feel like their whispered giggles and shared glances are about the unintended peep show they're putting on.",
"female","You notice two Latinas, clearly friends, moving through their yoga poses. Their choice of tight leggings definitely accentuate their big asses... As a woman, it's obvious they're enjoying their workout, but you wonder if they realize just how much of a show they're putting on for everyone else..."),
"8",(dm:
"loser","The girl doing HIIT cardio looks like she's about to burst out of her top, her massive pale tits threatening to free themselves with every bounding leap. As she sprints back and forth, you're half-convinced she's doing it just to flaunt that sideboob, and you can't look away... damn, if only you could get a girl like that...",
"male","You find an amazing vantage point to watch a girl with big jiggling tits doing her HIIT cardio. Every jiggle of her big, sweaty melons... FUCK!!! There's so much sideboob...",
"masc","Your attention is stolen by a brunette in the midst of some intense HIIT cardio, her massive tits spilling out the sides of her bra. It's a sight that definitely sparks some of your old male desires, but there's also an appreciation for her commitment to fitness - even if her outfit is doing her no favors in the modesty department...",
"female","You catch sight of a girl whose workout intensity is matched only by the amount of sideboob she's showing. You're torn between being impressed by her lack of self-consciousness and worried that she might be one leap away from a total wardrobe malfunction..."),
"9",(dm:
"loser","The girl at the squat rack, with her pink hair and ample cleavage, is an absolute vision. You're convinced she's some kind of fitness model, each squat a pose that shows off her slender, athletic frame... God, if only you had the guts to talk to her...",
"male","Your gaze locks onto the pink-haired beauty repping out squats, her tits damn near spilling from her green bra. Each dip and rise has a sensuality that's hard to ignore and you imagine stepping up behind her, being her spotter... in more ways than one...",
"masc","You can't help but also notice the way a pink-haired girl's sports bra frames her tits as she does reps. There's definitely a residual interest you're still trying to navigate...",
"female","You watch the woman with pink hair at the squat rack, secretly admiring her dedication and the way her green sports bra and ponytail make her look like a fitness ad. You're amazed by her form and can't help but feel a little envious. Does she wake up looking that perfect?"),
"10",(dm:
"loser","A brunette goddess doing weights is straight out of a dream, her beauty so breathtaking it feels untouchable - like she's from a higher plane of existence. You can't help but marvel at the way her top-notch form has her looking like she's posing for a fitness magazine with every rep...",
"male","There's no escaping the sexiness of the brunette bombshell doing weights. Her body glistens with sweat, her big tits heaving as she leans forward, a testament to the raw beauty of the female form. You're half-tempted to offer her a wipe down - purely out of chivalry, of course...",
"masc","The brunette working on her weights looks too damn good, like she's stepped right off a magazine cover. Her form is impeccable, and even though you should be focusing on your own workout, you can't help but admire her flawless execution and the sheen of sweat that highlights every curve.",
"female","The stunning brunette lifting weights catches your eye, not only because of her beauty but also her impressive technique. You can't help but notice how put-together she looks - as if she's just had her hair done instead of lifting weights. You wonder if she's one of those rare women who genuinely wake up this gorgeous, or if it's all a meticulously crafted gym look that she has to wake up way too early for..."),
"11",(dm:
"loser","Watching a Latina bombshell on the treadmill, her massive tits bouncing, you're frozen with a mix of awe and desire. She's sweating all over, and in your daydreams, In your daydreams, you're wishing you were the one to offer her a cool down...",
"male","The Latina on the treadmill is a feast for the eyes, those huge tits of hers could motivate any man to run a marathon! Each jiggle stirs explicit fantasies of fucking those sweaty, heaving breasts until you hose them down with your cum...",
"masc","You catch a Latina mid-stride, her large breasts a testament to the strength of her poor sports bra. There's a nostalgic twinge of desire, but it's caught up in a newer, deeper appreciation for her stamina and beauty...",
"female","The Latina's pink sports bra is definitely struggling to contain her, uh, 'enthusiasm,' and you're wondering where she found one that could even ATTEMPT the job. You admire her energy – those boobs must be a workout themselves..."),
"12",(dm:
"loser","You gaze at a blonde, her medium tits and the way her sports bra clings to her as she's pounding the treadmill. It's mesmerizing, her body's rhythmic motion - something to fantasize about long after you leave the gym...",
"male","The blonde on the treadmill is a sight that brings your cock to life. With each bounce of her tits, you're concocting vivid daydreams of your cock sliding between that tight sports bra and leaving her with more than just a sweat sheen... nngh...",
"masc","A blonde woman's steady cardio has you pausing; you're drawn not just to the bounce of her tits but the focused look of determination on her face. It's a powerful draw, that blend of beauty and ambition...",
"female","The determination radiating off the blonde is impressive. You find yourself both envying her form, and wanting to ask for her workout playlist; there's a positivity in her tireless hustle you wish you could just bottle..."),
"13",(dm:
"loser","You spot an angel on the elliptical, hair in a perfect ponytail, perky tits bouncing to a rhythm that you wish you could compose. But ultimately, you're just a moth to her flame...",
"male","You've got a perfect view of Miss Perfect on her elliptical, a bouncy ponytail and even bouncier tits that hypnotize you with every stride. Her tits jiggling in that tight pink top has you imagining tracing the line of sweat that runs down her collarbone to her cleavage...",
"masc","There's a fun-looking girl on the elliptical, her face a light in the gym. Plus, a decent number of male admirers. You're remembering how you'd once ogle, and though the sight of her lithe body still appeals, it's now her vibrant energy you find yourself envying...",
"female","A brunette's energetic vibe on the elliptical is infectious, the way her tits hold perky despite the workout. You appreciate the joy she brings into the gym; you've got kind of a girl-crush, imagine being workout buddies!"),
"14",(dm:
"loser","You spot a slender girl working her abs, every flex showing off her toned tummy. It's hard not to stare and imagine those arched brows raising in surprise as you approach... not that you ever would...",
"male","The girl with abs for days is catching everyone's eye, yours included. You imagine her whispering in your ear with those plumped lips, her lean body pressing against you as you both get a more 'private' workout... fuck - imagine cumming on those washboard abs! That would be awesome.",
"masc","You can't help but respect the dedication of the girl with abs like that. It's clear she works hard for her body, and even though her pouty lips suggest... other workouts, it's her strength you find yourself admiring...",
"female","Everyone else might be looking at her abs, but it's her perfectly arched brows and thick lips that have you doing a double-take. You wonder if it's the result of a skilled makeup artist or a really good filler - either way, she’s clearly mastered the gym glam look..."),
"15",(dm:
"loser","You're captivated by the cute Asian girl handling weights like she's born for it. Her medium-sized tits, pressed together in her black sports bra, leave little to the imagination - and that pussy mound visible when she squats down, damn...",
"male","A sexy Asian chick is curling dumbbells; her form is impeccable, but it's the way her tits squeeze together that has your cock throbbing. Every time she dips low for a squat, that pussy mound is on full display - makes you want to slip between those leggings and feel just how tight she is...",
"masc","The focus this Asian girl has while lifting weights is impressive - she's definitely got this down to an art. Your old self might have stared a bit too long at her tits or the subtle mound of her pussy under her leggings, but now it's her dedication that really draws you in...",
"female","This Asian girl's weightlifting routine is seriously inspiring. Her black sports bra may be practical, but it's doing wonders for her cleavage. And wow, her thighs are solid - you've got to hit the squat rack more often if that's the result..."),
"16",(dm:
"loser","You can't peel your eyes away from the brunette jogging on the treadmill. Every jolly jiggle and clap of her ass cheek is hypnotic; she looks back, and you quickly avert your gaze, your cheeks burning in shame...",
"male","Fuck, that brunette's ass is mesmerizing; you imagine shutting off her treadmill and hotdogging between those cheeks – see if she can keep that rhythm while you're buried in her. She catches you staring, and you shoot her a wink, daydreaming about her reaction when you fill her...",
"masc","The brunette on the treadmill is making it difficult to focus; her ass is a tantalizing performance all on its own. When she looks back and catches you watching, there's a jolt of what used to be sexual excitement, now mixed with a dash of second-hand embarrassment...",
"female","A brunette on the treadmill has an ass that won't quit, and the way she looks back suggests she knows it. You make a mental note to ask her where she got those flattering leggings, though part of you is dying to know her squat routine..."),
"17",(dm:
"loser","The blonde in what's basically a bikini is doing yoga, and damn if her ass isn't the star of the show. As she settles into Child's Pose, you can't help but wish yoga etiquette included jumping into the pose behind her...",
"male","A blonde bimbo, stretching in the skimpiest workout gear you've ever seen, is begging for attention. She's spreading wider in Downward Dog, and the image of her tits dangling and her ass invitingly open has you daydreaming of plowing her right there on the mat, leaving her dripping more than just sweat...",
"masc","You try not to stare at the blonde practically doing yoga nude, her juicy tits and ass on full display. She catches your eye and winks from between her legs, and there's an awkward mix of mild arousal and disbelief - yeah, she's hot, but is the free show really necessary at the gym?",
"female","That blonde is bold, doing yoga in what's essentially underwear. You're wondering if her outfit choice is empowering or just incredibly inconvenient, but either way, she's owning it. Maybe a bit of both? The confidence is kind of contagious..."),
"18",(dm:
"loser","The ripped Asian girl is sculpted like a marble statue; her body a showcase of the gym's finest handiwork. You imagine the still-soft places on her hard body; it's intimidating, yet you can't stop wondering what she would feel like under your touch...",
"male","The super-fit Asian has muscles you didn't know a girl could have. Watching her sweat as she powers through advanced ab crunches, you can practically imagine your cum painted across her ripped body. Would she moan, or just turn around and kick your ass?",
"masc","She's not just fit; she's warrior-fit. While she crunches her abs, you can see every muscle rippling; it's stunning, really.",
"female","This Asian powerhouse makes the advanced ab exercises look easy. Her abs are goals, and her entire routine has you considering leveling up your fitness game. She's sweating profusely, but rather than looking messy, it only serves to emphasize the definition of her muscles even more..."),
"19",(dm:
"loser","There she is, an Asian enchantress rhythm cycling. You watch, envying that seat as her bouncy tits give a mesmerizing performance to the beat and her firm ass taps back onto it. You'd want her riding you, if only you had the nerve...",
"male","The rhythm cycling Asian beauty has your cock throbbing as you imagine her riding you, her tits bouncing to the beat. Her ass taps back onto the bike seat, and you're picturing it bouncing on you instead...",
"masc","There's something hypnotic about the asian girl's rhythm cycling - her focus is razor-sharp, and you wonder if she's like that in bed too. You're not as turned on as you used to be, but you can appreciate her form - and damn, those tits are super big...",
"female","You can't help but admire the asian girl's form as she cycles. Her tits manage to defy gravity, dancing and jiggling with each pedal. Makes you consider taking up cycling!"),
"20",(dm:
"loser","The asian girl doing yoga, hands, and knees, ass in the air... it's like she's presenting just for you. You're almost too intimidated to even look, but you can't help it; her tits dangling beneath her, both an invitation and a reminder of your own inadequacy...",
"male","Yoga's never looked hotter than with this asian beauty, her tits hanging ripe, her ass high and proud. You imagine sliding in right there, testing her flexibility, seeing just how those tits would bounce when she's on top, fulfilling every one of your deep, dirty desires...",
"masc","She's serious about her yoga, the asian woman's tits perfectly outlined, her ass practically begging for attention. You remember the old impulse to take her then and there, but now it's more like a passing thought, less urgent but still appreciative...",
"female","The asian girl is a vision in her yoga pose, focused and serious. You wonder if she knows just how amazing she looks, her tits so beautifully shaped, her ass so invitingly upturned. You almost want to compliment her, or ask for her routine..."),
"21",(dm:
"loser","The posing muscular asian girl is intimidating as hell, every ripple and curve a silent declaration of her superiority. You're swept up in her grace, imagining being strong enough to handle a woman like that... if only you were worth her time...",
"male","Her muscles ripple as she poses, every contraction a testament to her discipline. But beneath that athletic power, there's a feminine softness you'd love to explore, to feel her flex and squeeze around you as you cum all over those toned mounds of perfection...",
"masc","It's hard not to be impressed by the muscular asian girl's physique. It's not just her strength that captivates you, it's the way she carries it with such undeniable femininity - something you'd have lusted after, but now you just want to know her routine...",
"female","You watch the asian girl posing, muscles defined, and can't help but feel a mix of awe and a smidgen of intimidation. She's stunning, absolutely, carrying power and grace in every line of her body. You idly wonder if she competes professionally..."),
"22",(dm:
"loser","The blonde stretching catches your eye, her fat ass, and juicy tits clothed in nothing but sports underwear. She looks back, and you quickly look away, your heart racing...",
"male","The stretching blonde with the fat ass checks you out as she bends over, her tight workout panties barely covering those plump cheeks, your mind flooding with all the lewd things you'd do to her, given half a chance. You give her a smile, playing it cool as you imagine her moaning beneath you...",
"masc","You find yourself admiring the blonde's bold choice in workout apparel. The confidence it takes to stretch in practically panties is pretty admirable, and while part of you is still attuned to the provocativeness of it, you're more struck by her fearless self-expression...",
"female","Her blonde hair and arching eyebrows are striking even from this angle, and you notice her meticulous choice of workout thong. She's owning her workout wardrobe in a way you wish you had the confidence to. You take a discreet photo for... inspiration."),
"23",(dm:
"loser","You overhear the tanned latina's conversation about AI – she's out of your league; smart, gorgeous... But you can't stop daydreaming about her soft lips whispering intellectual nothings in your ear...",
"male","The smart-looking Latina catches your attention with her talk of AIs, but it's her body that has you sticking around. As she smiles over at you, you wonder what it'd be like to have those thick lips wrapped around your cock while discussing the complexities of artificial intelligence...",
"masc","She's engrossed in a tech-laden chat with her friend. Her intelligent eyes make you wonder; could you keep up with a conversation?",
"female","You catch a bit of the latina's conversation and can't help but get drawn in. She's talking with her friend about AI with such passion; it's endearing and attractive in equal measure. The tech nerd in you is bouncing with excitement to join in."),
"24",(dm:
"loser","The confident Latina is lifting weights like she owns the gym, her caramel tits straining against her sports bra. You watch her every move, her grunts making you squirm, imagining those strong hands gripping onto you instead of the weights...",
"male","Holy shit, the Latina with the perfect tits is killing it at the weight station. Her technique is spot-on, but all you can think about is feeling her muscles tense around you as she rides your cock, her tits bouncing in rhythm with her exertions...",
"masc","You're drawn to the Latina's technical prowess with her weight routine. While a part of you still recognizes how sexy she is, it's her focus and the intelligent glint in her eye that really has you intrigued by what she's like...",
"female","She's not just sporty, she's fierce. Every lift showcases her strength and those big tits of hers. You can't help but admire her..."),
"25",(dm:
"loser","You gaze, mouth agape, at the Latina with perhaps the most monumental ass you've ever seen. As she bends over to adjust her weights, your mind fills with visions of gripping those cheeks, even though you'd probably never have the guts to even speak to her...",
"male","The Latina with the ass that's a goddamn national treasure bends over, and you have to steady yourself on the bench. You're already picturing grabbing a handful of that and giving it a good smack, then plunging deep inside, watching every jiggle and quake as you fuck her senseless...",
"masc","An extraordinary Latina with a rear that defies gravity is commanding the weights area. It's not just the sight of her ass that gets a reaction from you, it's the way she's got everyone's eyes on her...",
"female","The Latina is all about that bass, no treble. You're a bit in awe of the way she rocks her workout panties, her confidence almost as big as her butt. She's a reminder that every body type has its own kind of sexy, and she's making you consider adding a few more glute workouts to your own routine..."),
"26",(dm:
"loser","A breathtakingly gorgeous brunette is doing weights nearby, and you can't look away from the cleavage her sports bra's showcasing.",
"male","Damn, that brunette with the big tits is doing weights, and every squat she does is a personal invitation for you to imagine her going down on you instead. Her intelligent brown eyes just add to the fantasy – a sexy brain and body combo that's just too fucking irresistible... and while you're at it, you imagine her sucking your cock. Yeah...",
"masc","A brunette with a body that could rival any fitness model's catches your eye. You appreciate the way her tits move with every rep, and there's still a part of you that wants to explore what's behind those knowing looks she gives...",
"female","That brunette is not just another pretty face; she's got the gym routine down pat. Her purple sports bra may be doing a lot of work, but those intelligent eyes of hers are clearly doing just as much – probably calculating her macros and her next business move between sets..."),
"27",(dm:
"loser","The influencer type on the treadmill is taking selfies, her thick lips probably touched up by a good surgeon – and you can't stop staring. She's got a vibe that's out of this world, but you're just an ordinary guy watching from afar...",
"male","You almost laugh as you watch the bimbo-type taking selfies while running. You'd love to see the look on her face when she realizes you're picturing her thick lips wrapped around your shaft instead of pouting for the camera...",
"masc","You see a girl on the treadmill, clearly into her own world of social media between sets. The part of you that remembers being a guy has to admire her multitasking, even if her incessant selfie-taking is a bit much...",
"female","She's on the treadmill with a phone in hand, probably posting to her thousands of followers. You find yourself wondering if her workout is for fitness or just for show."),
"28",(dm:
"loser","You're watching the Asian goddess at the squat rack. Each time she rises, her eyes lock with yours and you can feel a blush creeping up your neck – she's got the kind of body you usually just see in porn...",
"male","An Asian bombshell is at the squat rack, her tits and ass so perfect it's like she's built for porn. You can't help but fantasize about her looking back at you while you slam into her from behind, her entire body shaking with each thrust...",
"masc","Your gym session is suddenly more interesting thanks to the Asian girl doing squats. There's a fleeting thought of how hot she is, but these days you're more focused on matching her squat depth and form...",
"female","The Asian girl is killing it with the squats. It's impressive, and her glances over her shoulder have you wondering if she's just trying to keep her balance or if she's silently challenging you to step up your game too..."),
"29",(dm:
"loser","The white girl rhythm cycling in front of you has an ass that's pure sin, each plop onto the seat making you fantasize about being that bike.",
"male","Watching her ass work those bike shorts on the cycle has you hard as iron. You'd give anything to have her grinding on you like that, her ass clapping against your hips to the beat of some deep house track...",
"masc","She's in her own world, cycling to the rhythm, and the way her ass moves is almost mesmerizing. You remember that rush of male arousal you'd get at a sight like that, but now it's more like a curious twinge of appreciation for her energy...",
"female","Her cycling routine is killer, but it's those blue bike shorts that are doing all the heavy lifting, keeping that big ass of hers shaped perfectly."),
"30",(dm:
"loser","The muscled woman sipping her smoothie looks like she's just come down from Mount Olympus - out of reach, but oh so alluring. You're lost in thoughts of her muscles tightening around you, but that's probably all they'll ever be - thoughts...",
"male","There's something about a fit woman downing a smoothie that gets you going. Maybe it's imagining those strong hands gripping you instead of the cup, or the way her abs flex subtly with each sip...",
"masc","She's not just recovering; she's savoring her victory over the weights. Those defined muscles and the way she carries herself have you silently applauding - and feeling a bit envious too...",
"female","She's got the look of someone who knows their way around a gym, and the body to match. You watch her for tips and maybe a little inspiration for your own routine..."),
"31",(dm:
"loser","The hot lady with pink hair toweling off is a sight to behold. You're captivated by her every move, yet you feel utterly invisible to her...",
"male","The pink-haired hottie catching her breath is a dream in motion. For some reason, you're picturing her lips wrapped around your cock, as she looks up at you with those big doe-eyes...",
"masc","Her workout's done, but she's still glowing, and you can't help but notice - you're not sure what to make of the way your body responds... differently now...",
"female","You're both cooling down, but she's got a post-workout glow that makes you think of summer days and laughter. It's infectious."),
"32",(dm:
"loser","You're trying not to stare too hard at the pale girl with thick lips working the weights, but your eyes betray you. She's elegance and strength, and you feel way out of your league even looking at her! But, damn.",
"male","The pale girl with the plump lips handling those weights has you thinking about more than just her lifting technique. You'd love to see how that form translates to other... activities...",
"masc","She's got a technique to her weight routine that's impressive, and even though you're not staring the way you used to, you can't help but respect her dedication...",
"female","You're taking mental notes on her weightlifting. It's not just her form, it's her focus. There's a dedication there you aspire to..."),
"33",(dm:
"loser","The Asian girl's big ass is the stuff of legends. She knows it too, the way she poses and giggles, checking herself out. You're just the invisible man, dreaming of what it'd be like to be noticed by someone like her...",
"male","Her giggles echo in your mind as you picture that fat Asian ass jiggling from a good, hard spanking. She's the kind of girl who'd smirk at you in the mirror while you did it, egging you on...",
"masc","It's a stretch to say you're not at least a little attracted to her - that kind of confidence is magnetic. But the slutty vibe isn't QUITE what it used to be to you...",
"female","This girl is all about that gym selfie life. Whether she's more workout or show-off, you can't deny she's nailed the art of the gym thirst trap..."),
"34",(dm:
"loser","The brunette's stretching is like a siren call, her round butt outlined so perfectly in her grey sweats. You see the hint of camel toe and your mind wanders to places it shouldn't—too bad you'll never have the courage to even say hi...",
"male","Morning yoga never looked so good. Her tight ass in those grey sweatpants is begging for a squeeze, and that pussy mound? You're imagining how it'd feel against your tongue as she stretches into yet another impossible pose...",
"masc","She's flexible, that's for sure, and the grey sweatpants don't hide much. It's a sight that would've had you drooling, but now it's more of a curious observation, a distant remnant of lust with a touch of gym-apparel envy.",
"female","Her flexibility is impressive, but it's those grey sweatpants that really steal the show. They sculpt her ass so well you're considering getting a pair yourself... and that slight camel toe? You wonder if she's aware of it..."),
"35",(dm:
"loser","The Latina in the Brazil top hasn't lifted a finger, but she's working that slutty outfit like it's her job. You'd think she's here to pick up guys, not weights...",
"male","The slutty Latina lounging on the bench looks like she's barely broken a sweat, but her outfit screams 'fuck me.' You're picturing those pouty lips wrapped around your cock as you give her wide hips a good, hard squeeze...",
"masc","She's got an attitude about her, even as she rests on the bench. Those pigtails and that Brazil top might've drawn the old male you in, but now? It's more like a silent 'uh, good for her...'",
"female","Her outfit screams 'look at me!' and, well, it's working. But isn't she cold in those gym panties? And those pigtails - it's like she's trying to live up to some fantasy..."),
"36",(dm:
"loser","The bitchy girl gives you a glare that chills you to the bone. You're not sure what you did, but her cleavage almost makes the scolding worth it...",
"male","A bitchy-looking chick glares at you, but you can't help but focus on her tits pressing together, her cleavage gleaming with sweat. You'd love to see that pout turn into a moan...",
"masc","She's glaring as she stretches, and you're unsure if it's at you or just in general. There's a male part of you that's still a bit turned on by the fire in her eyes, even if you're no longer sure how to respond...",
"female","Stretching on the bench, she looks like she could snap at anyone who crosses her. You admire the view but keep your distance. The gym's no place for drama..."),
"37",(dm:
"loser","The girl with the kind smile has an ass that's just big enough to catch your interest. You feel a warmth spread as she acknowledges you, a rare moment where you feel seen rather than invisible... hopefully she didn't catch you staring though!",
"male","She shoots you a warm smile over her shoulder, and you're already crafting scenarios where that dumbbell row leads to her hand stroking your shaft, her smile growing as she feels you grow hard against her...",
"masc","You're met with a kind smile from a girl doing dumbbell rows.",
"female","You come across a girl, whose smile is contagious as she looks back at you during her rows. You can't help but smile back, appreciating the friendly atmosphere she brings to the gym..."),
"38",(dm:
"loser","She's like a vision from a dream, the black girl doing yoga. Her tits and ass are a fantasy come to life, glistening with sweat, each pose a new chapter in your mental library of desires...",
"male","The black goddess in front of you is glistening from head to toe, her yoga routine more titillating than any dance you've seen at the club. You're mesmerized by her voluptuous body, her fat tits and ass a testament to the sheer power of the female form. You'd love to hear the sound she makes when you spank that glorious ass...",
"masc","It's hard not to appreciate the physicality of the woman doing yoga... You recall the rush of desire such a sight would have previously stirred within you, but now it's more like a deep respect for her form and the poise with which she carries herself...",
"female","The black girl doing yoga is a sight to behold. Every pose shows off her strength and curves in a new light. You find yourself inspired not just by her physical form but by her evident confidence and grace..."),
"39",(dm:
"loser","The Indian girl's girl-next-door smile and post-yoga glow make her seem both approachable and out of your league. You can't help but admire her thick ass and the way her tits jiggle, even as she's just catching her breath...",
"male","You're fixated on the Indian beauty sweating after yoga, her tits still bouncing with every heavy breath. You imagine those curves pressed against you, feeling the heat from her workout, as she smiles that gorgeous smile... yum.",
"masc","She's the epitome of the girl next door, but with curves that catch your eye. It's an interesting mix of wholesome and hot, and it has you curiously watching her cool down routine...",
"female","The Indian girl's yoga session has left her looking radiant. Her leggings frame her ass perfectly."),
"40",(dm:
"loser","The sporty woman in leggings gives you a smile that could light up the whole gym. It's almost enough to make you forget how painfully average you feel, especially next to her incredible body...",
"male","A sporty blonde with the kind of body that screams 'gym rat' leans back, offering a little grin that has you picturing her doing more than just smiling at you. Maybe something with those wide hips of hers in action...",
"masc","She's undoubtedly fit, with a body toned from dedication. The smile she flashes has a warmth that's unexpected, and you feel a twinge of... something. It's not quite desire, not anymore, but it's something...",
"female","That smile that girl's giving off looks like she's conquered her workout, and honestly, her body shows it. Her wide hips and toned legs are goals; you need to up your game..."),
"41",(dm:
"loser","The pale redhead with freckles is a rarity in the gym, her big tits bouncing with each bicep curl. You watch, mesmerized by her pale tits...",
"male","The redhead working her biceps has tits that defy gravity, and you're picturing her down on her knees, those big pale jugs wrapping around your cock as her freckles flush even redder with effort... yeah. That would be good.",
"masc","You notice that a pale redhead's big sweaty tits don't stir the same desires they once would have...",
"female","You spot a lone redhead doing bicep curls. Her hair looks so nice!"),
"42",(dm:
"loser","You're trying not to stare too obviously at the thin girl doing yoga. Every curve of her ass is visible in that cobra pose, and you're struck with the urge to join her class - though you'd probably just end up making a fool of yourself...",
"male","The blonde's yoga form is impeccable, and her ass cheeks, though modest, are totally out, and hence a sight to behold. You're imagining her flexibility in more... intimate scenarios, wondering how that ponytail would feel in your grip...",
"masc","The way this girl moves into her yoga poses is almost mesmerizing, but it's a more subdued reaction than what you'd have had before. Now, you're contemplating her technique, more than anything else...",
"female","You spot a girl whose cobra pose is perfect, and you can't help but admire the way her workout panties hug her. There's a lot to be said for yoga - it seems to do wonders for the physique..."),
"43",(dm:
"loser","The brunette's kettlebell routine is impressive, and you're in awe of how she handles the weight. But, it's her nice ass that gets you idly daydreaming of what else she can handle...",
"male","Watching the brunette's ass as she does kettlebell swings is the highlight of your gym visit. You're half-hard, imagining that ass bouncing on you, her grunts turning to moans, as she works up even more of a sweat...",
"masc","You spot a girl whose kettlebell form is worth noting, and it's clear she's been at this a while. The concentration on her face has you appreciating her discipline instead of just her assets...",
"female","Her kettlebell form is spot-on, and you're appreciating the effort it takes, especially with how her ass looks during those swings. Damn, you really need to incorporate more kettlebell work into your routine!"),
"44",(dm:
"loser","You catch a glimpse of the raven-haired beauty exiting yoga class, her ass looking divine in those tight white shorts. She glances your way, and you suddenly feel like you're back in high school, too awkward to do anything but stare...",
"male","The yoga class releases a raven-haired goddess, her tight white shorts hugging her ass like a second skin. Her quick glance sets off a litany of dirty thoughts about peeling those shorts off and exploring just how flexible she really is...",
"masc","She's clearly just done with yoga, and her attire highlights all the right places.",
"female","The woman leaving the yoga class has clearly worked up a good sweat, but it's her confidence and the way she wears those white shorts that have you giving her a mental high-five..."),
"45",(dm:
"loser","There's a girl with a big ass relaxing post-weights, and she's got an energy about her that screams she's out of your league. Can't hurt to watch from afar and wonder 'what if,' right?",
"male","The cutie with the big ass reclining after her workout has that mischievous spark in her eye. You're fantasizing about that firecracker energy in bed, her ass bouncing back against you as you dig in deep...",
"masc","You take in the scene, the cute girl with the big ass catching her breath. The old you might have stared; the current you is just considering hitting the weights too.",
"female","She's small, but she's got curves where it counts. You're taking a minute to appreciate her choice in workout gear; those blue shorts are doing her plenty of favors."),
"46",(dm:
"loser","The woman's glare is almost as intimidating as the size of her tits. You can't help but watch her do situps, her breasts flopping impressively, but with each glare, you shrink a little inside...",
"male","A bitchy babe with a rack that could knock you out is glaring around the gym. You're unashamedly watching her tits bounce with each situp, imagining holding them down as you fuck her brains out, wondering if that'd wipe the scowl off her face...",
"masc","There's a certain charm to the woman with a scowl; her tits are certainly commanding attention. There's a brief flicker of desire, but it's less intense than what you used to feel...",
"female","She's got an attitude, but you can't deny she's also got a killer body. Watching her workout, you're more focused on how she's managing to exercise without giving herself a black eye with those things..."),
"47",(dm:
"loser","You're sweating just watching the Indian beauty attack her tricep pulldowns. Her body is slick with sweat, and the way her breasts jiggle with each motion is more tantalizing than anything on TV...",
"male","The Indian girl's workout is a spectacle, her tits bouncing, her body sheened with sweat, those booty shorts leaving nothing to the imagination. You imagine the sound they'd make slapping against you as she rides you, all that hard work paying off in the best of ways...",
"masc","You can't help but notice the intensity of her tricep pulldowns; she's clearly got the routine down. The damp sheen on her skin is just a testament to her effort, nothing more, nothing less...",
"female","The Indian girl is putting in the work on the ropes, and you're impressed by her form. You wonder if she'd share some tips..."),
"48",(dm:
"loser","The girl in the white yoga outfit smiles over her shoulder, and her big ass is practically speaking to you. You're utterly transfixed by the sight and her friendly demeanor, even though you'd probably never dare approach her...",
"male","A chick in a white yoga outfit is stretching, and her fat ass is a goddamn masterpiece. She smiles over her shoulder, catching you staring, and you smirk back, imagining just how that ass would feel clapping against you...",
"masc","Her smile is radiant, even if you're not quite sure what to do with the attention. Her yoga outfit does accentuate her features quite nicely though...",
"female","She's got a great smile and a better ass. You're a little jealous of her confidence and even more so of those white yoga pants that seem to defy the laws of transparency and sweat stains..."),
"49",(dm:
"loser","The sound of this girl's ass cheeks clapping together as she does jumping jacks is like a symphony to your ears. She's a vision of sweaty, jiggling perfection, and you're content just to watch, knowing deep down you'd never have a chance...",
"male","Each clap of this girl's ample ass cheeks is a direct call to your libido as she works out. You're picturing her sweating and jiggling on top of you, her fat ass absorbing every thrust as you pound away...",
"masc","It's hard not to be amused by the spectacle of this girl's ass in action. It's impressive, really, the way she seems to own the attention it brings...",
"female","That girl's workout routine is something else. Her ass is stealing the show, and you're half in awe, half wondering if it's intentional. Either way, she's DEFINITELY got everyone's attention..."),
"50",(dm:
"loser","You spot a girl who's on the smaller side in the curves department, but her camel toe is front and center. It's hard not to look, harder still to imagine anything coming of it.",
"male","This girl's situps have given you a perfect view of her camel toe. You're imagining pulling those leggings aside, getting a taste of what's underneath...",
"masc","You're noticing things differently now, but that camel toe is quite the statement. You're not entirely sure what to make of it.",
"female","Her outfit choice is... a statement. You're wondering if she knows it's quite that visible, or if she's just here for the workout.")
))
(print:(cond:
(is_fem:) and $character's "masculinity" < 65,_description's "female",
(is_fem:), _description's "masc",
(get_charm:) > 5 or $character's "masculinity" > 85 and not ((a:"loser","nerd") contains $character's "archetype" and (get_charm:) < 7), _description's "male",
_description's "loser"))
(if:(is_male:))[(if:$character's "masculinity" > 25)[(set:$turnon_stimulus to ($girl's "sluttiness" * 0.6))(display:"male turnon calculation")(unless:$gain is 0)[<div class='options'>(display:"gain arousal")</div>]]]
}{
(if:(is_fem:))
[
(if:$character's "masculinity" > 50)
[(display:"mall girl descriptions female high masculinity")]
(else:)
[(display:"mall girl descriptions female")]
]
(else:)
[
(if:$character's "masculinity" > 65)
[(display:"mall girl descriptions male")]
(else-if:$character's "masculinity" < 41)
[(display:"mall girl descriptions male feminine")]
(else:)
[(display:"mall girl descriptions less male")]
(if:$character's "masculinity" > 25)
[
(set:$turnon_stimulus to ($girl's "sluttiness" * 0.6))
(display:"male turnon calculation")
<div class='options'>
(display:"gain arousal")
</div>
]
]
(display:"remember girl")
}{
(if:($girl's "traits" contains "bimbo") and (twist:1,3) is 1)[
(if:(is_bim:))[($bimbo:[(twirl:"Whoa, look at her! She's like a total bimbo goddess! 😍 Do I look that good too? Ugh, why am I even thinking this? 😜","OMG, her lips are sooooo plump and glossy! 💋","Her nails are soooo sparkly and long! ✨ I kinda wanna get mine done like that...","Wow, she's got that bimbo giggle down! 😋 Is that how I sound now too?","Those shoes are totes adorbs, like, I need them in my life! 😍","Is she looking at me? Maybe she likes my shoes too! Eeee, girl power! 👠","Heee, her laugh is like, so cute! I bet everyone loves her! 😍","Oh my gosh, she's like, a total Barbie doll! I wanna be her! 💕")])](else:)[
*(print:(twirl:
"Wow, look at the curves on that bimbo! She's got that sultry, uninhibited vibe that I just adore. Maybe I can pick up some tips from her...",
"Oh my, isn't she just the picture of a bimbo! Those tits, that ass! She's flaunting everything without a care in the world. Good for her!",
"Check out the bimbo strutting her stuff. You've got to admire her confidence. It makes me want to dress more provocatively...",
"Oh, look at that bimbo. She's so feminine, so voluptuously sexy! There's something so captivating about her, it's making me feel all hot and bothered...",
"Hmm...that bimbo knows how to work what she's got. I could definitely use a few pointers from her. I'd love to make heads turn like she does.",
"There goes a bimbo, strutting past like she owns the place. It makes me want to push boundaries, explore this femininity even more. Maybe even out-bimbo the bimbo?",
"Wow, that bimbo is seriously stacked! How does it feel to have tits that big, I wonder? The attention she's getting is making me a little wet..."
))*]
](else-if:($girl's "tags" contains "hot" or $girl's "tags" contains "gorgeous" or $girl's "tags" contains "sexy") and (twist:1,2) is 1)[
(if:(is_bim:))[($bimbo:[(twirl:
"OMG, she's soooo hot! 😍","Aaaah, she's so sexy it hurts! 🤯 I still feel that longing, but my girl brain just wants to, like, copy her makeup or something, heehee! 💋",
"Wow, a total knockout just walked by! 😳",
"She's sooo dreamy! ❤️",
"Oh wow, she's walking by radiating raw sexiness! 💖 I'd be all hot and bothered as a guy, but now it's just this girly chaos in my head! 🤯","Haaaaa-freaking-OMG! She’s like, soooo hot!! 🌟","Those lips! Ughh! So kissable! 💋","Ohmygawd, her butt is like, sooo cute!","Uh oh, if she talks to me, I might forget how to words! Sweetie, help! 😨","If I looked like her, I'd never leave the mirror! Like, ever! 🪞","I think she caught me staring! Teehee, I'm such a silly goose! 🥴")])](else:)[
(print:(twirl:
"There's a peculiar ache as you watch a stunningly hot girl saunter by. A jumble of conflicting emotions and desires well up within you. As a man, you would have pursued her. As a woman... you can't help but admire her and wonder how different things are now.",
"As you watch a gorgeously sexy girl go by, you feel an ache of longing that is both familiar and unfamiliar. It's strange how your mind still lusts even if your female body doesn't react the same way.",
"A hot, breathtaking specimen of female beauty drifts into your line of sight. Visually, she's everything you as a man would have desired. But now, as a woman, it's like appreciating a piece of art. You can admire, but not possess.",
"There's this hot girl - a real knockout - who walks by and you can't help but feel this strange twinge of jealousy. You're not sure if it's because you want her, or if it's because you want to be her. Hell, maybe it's both.",
"Your heart rate inexplicably surges as a bombshell saunters by. She's hot, there's no denying that. But it's not the same... primal reaction you'd get as a man. It's more like a pang of longing mingled with admiration.",
"A girl oozing raw sexiness walks past and you realize shockingly that you're checking her out, appreciating her curves. As a man, you'd have desired her. Now, in this body, it's a strange mixture of envy and admiration.",
"Suddenly, your senses are lit up by a radiant, sexy girl striding by. Once, you'd have felt a stirring of desire. Now? Now it's a strange whir of emotions - appreciation, envy, and a strange yearning for something you can't quite explain."
))
]](else-if:($girl's "tags" contains "hot" or $girl's "tags" contains "gorgeous" or $girl's "tags" contains "sexy") and (twist:1,2) is 1)[
(if:(is_bim:))[
($bimbo:[(twirl:"OMG, she's like sooo pretty! 💕 Maybe I should ask her where she gets her nails done.","Wow, look at her makeup! I wonder if she could give me some tips...","Her butt is sooo perfect! I wish mine was that round and bouncy! Booty goals! 🍑","Her outfit is like, totally on point! I totes need to go on a shopping spree! 💸","Teehee, she's sooo hot! I'd totally make out with her! 😋","She's like, soooo pretty! I'm jelly... hehe 🙊💕
","I wonder if she knows how amazing she looks? Omg, I hope she doesn't think I'm staring! 😳","Teehee, if she ever needed a shopping buddy, I'd soooo volunteer! 😘💄 ","Teehee, I bet she spends sooo much time on her hair 🥰✨. It's totes perfect! *giggle*")])
](else:)[
(print:(twirl:
"A stunningly hot girl saunters by, all curves and confidence. Your soul, now entirely feminine, thrills at the sight of her. You're not just appreciating her beauty, you're reveling in the shared sisterhood of sexuality.",
"A gorgeously sexy girl walks by and you find yourself longing to steal some of her style, her grace, her allure. Your new femininity marvels at her, feeling both a pang of envy and a surge of admiration.",
"A breathtakingly beautiful girl drifts into view, and you find yourself completely mesmerized. You've never really looked at a woman like this before - a wonderful cocktail of appreciation, sisterhood, and raw desire.",
"There goes a real knockout - a hot girl who turns heads wherever she goes. And you're one of them, admiring her from your very feminine perspective. It's like looking at an exquisite work of art that stirs something deep within you.",
"As a bombshell saunters by, you can feel your pulse quicken. In your heart, you're not simply a girl admiring her, you're a sister embracing the beauty of another. It's a stunning realization, intensely intimate and empowering.",
"A girl oozing raw sexiness walks past, and you're struck by a profound appreciation for her beauty. In your new feminine avatar, it's no longer just a lustful longing - it's an appreciation for her, for you, for every woman who dares to embrace her sexuality.",
"Your senses are suddenly overwhelmed by a radiant, sexy girl passing by. The feelings are intense - a whirlwind of sisterly affection, fervent admiration, and a hint of the old, familiar desire. It's truly intoxicating."
))]](else-if:($girl's "tags" contains "huge tits" or $girl's "tags" contains "jiggling" or $girl's "tags" contains "bouncing" or $girl's "tags" contains "massive melons" or $girl's "tags" contains "big boobs" or $girl's "tags" contains "gigantic breasts") and (twist:1,2) is 1)[
(if:(is_bim:) and (big_boobs:))[
($bimbo:[(twirl:"Omigosh, she's got such HUGE boobies! Hihi, wonder if mine bounce as much, teehee 💖.","Wow, her tatas are like...mountains or something! Do mine look that big?","Her chest is like, whoa! Do people stare at me like that too?","Oh mah gawd, look at the jiggle on those! Jiggle, jiggle, bouncy, bounce~","She’s got such huge knockers! I wonder if hers can knock people over like mine, haha!","Big boobies, like wow! Must be so hard not bumping into stuff all the time, right?","Whoa, boob town! Hihi, are mine that jiggalicious? I'm like, boob-sessed~","Ohmygawd, look at those baloobas! Do mine look like that when I walk? Haha, oopsie!","Her chest is seriously boobilicious! Hihi, imagine if we both bumped...boob crash! Teehee 💗")])
](else-if:(is_bim:))[
($bimbo:[(twirl:"Omg, like, her boobs are so *bouncy* 🥺! I wish mine were like that, ugh! 😫",
"Ooo, look at those big boobies! 😍 Wish mine were that bouncy~ ugh, like so squishy and nice! 💖","Wowie, her tits are like, soooo HUGE! How does she not fall over? 😂","Big boobs like that are just... mmmm I wanna squeeze 'em! 🙈 Why can't mine be like that? So lucky! 💗","Hehe, she got melons for days! 🍈🍈 They jiggle so much when she walks! So fun! 😋","Look at her, like a total booby queen! 👑 Maybe if I stare hard enough, mine will grow, too! 🙃","Boing boing! Her titties bounce like, all the time! Bouncy, fun ride! I wannaaa! 🥵","Golly, those are some top-tier boobies. 🎀 If I had those, I could, like, do anything! ✨","So, like, her boobs are probably soft as pillows! 😍 Seriously, need to test! Haha, just kidding... kinda! 🙈""Her titties are massive! 🌟 Like, double the fun and double the attention! I want that, too! 😣","Omg, her boobs are like, totally huge! I wish mine were like, jiggly like that 😫.","Wow, like, how does she even walk without, y'know, toppling over? Hehe, silly~ 🙃.","Those titties could like, suffocate someone! 😳","Her top’s gotta be like, magic or something, the way it’s holding those melons up! 🎀","Ugh, she must get, like, soooo much attention from guys.","Do you think she like, ever knocks stuff over with those? Aww, that’d be so funny! 😜","Oooo, if I had boobs like hers, I’d, like, never wear a bra. So free! 😋")])
](else:)[
(print:(twirl:
"As a girl with enormous bouncing tits strides by, you can't help but gawk. There's a small pang of envy... and you find yourself idly wondering if she's a natural or if she's had a little help.",
"A busty girl waltzes by, her breasts swaying enticingly. Wow she's certainly got a pair. As a woman now yourself, you wonder how she manages, but you can't help appreciate the aesthetic they bring. It's not about sexual desire, it's the sheer femininity that's captivating.",
"You watch as a girl with huge boobs passes by. That's quite a load to carry. An odd sense of sisterly sympathy washes over you, but so does a strange admiration. How does she manage to strut so confidently?",
"A girl with massive melons causes your eyes to widen. You can't help but wonder about the kind of bras she has to buy. It's a peculiar blend of fascination, empathy and undeniable respect for those 'assets'.",
"Your heart skips a beat as a busty girl walks by. She's all curves and confidence. It's beautiful, and a tiny part of you wishes for a chest as bountiful - just to see what it's like, even for a day.",
"Gazing at a girl with colossal breasts, you're caught between admiration and sympathy. You're a woman now, so you appreciate her struggles... but damn, those do look fantastic!",
"A busty girl walks by, her enormous tits commanding attention. As a woman now, you find yourself admiring her poise and confidence, even as you're wondering about the practical difficulties of carrying such a hefty front load."
))
]](else:)[
(print:(twirl:
"Summer City is a sea of sexy women, and you're one of the captivating sirens now. There's an unspoken bond of feminine allure you're now a part of - enticing and empowering.",
"The women around you are stunning, turning heads wherever they go. In your male body, you would have joined the stares. Now, you share in their triumphs; their beauty mirrors your own.",
"Moving through the mall, it hits you. You're one of the stunning women that make up the gorgeous scenery of Summer City. You're part of the allure, part of the desire - it's a rush like nothing else.",
"Paradise Mall isn't short of sexy women today... And you're among them, one of the women men's gazes linger on. It's a thrilling and alarming sensation, being both the observer and the observed.",
"Every corner turned reveals another beauty of Summer City, and you're among them now. Every gaze that appreciates them appreciates you as well - it's a dizzying, exciting realization.",
"Wandering through Paradise Mall, it feels like a secret convention for the city's most beautiful women. And you're one of them - an exciting sensation that fills you with a heady mix of pride and newfound self-awareness.",
"Summer City is heating up with every stunning woman you see - and you're one of them now. You're part of the display, part of the dance - it's a rush that sends tingles down your spine.",
"Paradise Mall is rightfully named, teeming with heavenly beauties. Standing among them, you share in their allure - a strange mix of camaraderie and competition.",
"It feels like every beautiful woman in the city has converged at Paradise Mall today. You're one of them, a part of this breathtaking tableau - a thrilling realization that sends a shiver through you.",
"Walking through the mall, your heart skips a beat several times as you cross paths with so many radiant women. But you've joined their ranks now - you're as much a part of the scenery as they are."
))]
}{
(if:($girl's "tags" contains "big ass" or $girl's "tags" contains "fat ass" or $girl's "tags" contains "booty shorts") and (twist:1,2) is 1)[
(if:(is_bim:))[
($bimbo:[(twirl:"Wowowow, look at that DUMPTRUCK! 🥵 My brain says notice... but notice like a sis? Haha, oops, gotta stop staring!","Omg, that ass is like... BAM! 🍑 Remember when I'd drool...","Golly, her butt is like SUPER MEGA huge!","Whoa, that booty is a total head-turner! 🤯 Used to think about grabbing it... now I just think wow! So confusing! 😵💫","Her butt is like, WHOA mama!","Totally a **bubble butt**! 🍑 Remember when I’d have all these thoughts? Hehe, now it's more like admiration~","Ohmigosh, what a juicy butt! 🍑 Haha, couldn't stop staring if I tried! Girls get it tho, right? Teehee!","Gosh, her ass is *HUGE*! 🥵 Used to be *all* about it, and now I just wanna... touch? So confusing! 🙈",
"Holy moly, that's a badonkadonk! 😳","Yowza! That booty is like... whoa! 🤯 Is it weird I kinda respect it more than I drool now?","Wowie, her ass could, like, crush a watermelon! Back when I was a guy... Um, used to go wild! 💦","Damn, what an ass! 🍑 Used to be like, my *kryptonite*, and now I’m like, is mine that good?! Sheesh, brain!","Whoaaaa, that booty jiggle! 🤤 Hehe, guy me'd be gawking, but now I just think WOW. Am I still a perv, or what?","Jeez, that dump truck! 🍑 If I was still a guy, I'd be... drooling, haha!",
"Ohmahgawd, her ass is like a work of art!")])
](else:)[
(print:(twirl:
"A girl with a large, shapely butt walks by and usually, this sight would prompt an immediate, visceral reaction from you. But now? It's like watching a tantalizing scene in slow motion, sans the previous heated excitement. It's disheartening.",
"A perfectly rounded booty crosses your path and you instinctively look. The thrill, however, doesn't hit you as hard as before. It's annoying, like trying to remember a familiar taste but it just won't come to you.",
"Watching a juicy ass bounce hypnotically as its owner struts by, you feel a strange sense of detachment. You remember when such a sight would make your heart race, but now it's oddly subdued. It's frustrating, almost like listening to a muted rendition of your favorite song.",
"A girl with a pert, bouncing behind saunters past and you feel...strangely mellow. Yeah, she's got a great ass. But where's the usual spark? It's as if your body is refusing to play its part. It's weird and kind of pisses you off in a way you can't put a name to.",
"Gazing at a girl with a deliciously plump posterior, you feel a pang of something that's more nostalgia than desire. Yeah, you can appreciate her looks, but the usual heat is oddly absent. It's like the flavor of your favorite dish just isn't hitting the same anymore. Frustrating doesn't even begin to cover it.",
"Catching sight of a big, round booty, you feel both a pull of attraction and a strange sense of longing. Your mind appreciates the sight, but where's that familiar heat, that unspoken promise of raw pleasure? Damn, you're starting to miss it.",
"A girl with a perfect ass breezes by and you're left with a mix of muted attraction and an irksome frustration. Your body remains stupidly unresponsive while your mind remembers the hunger. It's a cruel disconnect.",
"Staring unabashedly at a passing girl's plump ass, you feel robbed. It's still a hot view, sure, but your body's reaction is so dull it might as well be non-existent. It's unfair, like a reminder of a pleasure you're no longer entitled to.",
"Looking at the sumptuous sight of a big, juicy ass, the familiar surge of desire is noticeably absent. Instead of a familiar heat, you're left with a hollow space where it used to be. Honestly, it's just fucking annoying."
))]
](else-if:($girl's "tags" contains "hot" or $girl's "tags" contains "gorgeous" or $girl's "tags" contains "sexy") and (twist:1,2) is 1)[
(if:(is_bim:))[
($bimbo:[(twirl:"Ooo, she's like, super pretty~ 😍! Hehe, isn't it funny how I used to be the one staring? Now I'm like, totally one of them! Teehee!✨","Wow, she's sooo gorgeous! Gosh, I hope I look that good! Wait, am I supposed to think that? Oh well, girls rule! 💋💕","OMG, look at that hottie! Heehee, guess it's not weird to stare now that I'm a girl too, right? 🙈💕","Wow, she's amazing~! Heehee, like, is it bad to say I'd wanna be her friend?","Ooo, such a babe! Now we're both just hot girls vibing, right? 💅😍","Shorty, you are *poppin'*! Hehe, it's so fun being a girl, even if I'm like, totally ditzy now! 😋💗","Heehee, I remember checking out chicks like that... Now I wanna be her BFF! 😝✨","Ugh, my brain feels all fuzzy... Hottie alert! *Girlfriend goals*~ 💘💃","*Like*, how do you get that gorgeous? I wanna know her secrets~ 😋💕","*Giggle* I used to undress chicks with my eyes, now I just wanna do a shopping spree with her~! 😜🛍️","She could totally be a model! Does she—wait, am I, like, jealous?!","Woah, she's soooo pretty! Wait, am I ogling her? I guess it's okay 'cause I'm a girl too now, right? 😳 Heehee!","Oooo! Look at her! I bet she gets, like, all the guys. Can't blame 'em! She's a total babe! 😍","Look at her! She's got it all! Her confidence, style, everything... Am I crushing on her or just wanna be her? So confusing! 🙈","Heehee, she's like a total ten! No wonder I can't help but stare! It's not creepy if I'm just admiring, right? Ugh, girly thoughts are weird! 🤭")])](else:)[
(print:(twirl:
"There's a peculiar ache as you watch a stunningly hot girl saunter by. A jumble of conflicting emotions and desires well up within you. As a man, you would have pursued her. As a woman... you can't help but admire her and wonder how different things are now.",
"As you watch a gorgeously sexy girl go by, you feel an ache of longing that is both familiar and unfamiliar. It's strange how your mind still lusts even if your female body doesn't react the same way.",
"A hot, breathtaking specimen of female beauty drifts into your line of sight. Visually, she's everything you as a man would have desired. But now, as a woman, it's like appreciating a piece of art. You can admire, but not possess.",
"There's this hot girl - a real knockout - who walks by and you can't help but feel this strange twinge of jealousy. You're not sure if it's because you want her, or if it's because you want to be her. Hell, maybe it's both.",
"Your heart rate inexplicably surges as a bombshell saunters by. She's hot, there's no denying that. But it's not the same... primal reaction you'd get as a man. It's more like a pang of longing mingled with admiration.",
"A girl oozing raw sexiness walks past and you realize shockingly that you're checking her out, appreciating her curves. As a man, you'd have desired her. Now, in this body, it's a strange mixture of envy and admiration.",
"Suddenly, your senses are lit up by a radiant, sexy girl striding by. Once, you'd have felt a stirring of desire. Now? Now it's a strange whir of emotions - appreciation, envy, and a strange yearning for something you can't quite explain."
))]](else-if:($girl's "tags" contains "stylish" or $girl's "tags" contains "elegant") and (twist:1,2) is 1)[
(if:(is_bim:))[
($bimbo:[(twirl:"Oooh, she's sooo, like, fancy ✨!","Wowzer! She’s got such chic vibes! I wonder if she like... um... thinks bimbos like me are silly?","Ahhhh~ look at her! So stylish and, like, graceful!","Eeks! She’s totally got that queenly aura going on! Like, omigosh! 🤩","Golly, she's like, super-duper fashionable! I bet she doesn't trip over her own stilettos, huh? Heehee, must be *nice* to have some brain cells left 🥲.","Omg, that lady’s got alllll the class! Beautiful *and* brains, like double threat!","Wowie, that’s some next-level chic right there!","Omgosh!! She's like a runway model or somethin'! Sometimes I remember being a guy and thinkin' *wow*, now I just wanna say 'omigod, teach me your ways!' Teehehehehe 🌸!")])
](else:)[
(print:(twirl:
"An elegantly stylish woman drifts by, commanding attention effortlessly. You are decidedly female now, and though your male instincts might still be in play, there's a newfound appreciation for her grace. You can't help but wonder about the lessons you could learn from her.",
"As an elegant woman strolls past, you're struck by a wave of admiration. You envy her grace, her style. This isn't the visceral desire you might have felt as a man; it's a deeper, more nuanced appreciation.",
"A stylish woman walks by, each movement radiating an alluring elegance that captures attention. Your former male gaze would've likely objectified her. But now in this female body, you find yourself appreciating - even envying - her look, her grace.",
"You watch a chic, elegant woman as she breezes by. Your churning mind is part male desire, part female appreciation, and wholly unexpected. You never thought you could appreciate someone's style like this.",
"When a woman of stunning elegance passes by, you're hit with a confusing blend of emotions. There's admiration, a touch of envy, a sprinkling of male desire, and the poignant realization of how differently you perceive things in this new body.",
"Your gaze catches a woman radiating chic elegance, and for a moment, you're lost in a whirlpool of feelings. The stylish femininity you see in her makes you wonder about your own identity - the man within still wanting, the woman without still learning."
))]](else-if:($girl's "tags" contains "huge tits" or $girl's "tags" contains "jiggling" or $girl's "tags" contains "bouncing" or $girl's "tags" contains "massive melons" or $girl's "tags" contains "big boobs" or $girl's "tags" contains "gigantic breasts") and (twist:1,2) is 1)[
(if:(is_bim:) and (big_boobs:))[
($bimbo:[(twirl:"Ohmygawd, her boobs are like WHOA! 😵 I used to be all over those... now I can't stop comparing? Haha!","Wow, those honkers! 🥵 Can't believe I'm, like, part of the big-boob club now, teehee~ 🙃","Her tatas are massive! ⛰️ Like.. umm, mine are too, right? Hehe, guess it's okay to stare now!","Oh jeez, look at those milkers! 🥺 Can't believe I miss staring.. now I just want to jiggle 'em! Haha, oops!","Her bazoongas are huuuge! 🐮 Like... do mine bounce that much too? Gosh, being a girl is sooo weird!","Holy moly, her ti--umm, chest! Hehe, being a girl makes it less weird to ogle, right? Teehee!","Heehee, her boobies look so fun to squeeze! 🙈 Wait, do I wanna squeeze 'em or compare 'em? So confusing... 🍈","Like, her breasticles are ginormous!! 🎈 Eek, why am I so okay checking her out? But wow, we’re like titty twins!","Omg, I would’ve been all over those back when I was a guy... Now I just admire and hope mine bounce just as much! 🍒","Heavens, she's got melon-sized tits! 🍈🍈 Feels funny to compare mine too! Heehee, titty sisters~ 🙃","Whoa, those knockers! 🐮 Uhhh, not like I wanna grab... probably? Hehe, girly thoughts are hard!","Her boobies are like, huge udders! 🐄 Can totally relate now... Isn't it funny? Teehee!","Oh my, what a chest! Haha, do people look at me the same way? Gotta be careful not to bump into things!","Yikes, big boobies alert! 🚨 Am I allowed to ogle? Teehee, girl perks I guess!","Her milk tanks, hehe! 🐄 Used to drive me nuts, now I just wanna admire... Oh gosh, this is so silly!","Seeing those gazongas, haha! 🍈🍈 Wonder if I look that impressive now? Being a girl is such a trip! 🙈","Big boobies are like sooo eye-catching! 🙈 Girls must love the attention... Haha, am I like that now too?","OMG, her chest is like BAM! 🎀 Wow, being a part of this big booby club is kinda fun, heehee!","Like, omigosh, look at those honkers! 😍 Y'know, it’s not even weird to stare now, teehee~ 💖. I mean, I totes get it now, having big boobies is like, such a *mood*! 😋","Aah, huge knockers alert! 🚨I remember being a guy and loving those -- now I have 'em too! What a tickle! Haha!","Wowiee, her big tits are SO bouncy! I wonder if mine bounce that much! Like, boobies galore! Haha, sisterhood! 💗","Oh my gosh, look at her jiggle-jugs! 🎉 I get to stare without being a creep now, right? Hihi, sister code! 😆","Omigosh! Titties like udders! Hah~ I can stare all I want now, teehee~ No one's gonna judge me! 😛✨","Woah… distracted by melons! 🍈🍈 Heehee, now I know what guys see! Mine do the same jiggle-wiggle!","Ahhh, ginormous tits! 🥵 I used to drool over those, but now... mine are like that too! Woah, a weird, fun twist!","Oh mah gaaawd, those honkers! 😍 Can’t believe I have these now too… Bouncing life's delights 😉, hihi!","Booby watch! 🎀 She’s got serious rack, and wow, mine do too -- bet we both have nip slips, hihi 😝!","Big milkers here~ 😑 No way I can ever be mad about it -- it’s like, boob-culture fun now! Teehee~","OMG, giant boobs! 🎀 How do we manage with these huge things?! Boob probs, haha!","Ooo, hers are so perky and bubbly! Hehe, twinsies, we could totes have a booby-bounce contest 😋!","Seeing those massive boobies? 😵 Heh, somehow it's not weird anymore, I got my own pair! Like, booby buddies?","Otay, bounce alert~! 🛎 Hehe, it's almost funny how much I stare now and not feel awkward. Like, girl same~! 😆","Golly, huge knockers! 🍈 I remember the guy me going crazy over these, now I get it. Totes understand the power of cleavage! 😄")])
](else-if:(is_bim:))[
($bimbo:[(twirl:"Wowie, her boobs are like super-duper massive! Teehee, I bet they’re heavy! Haha, imagine if mine were even bigger! 😵",
"Golly, her titties are sooo big, like, I kinda miss looking at them and getting hard. Wait, what? ✨",
"Omg, her boobies are like, ginormous! Did it feel this cool just to look before?",
"Wooow, her chest is like a total pillow paradise! Hihi, gotta stop being jelly, but they’re just soooo nice! 💖",
"Eeee, her big bouncy boobies are like, totally hypnotizing. Do other people look at mine like that too? Haha, bouncy, bouncy~ 🎀",
"Her boobs are so GIANT! Haha, wish mine were even bigger, then maybe I’d... 🙈",
"O-oh my gawd, look at those jugs! How’s a girl supposed to not admire? Hehe, last week I’d totally be drooling! 💗",
"Her knockers are like, super crazy big! I wanna squish ‘em! Ugh, stop being a total bimbo! Hehe, still wanna though! 🤭",
"Daaang, her titties are huuuge, like, can mine ever be that awesome? Why do I get this weird jealousy vibe? Oh my, silly brain! 💖",
"Omg, I used to TOTALLY drool over chicks like her, but now I'm all, like, wow, those are some breastsicles! Hehe! 😜","Wow, those boobies are... so bouncy! Haha, I remember thinking like a total perv, but now I just wanna ask where she gets her bras 😂","Those melons look...SO heavy! OMG, why am I thinking it's kind of fun to have these big tatas too?! 🙈 😊","Back when I was a guy, I'd be all about checking her cleavage, but now it's like... do MY boobs look that sexy too? Ugh, am I a perv still?!","Hehehe... her jugs used to, like, give me insta-boner, now I'm just bouncing in rhythm with her. Girls just get it I guess! 🙃","OMG, her boobs are HUMONGOUS!😀 Like, being a dude I'd be undressing her with my eyes but now...","Wow... I remember when huge cans like hers would totally distract me. Now it's like, do mine have the same jiggly oomph?!","Those hooters! So mesmerizing! As a guy, it’d be like, instant horn dog mode, but now it's like, boob comparison 101 in my head!")])
](else:)[
(print:(twirl:
"A busty chick strolls by and you instinctively check out her jiggling breasts. But the usual thrill is oddly absent, replaced with a muted sense of longing. It's like you're missing a part of yourself, and not just the physical one.",
"There's this girl with huge tits and your eyes just naturally gravitate towards her. But apart from the vague sense of attraction, there's also an inexplicable frustration bubbling up. You're still drawn to them, but not in the same raw, primal way as before.",
"You see a woman with a pair of knockers that'd turn heads anywhere, but instead of the usual surge of desire, you feel...almost nothing. It's a bit of a blow, realizing that your new feminine body doesn't respond in the same way. You miss that old, automatic reaction.",
"A voluptuous babe passes by, her cleavage making you instinctively lick your lips. But that pulse of desire is muted, it's not as intense or immediate. It's confusing and a little unsettling, missing the familiar kick of raw lust.",
"There's this girl with massive melons. You automatically appreciate her, the way you would before, but the physical... spark, it's missing. It's like trying to start a fire without a flint, and damn, it's honestly a little frustrating.",
"A girl bounces by and you find your gaze instinctively dropping to her chest. But aside from a curious twinge, your female body remains stubbornly unresponsive. You miss that old rush of desire.",
"There's this busty brunette - her tits are straight-up hypnotizing. And sure, they still catch your eye, but the fierce pull you'd usually feel? That's gone. It's replaced by something softer, muted. Honestly? It feels like you've been fucking castrated."
))]
](else:)[
(if:(is_bim:))[
($bimbo:[(twirl:"Why am I staring at her lips? Oh, gawd, would my lips look like that if I pout? 😘","Is she checking me out? Teehee~ 😍 Or am I just imagining it 'cause I look so cute now?","Hehe, she’s got such a cute butt! 🍑","Ohhh~ her lip gloss is so shiny and pretty! Should I try something like that?","Um, is she checking out her reflection in the store window?! Lol, I can't stop staring at myself *either! Still can’t believe this body’s *mine*! 😳","She’s so flirty and confident talking to that guy... Wish I could try that... but like, with a dude! 🙈 Ugh, what is happening to me~?!","OMG, she's playing with her hair! I used to love when girls did that. Now I'm just thinking how I should fix mine the same way~ ❤️","Heeey~! Her lipstick shade's *perfect!*")])
](else:)[
(print:(twirl:
"The tantalizing sight of beautiful women seems to follow you everywhere in Summer City. Before, as a man, you would have reveled in such sights, your body responding in an eager show of desire. Now? Now, it feels like being invited to the most sumptuous feast, but without an appetite.",
"Every graceful curve, every smile you see at the women here triggers weird feelings in you. Your mind can recognize, appreciate even, but your body doesn't respond in the same visceral way. It's strangely frustrating, like trying to catch a tune you only vaguely remember.",
"It's a familiar scene - beautiful women parading at the mall, shattering hearts with each sway of their hips. Except, now you're on the other side of the looking glass. A teensy bit of frustration gnaws at you.",
"Noticing the sexy women around you was an instinct once, something primal. Now, you still notice, but the raw surge of desire is missing.",
"At every corner, you're met with the sight of gorgeous women. It's not that different from before, except for the lack of instant physical response. You still find them attractive, but the intense hunger is now replaced with a dull ache. It's nostalgic and frustrating.",
"Damn, that girl's hot. You would have totally got a hard-on before, but now? Now, your female body barely reacts. Your mind remembers the desire, but your body seems to have forgotten. It's a weird feeling.",
"Suddenly, a real knockout passes by. You still feel the urge, but your body's reaction... just isn't the same. It's like missing a step in a familiar dance - frustrating and a little embarrassing. Hopefully no one notices your blush...",
"Your gaze lands on a bombshell, and you find yourself checking her out - old habits die hard, after all. But without that automatic physical response, it's a strange, empty feeling. Kind of like getting all dressed up with nowhere to go.",
"It's a stunning woman causing your heart to skip a beat. You would usually feel a familiar thrill, but now... your female body reacts differently. It's somehow quieter, less intense. Honestly, it's a confusing, and somewhat frustrating, adjustment."))]
]
}{
(if:($girl's "tags" contains "big ass" or $girl's "tags" contains "fat ass" or $girl's "tags" contains "booty shorts") and (twist:1,2) is 1)[
(print:(twirl:
"Your eyes can't help but be entranced by the bouncing rhythm of some girl's booty as she sashays past.",
"The voluptuous hips of a sultry siren who saunters by you have you mesmerized, tracking her every step with a rising pulse.",
"Your heart rate increases as you spot a voluptuous beauty strutting past, her booty jiggling enticingly with each step.",
"As you traverse Paradise Mall, your gaze zeroes in on the hypnotic sway of a curvaceous bombshell's ample ass. Just another day in Summer City.",
"Your heart skips a beat as a buxom babe struts past, her full ass bouncing enticingly.",
"A glorious ass catches your eye, the way it moves with each step the girl takes is like poetry in motion.",
"A girl with a super nice ass walks by, the sight is so captivating it’s hard to look away.",
"Your breath hitches as a girl with a fat, juicy ass saunters past. The way her booty sways with each step is pure art.",
"You feel your cheeks heat up as you watch a hot girl with a plump ass walk by. The way it jiggles with each step is enough to make you lose your train of thought.",
"A tantalizing view of a juicy ass packed in a pair of tight jeans causes your pulse to quicken. Such sights are a regular treat at Paradise Mall.",
"The sight of a luscious booty that could rival any peach you've seen, bouncing with each stride the girl takes, is enough to make you appreciate the wonders of Summer City.",
"You feel a flutter in your chest as a girl with an ass so big and lovely it could be a sin, walks past. The sway of her hips with each step is intoxicating.",
"Your gaze stumbles upon a girl with a curvy ass that would make even the most stoic of men weak in the knees. Her casual elegance in owning her assets makes you appreciate the diversity of beauty in Summer City.",
"As you navigate the mall, you can't help but gawk at a passing babe's bodacious booty, begging to be squeezed and admired.",
"A girl with a fine, thick ass struts by, and you can practically feel your mouth watering as you imagine getting your hands on those luscious cheeks.",
"Your eyes fixate on the hypnotic bounce of a girl's perfect bubble butt as she walks by, making your mind race with dirty thoughts.",
"You feel a little light-headed as your mind fills with fantasies of a girl with a big, beautiful ass that just passed by, her cheeks jiggling like ripe fruit.",
"Your gaze is drawn to a girl with a seriously amazing ass, packed into tight jeans that make it impossible not to stare.",
"A heavenly creature with an ass that could turn a saint into a sinner strides past, her booty the definition of perfection in motion.",
"You catch sight of a girl with an ass so perfectly round it could give the moon a run for its money, causing your dirty thoughts to skyrocket.",
"The heavenly jiggle of a passing girl's glorious booty has you feeling like you've hit the erotic jackpot. Absolutely mesmerizing!",
"A total smoke show walks by, her booty packed so deliciously into her outfit that it's a wonder the seams can hold.",
"Your mind races with wicked thoughts as you glimpse a girl with a booty so fine it should be illegal, the way it bounces and sways with every step.",
"A girl with a scrumptious bottom fit for the gods struts past, and you can't help but picture your hands exploring every inch of those divine cheeks.",
"The sight of a passing babe with an ass so delectable you can almost taste it sends a shiver of delight down your spine.",
"You marvel at a girl's luscious apple bottom as it bounces and jiggles like a gift from the heavens. It's a booty that could bring a grown man to his knees.",
"Your eyes widen as you spot a girl with a booty so mouth-watering it would make even the devil blush. It's an ass that dreams are made of."
))
](else-if:($girl's "tags" contains "hot" or $girl's "tags" contains "gorgeous" or $girl's "tags" contains "sexy") and (twist:1,2) is 1)[
(print:(twirl:
"Your pulse quickens as a stunningly hot girl saunters by, every inch of her radiating a level of sexiness that leaves you aching with desire.",
"As you watch a gorgeously sexy girl go by, you feel your heart pounding - she's a living, breathing fantasy.",
"A girl who could only be described as hot personified walks by - you're captivated, the sight of her igniting a spark of desire within you.",
"Your gaze is drawn to an absolutely gorgeous girl passing by, her allure so potent it's intoxicating.",
"You find it incredibly hard to focus while a sexy siren passes by, her every movement oozing a sensual charm that has your heart skipping beats.",
"A hot babe drifts past, the air around her vibrating with a sexy energy that leaves your pulse racing.",
"You feel a jolt of adrenaline as a sexy bombshell saunters past, her hotness inadvertently flipping your lust switch on.",
"As an incredibly hot girl walks past, you find yourself entranced by her allure - there's something about her that makes your blood burn with desire."))](else-if:($girl's "tags" contains "stylish" or $girl's "tags" contains "elegant") and (twist:1,2) is 1)[
(print:(twirl:
"A stylish woman walks by, each of her movements radiates a kind of elegance that seems to command attention - she's the epitome of allure.",
"The elegant sway of a girl who just passed by captures your gaze; there's something incredibly sexy about her stylish demeanor that you can't ignore.",
"Your heartbeat quickens as you spot a stylishly elegant woman glide past, her refined aura radiating an irresistible charm.",
"A woman of stunning elegance makes her way through the crowd, her stylish presence an oasis of allure in the hustle and bustle of the mall.",
"A woman radiating chic elegance breezes by, her stylish allure so mesmerizing you can't help but watch her.",
"An elegantly stylish woman strolls past, her aura of sophistication so powerful it's almost palpable.",
"You feel a jolt of attraction as a stylishly elegant woman glides past, her graceful demeanor radiating a mesmerizing allure."))](else-if:($girl's "tags" contains "huge tits" or $girl's "tags" contains "jiggling" or $girl's "tags" contains "bouncing" or $girl's "tags" contains "massive melons" or $girl's "tags" contains "big boobs" or $girl's "tags" contains "gigantic breasts") and (twist:1,2) is 1)[
(print:(twirl:
"You find it hard to maintain eye contact with a girl who passes by, her enormous tits bouncing and jiggling with each step, absolutely mesmerizing.",
"Your heart races as you spot a girl with a colossal pair of tits that defy gravity, jiggling like two massive globes, making it impossible to look away.",
"A girl with a chest that could put any pin-up model to shame saunters past; you try to keep your composure as her enormous breasts jiggle tantalizingly.",
"Your eyes are captivated by a girl with a set of huge, jiggling tits, so full and luscious it's a wonder they don't burst from her top.",
"Your gaze is helplessly drawn to the irresistible jiggle of a stunning girl's massive melons, bouncing with every step she takes.",
"A girl with an awe-inspiring pair of big boobs tries to make eye contact with you, but your focus is locked on the hypnotic jiggle of her jiggling tits.",
"Your heart stutters as a girl with a pair of gigantic breasts walks past, her tits swaying and jiggling like ripe fruit, causing your mind to race with filthy fantasies.",
"You struggle to meet a girl's gaze as the bounce of her magnificent chest demands your attention, each jiggling movement making your mouth water.",
"It's a titillating challenge to maintain any semblance of composure as a buxom babe ambles past, the enticing jiggle of her huge tits leaving you breathless.",
"A babe with an unbelievably massive rack wrecks your concentration; you try to focus on her face, but her jiggling tits hold your gaze hostage.",
"Your lustful thoughts spiral out of control as a girl with a heavenly set of jiggling tits passes by, the way they bounce in tandem leaves you weak at the knees."))
](else:)[
(print:(twirl:
"Sexy women are absolutely everywhere in Summer City...",
"You're constantly amazed at how stunning most of the women are here.",
"While navigating the mall, you happen across just another example of the stunning women who inhabit Summer City.",
"There's no shortage of sexy women at Paradise Mall today...",
"Every corner you turn in the mall reveals another breathtaking beauty of Summer City.",
"Sometimes you wonder if Paradise Mall hold a casting calls for the city's most gorgeous women.",
"Summer City is living up to its reputation, heating up with every gorgeous woman you see.",
"Paradise Mall is living up to its name, brimming with heavenly beauties.",
"It's like every gorgeous woman in the city decided to hang out at Paradise Mall today.",
"Your heart skips a beat more than once as you come across the many... 'radiant' women around.",
"Every escalator ride offers a new panorama of beauty as you observe the mall's patrons.",
"Every moment at the mall is a reminder that Summer City is home to unparalleled beauty.",
"A glance at the beauties here, and you're left wondering: natural-born or the wonder of modern transformation pills?",
"It's a world where anyone can be their most desired version, and it shows with every step you take in the mall.",
"The array of beauty at Paradise Mall makes you think it's the prime showcase for X-Change successes or other transformable pills.",
"It's hard to believe that a pill can change so much, but the living proof is all around you in Summer City.",
"If there's any doubt about the efficacy of body-transformation pills, Paradise Mall dispels them instantly.",
"Summer City, where nature meets the marvel of science, and beauty knows no bounds.",
"Some may argue against the authenticity of pill-induced beauty, but in the glow of Paradise Mall, it all feels genuinely spectacular.",
"Between stores and stalls, you glimpse the many faces of transformation–each a testament to the allure of reinvention.",
"Each captivating beauty you spot sends a tantalizing thrill through you.",
"A glimpse of a radiant woman and your heart rate picks up just a bit more.",
"The sultry atmosphere of Paradise Mall leaves you feeling more invigorated with every step.",
"The allure is undeniable–the stunning women of Summer City have you feeling a bit flushed.",
"You're not sure if it's the summer heat or the parade of beauties, but you're definitely feeling warmer.",
"The allure of Summer City's women sends a quiet thrill down your spine with each passing glance.",
"With every beauty you encounter, there's a subtle quickening of your pulse.",
"You can't help but feel a warm flush as another stunning woman saunters by.",
"It's almost a sensory overload, the array of captivating faces and figures in every direction.",
"The combined allure of transformation and natural charm leaves you feeling pleasantly lightheaded.",
"It's a testament to X-Change's marvels: every tantalizing sight nudges your heartbeat just a bit faster.",
"The delicate scent of perfumes in the air, combined with the display of beauty, sends a tingling sensation through you.",
"You try to keep your composure, but the parade of stunning figures has you a little distracted.",
"You find yourself caught in a delightful daze, with the myriad of mesmerizing women surrounding you.",
"Every step in the mall, with its showcase of beauty, feels like a gentle push against your senses.",
"The atmosphere in Paradise Mall is charged, every glimpse and interaction a subtle tease.",
"You're pleasantly overwhelmed, taking in the spectacle of elegance and allure that Summer City offers.",
"Trying to keep your focus is a delightful challenge with the constant showcase of tantalizing beauty."))
]
(set:$curiosity_triggers to (ds:"male", "high masculinity"))
(set:$curiosity_trigger_description to (twirl:"After seeing that lady at the mall, ","Since that encounter with that sexy mall flower, ","You can't stop thinking about that hot woman at the mall; "))
(inc:'time_from_curiosity',5)
}{
(if:($girl's "tags" contains "big ass" or $girl's "tags" contains "fat ass" or $girl's "tags" contains "booty shorts") and (twist:1,2) is 1)[
(print:(twirl:
"You notice the rhythmic sway of a girl's hips as she passes by. It's a nice view, sure, but your heart isn't beating out of chest the way it used to.",
"There goes another curvy girl, her stride able to hold your attention for a couple of seconds before your mind wanders away.",
"Paradise Mall is undoubtedly filled with attractive women. You note the swaying hips of a beauty there, though it doesn't quite stir you the way it once did.",
"A girl with a full, round butt walks by - something you'd usually take note of. Now, though, it's just another sight in Summer City.",
"It's not that you've become blind to a nice ass, it's just that your heart doesn't skip a beat quite like it used to.",
"Admittedly, Summer City has a wide variety of attractive girls. Like that one with a nice ass, strutting down the aisle. Just another day in paradise, isn't it?",
"Of course you still appreciate a good view. That girl's butt packed in those jeans? Nice. Not the sort of mind-blowing sensation it used to be, though.",
"Even with your adjusted mindset, you can still admire a visually pleasing booty. But it just doesn't get you as excited as it did before.",
"An attractive girl passes you by, her ass swaying with each step she takes. It's a nice sight to behold, but not something that has you drooling like before.",
"A voluptuous beauty strides past you, her butt jiggling with each step she takes. Sure, it's a sight to behold, but you don't feel that same intense pull you used to.",
"Despite the change in your interests, you can still appreciate a good sight. Like that girl with an ass that would inspire sonnets in many men. You just... don't feel quite as inspired.",
"An attractive girl with a bouncy behind crosses your path. You can't deny that it's a nice view, but it doesn't consume your thoughts like it once would.",
"Sometimes, you catch yourself staring at a girl's curvy backside, your thoughts wandering before you quickly snap back to your current agenda.",
"That girl has a nice ass, she really does. But it's just... not as big of a deal as it once was to you.",
"You still appreciate the sight of a well-endowed woman. It's just that the sight doesn't seem to rile you up quite as much as it used to.",
"You can't deny the appeal of a woman's booty as she strolls past. But it's not a sight that quickens your pulse like it used to.",
"The intriguing sway of a girl's backside catches your attention briefly. It's a nice sight, sure, but it doesn't stir up as much desire as it used to.",
"Your eyes momentarily linger on the bouncing backside of a girl passing by. The sight is pleasing, but not as stimulating as it was once.",
"A girl with a well-rounded butt walks past. You take a moment to observe the rhythmic sway, but it doesn't instigate those intense lecherous thoughts like before.",
"A curvaceous girl saunters past, her backside a sight to behold. Nice, sure, but it doesn't quite spark that primal interest in you like it used to.",
"Paradise Mall is full of attractive girls. You notice a particularly curvy one, but your heart doesn't race quite like it used to.",
"A girl with an appealing booty cruises by. It's a sight that used to make your heart pound in your chest, but not so much now.",
"You can still admire the female form - that girl's round booty catches your eye - but it doesn't make you lose your train of thought like it once would.",
"Your eyes linger on a girl flaunting a bodacious booty. It's a nice sight, to be sure, but you don't feel that intense desire you once had.",
"A lovely gal with a generous butt glides by, yet it doesn't seem to captivate you as much. It's a sight that used to live rent-free in your mind, but now? Not so much."
))
](else-if:($girl's "tags" contains "huge tits" or $girl's "tags" contains "jiggling" or $girl's "tags" contains "bouncing" or $girl's "tags" contains "massive melons" or $girl's "tags" contains "big boobs" or $girl's "tags" contains "gigantic breasts") and (twist:1,2) is 1)[
(print:(twirl:
"You casually glance at a girl who passes by, her sizable tits moving with each step. It's a sight, that's for sure.",
"Your heart skips a beat slightly as a girl with a large set of tits walks by —you can't help but admire the sight, though it's not as captivating as it used to be.",
"You notice a girl with a well-endowed chest; her breasts move with every step she takes. It's a nice view, but it doesn't quite hook you as much.",
"Your eyes briefly move over a girl with a good pair of breasts, their movement catchy, but not quite as alluring as before.",
"You don't miss the sight of a busty girl; her breasts moving noticeably with her steps. It's interesting, just not quite as heart-stopping.",
"A girl with quite an impressive set of boobs walks by; you give her a quick, appreciative look, then your thoughts move on.",
"You notice a girl with a large chest, her breasts moving tantalizingly — it's a sight, though not quite as spellbinding as before.",
"A busty girl comes into your sight; you give her breasts an appreciative glance before moving your gaze elsewhere.",
"You find your attention briefly captured by a well-endowed girl; her breasts in rhythm with her steps. It's noticeable, just a little less stirring.",
"A girl with an impressive rack disrupts your thoughts for a moment — her jiggling breasts are eye-catchy, but you soon refocus.",
"Your gaze briefly lingers on a girl with a large set of bouncing breasts. An interesting sight, but not as mesmerizing as it used to be."))
](else:)[
(print:(twirl:
"The sight of attractive women in Summer City still catches your eye, though perhaps not as viscerally as before...",
"Among the bustle, you notice the beauty that abounds, yet somehow the intensity of your interest has been tempered...",
"There are beautiful women wandering through Paradise Mall, their allure is evident but not as potent as it once was...",
"As you wander the halls, the sight of pretty women no longer stops you in your tracks, though they do still earn a glance...",
"In this timeless realm, the presence of beautiful women is almost ambient now; attractive, yes, but not breathtaking...",
"You catch yourself glancing at a stunning woman, but the thrill that once was, seems diluted...",
"Attractive women pass by, their beauty as present as ever, but your reaction has faded into soft admiration rather than quickened heartbeat...",
"You notice a woman, her form is undoubtedly alluring, but there's a distinct difference in how you perceive her now from before...",
"The women in Summer City still hold their charm, but it's as if the dial on your desire for them has been turned down a notch...",
"Your eye catches a breathtaking woman passing by, yet the wave of attraction is less intense, leaving room for contemplation...",
"Another beauty walks past, and you note the difference in your response - your gaze lingers, not out of lust, but a kind of nostalgia...",
"A stunning woman saunters by, triggering not only admiration but an introspection. Are your past transformations shaping your preferences?",
"A beautiful woman steps onto the escalator beside you. You feel a familiar pull, but it's accompanied by a curious introspection; your masculinity feels different, somehow...",
"The sight of a gorgeous woman sparks a distant memory, a recollection of your own time embodying femininity inducing a strange sense of kinship...",
"Attractive women are all around, their beauty is undeniable but your gaze doesn't linger quite as long anymore...",
"A woman passes by, her beauty apparent but it doesn't stir your desires quite like it used to. A peculiar reflection of your time spent on transformation pills...",
"You find yourself appreciating the ethereal nature of beauty, rather than being consumed by desire. Your own transformation experience seems to have tempered your reaction...",
"Your heart catches sight of another beauty, yet it's not the same seismic jolt as before. It makes you wonder about your own shifting masculinity...",
"A radiant woman catches your eye, but it doesn't spark the same wildfire of desire. An interesting echo from your past self on these freaking transformation pills..."))
]
(set:$curiosity_triggers to (ds:"male", "mid masculinity"))
(set:$curiosity_trigger_description to (twirl:"After seeing that lady at the mall, ","Since that encounter with that sexy mall flower, ","You can't stop thinking about that hot woman at the mall; "))
(inc:'time_from_curiosity',5)
}{
(if:($girl's "tags" contains "big ass" or $girl's "tags" contains "fat ass" or $girl's "tags" contains "booty shorts") and (twist:1,2) is 1)[
(print:(twirl:
"You notice the rhythmic sway of a girl's hips as she passes by. It's a nice view, sure, but your heart isn't beating out of chest the way it used to.",
"There goes another curvy girl, her stride able to hold your attention for a couple of seconds before your mind wanders away.",
"Paradise Mall is undoubtedly filled with attractive women. You note the swaying hips of a beauty there, though it doesn't quite stir you the way it once did.",
"A girl with a full, round butt walks by - something you'd usually take note of. Now, though, it's just another sight in Summer City.",
"It's not that you've become blind to a nice ass, it's just that your heart doesn't skip a beat quite like it used to.",
"Admittedly, Summer City has a wide variety of attractive girls. Like that one with a nice ass, strutting down the aisle. Just another day in paradise, isn't it?",
"Of course you still appreciate a good view. That girl's butt packed in those jeans? Nice. Not the sort of mind-blowing sensation it used to be, though.",
"Even with your adjusted mindset, you can still admire a visually pleasing booty. But it just doesn't get you as excited as it did before.",
"An attractive girl passes you by, her ass swaying with each step she takes. It's a nice sight to behold, but not something that has you drooling like before.",
"A voluptuous beauty strides past you, her butt jiggling with each step she takes. Sure, it's a sight to behold, but you don't feel that same intense pull you used to.",
"Despite the change in your interests, you can still appreciate a good sight. Like that girl with an ass that would inspire sonnets in many men. You just... don't feel quite as inspired.",
"An attractive girl with a bouncy behind crosses your path. You can't deny that it's a nice view, but it doesn't consume your thoughts like it once would.",
"Sometimes, you catch yourself staring at a girl's curvy backside, your thoughts wandering before you quickly snap back to your current agenda.",
"That girl has a nice ass, she really does. But it's just... not as big of a deal as it once was to you.",
"You still appreciate the sight of a well-endowed woman. It's just that the sight doesn't seem to rile you up quite as much as it used to.",
"You can't deny the appeal of a woman's booty as she strolls past. But it's not a sight that quickens your pulse like it used to.",
"The intriguing sway of a girl's backside catches your attention briefly. It's a nice sight, sure, but it doesn't stir up as much desire as it used to.",
"Your eyes momentarily linger on the bouncing backside of a girl passing by. The sight is pleasing, but not as stimulating as it was once.",
"A girl with a well-rounded butt walks past. You take a moment to observe the rhythmic sway, but it doesn't instigate those intense lecherous thoughts like before.",
"A curvaceous girl saunters past, her backside a sight to behold. Nice, sure, but it doesn't quite spark that primal interest in you like it used to.",
"Paradise Mall is full of attractive girls. You notice a particularly curvy one, but your heart doesn't race quite like it used to.",
"A girl with an appealing booty cruises by. It's a sight that used to make your heart pound in your chest, but not so much now.",
"You can still admire the female form - that girl's round booty catches your eye - but it doesn't make you lose your train of thought like it once would.",
"Your eyes linger on a girl flaunting a bodacious booty. It's a nice sight, to be sure, but you don't feel that intense desire you once had.",
"A lovely gal with a generous butt glides by, yet it doesn't seem to captivate you as much. It's a sight that used to live rent-free in your mind, but now? Not so much."
))
](else-if:($girl's "tags" contains "huge tits" or $girl's "tags" contains "jiggling" or $girl's "tags" contains "bouncing" or $girl's "tags" contains "massive melons" or $girl's "tags" contains "big boobs" or $girl's "tags" contains "gigantic breasts") and (twist:1,2) is 1)[
(print:(twirl:
"You casually glance at a girl who passes by, her sizable tits moving with each step. It's a sight, that's for sure.",
"Your heart skips a beat slightly as a girl with a large set of tits walks by —you can't help but admire the sight, though it's not as captivating as it used to be.",
"You notice a girl with a well-endowed chest; her breasts move with every step she takes. It's a nice view, but it doesn't quite hook you as much.",
"Your eyes briefly move over a girl with a good pair of breasts, their movement catchy, but not quite as alluring as before.",
"You don't miss the sight of a busty girl; her breasts moving noticeably with her steps. It's interesting, just not quite as heart-stopping.",
"A girl with quite an impressive set of boobs walks by; you give her a quick, appreciative look, then your thoughts move on.",
"You notice a girl with a large chest, her breasts moving tantalizingly — it's a sight, though not quite as spellbinding as before.",
"A busty girl comes into your sight; you give her breasts an appreciative glance before moving your gaze elsewhere.",
"You find your attention briefly captured by a well-endowed girl; her breasts in rhythm with her steps. It's noticeable, just a little less stirring.",
"A girl with an impressive rack disrupts your thoughts for a moment — her jiggling breasts are eye-catchy, but you soon refocus.",
"Your gaze briefly lingers on a girl with a large set of bouncing breasts. An interesting sight, but not as mesmerizing as it used to be."))
](else:)[
(print:(twirl:
"As a particularly gorgeous girl walks by, her confidence is infectious, and you can't help but wonder if you could be that confident...",
"You gaze at a model-like woman passing by, and there’s a disconnect. Your desire to be with her is replaced by a desire to be her...",
"Upon observing a stunning woman, a different kind of longing stirs within you, not of desire, but of emulation...",
"A beautiful woman saunters by, her grace reminds you of your own time spent in a woman's body.",
"*I don't feel like a man anymore... these kind of girls don't even turn me on at all!*",
"As another alluring figure strolls past, you marvel at the art of walking in heels. You can almost feel the familiar pressure on your own soles...",
"You spot a stunning woman, her beauty triggers memories of your own transformations, making you question your place among men and women...",
"What used to invoke desire, now sparks reflection. Women have become more of a mirror than an object of desire...",
"A woman passes by, her scent taking you back to the time you’d been in her shoes. There’s a pang of longing...",
"Observing the women around you, you feel a strange sensation, as if they remind you more of yourself than of an 'other'...",
"*Why am I looking at her outfit, not her body?*",
"You glance at a woman and rather than lust, you feel memory.",
"As a woman passes by, you find yourself not longing for her, but for the experience of what it is to be her...",
"As a beautiful woman glides past, you find your thoughts drifting back to your own time experiencing femininity... there's a bittersweetness about it.",
"A woman strides past, her confidence captivating. It's not attraction you feel but a sense of longing - to experience femininity again.",
"Memories of vibrant dresses and soft perfumes surface as you watch a group of women. The nostalgia is intensifying..."))
]
(set:$curiosity_triggers to (ds:"low masculinity"))
(set:$curiosity_trigger_description to (twirl:"After seeing that confident lady at the mall, ","Since that encounter with that captivating mall flower, ","You can't stop thinking about that woman at the mall; "))
(inc:'time_from_curiosity',5)
}{
(if:agecat of $npc is "late teens")[(set:$npc's "breath" to (twirl:"G-fuel","potato chips","energy drinks","pizza","Starbucks coffee","Cheezits","Doritos","Cheetos","Pringles"))]
(if:agecat of $npc is "early twenties")[(set:$npc's "breath" to (twirl:"G-fuel","potato chips","energy drinks","pizza","Starbucks coffee","Cheezits","Doritos","Cheetos","Pringles","caramel macchiato"))]
(if:agecat of $npc is "twenties")[(set:$npc's "breath" to (twirl:"starbucks coffee","coffee","potato chips","mangoes","caramel macchiato","Mexican food","orange juice"))]
(if:agecat of $npc is "thirties")[(set:$npc's "breath" to (twirl:"starbucks coffee","coffee","potato chips","mangoes","caramel macchiato","Mexican food","orange juice"))]
(if:agecat of $npc is "forties")[(set:$npc's "breath" to (twirl:"bagel bites","Skittles","Hot Pockets","stale coffee","coffee","starbucks","cigarettes"))]
(if:agecat of $npc is "fifties")[(set:$npc's "breath" to (twirl:"Cheez whiz","Pepperidge farm cookies","peanut M&Ms","liquorice","Good & Plentys","Doritos","peanut butter","Reese's peanut butter cups"))]
(if:$npc's "tags" contains "chubby")[(set:$npc's "breath" to (twirl:"pizza","burgers","ice cream","coffee","Cheetos"))]
(if:$npc's "tags" contains "nerd")[(set:$npc's "breath" to (twirl:"Doritos","gamer energy drinks","Cheetos","Mountain Dew"))]
(if:$current_activity is "Hit the bar")[(set:$npc's "breath" to (twirl:"tequila","red wine","beer","beer","whisky","whisky","beer","IPA","Budweiser"))]
}{
(unless:(datanames:$npc) contains "last name")[(display:"random guy last name")]
(unless:(datanames:$npc) contains "sex name")[(set:$npc's "sex name" to $npc's "name")]
(unless:(datanames:$npc) contains "events")[(set:$npc's "events" to (a:"name"))]
(unless:(datanames:$npc) contains "fitness")[(set:$npc's "fitness" to (twist:4,6))]
(unless:(datanames:$npc) contains "cocklength")[
($use_global: "$cock_database", "window.GE.cock_database", [{
(set:$npc to it + (twirl: ...$cock_database))
}])
]
}{
<!-- default values that are independent of other values. Overwritten by any similar values already present in $npc -->
(set:_default to (dm:
"race", "white",
"tags", (a:),
"events", (a:),
"stamina", (twist:8,15),
"oral skill", (twist:1,10),
"favorite color", (twirl:"red","white","black","yellow","purple","pink","orange"),
"favorite style", (twirl:"elegant", "slutty","cute","casual","sexy"),
"preference", (twirl:"ass","tits")
))
(set:_original_npc to (dm:))
(set:$exclude_tags to (a:))
(set:$include_tags to (a:))
(if:$npc is a datamap)[
(if:$npc contains "img")[(display:"npc tailored values")] <!-- insert tailored values matching appearance for specific npcs -->
(set:_original_npc to $npc)
(set:$npc to _default + $npc)
](else:)[
(set:$npc to _default)
]
(set:$npc's "tags" to it + $include_tags)
(set:str-type _variant to (text:(twist:1,10)))
($use_global: "$cock_database", "window.GE.cock_database", [
(set:$npc to it + (twirl: ...$cock_database))
])
(if:$min_npc_age is 0)[(set:$min_npc_age to "Min Age: 18")]
(if:$max_npc_age is 0)[(set:$max_npc_age to "Max Age: 55")]
(unless:$npc contains "age")[
(set:_min_age to (num: 1st of (str-find: (p-many: digit), $min_npc_age)))
(set:_max_age to (num: 1st of (str-find: (p-many: digit), $max_npc_age)))
(set:_max_age to (cond: (twist:1,2) is 1, 30, _max_age))
(set:$npc's "age" to (max:18,(twist:_min_age, _max_age)))
]
(unless:$npc contains "agecat")[
(set:$npc's "agecat" to (cond:
$npc's "age" < 20, "late teens",
$npc's "age" < 25, "early twenties",
$npc's "age" < 30, "twenties",
$npc's "age" < 40, "thirties",
$npc's "age" < 50, "forties",
"fifties"
))
]
(unless:$npc contains "generation")[
(set:$npc's "generation" to (cond: $npc's "age" < 24, "genz", $npc's "age" < 38, "millenial", "genx"))
]
(unless:$npc contains "type")[
(set:$npc's "type" to (twirl:"chad","bad","lad"))
]
(unless:$npc contains "img")[
(set:$npc's "img" to "img/npc/guys/generated/" + $npc's "generation" + "/" + $npc's "type" + "/" + _variant + ".jpg")
]
(unless:$npc contains "wealth")[
(if:$npc's "generation" is "genx")[
(if:(twist:1,4) is 1)[
(set:$npc's "wealth" to (twist:1,7))
](else:)[
(set:$npc's "wealth" to (twist:5,10))
]
](else-if:$npc's "generation" is "millenial")[
(set:$npc's "wealth" to (twist:1,10))
](else-if:$npc's "generation" is "genz")[
(set:_wealth_cap to (cond: (twist:1,4) is 1, 10, 4))
(set:$npc's "wealth" to (twist:1,_wealth_cap))
]
]
(set:_guys to (a:"NONE"))
(if:$npc's "age" >= 38)[
(set:_guys to (a:"man","guy"))
](else-if:$npc's "age" >= 24)[
(set:_guys to (a:"guy","dude","guy","dude","guy","fellow"))
](else-if:$npc's "age" >= 20)[
(set:_guys to (a:"dude", "guy", "fellow", "twenty-something"))
](else:)[
(set:_guys to (a:"dude", "guy", "fellow", "teen", "teenager", "teen", "boy"))
]
(set:_guy to (twirl:..._guys))
($use_global: '$guy_database', 'window.GE.guy_database', [{
(set:_generation_guys to $npc's "generation" of $guy_database)
(set:_npc to _variant of $npc's "type" of _generation_guys)
(move:"unfamiliar names" of _npc into _names)
(move:"descriptions" of _npc into _descriptions)
(set:"unfamiliar name" of _npc to (upperfirst:(replaced:"_guy", _guy, (twirl:..._names))))
(set:"description" of _npc to (replaced:"_guy", _guy, (twirl:..._descriptions)))
(set:"first name" of _npc to (twirl:...("first names" of _generation_guys)))
(set:"hands" of _npc to (twirl:...("hands" of _generation_guys)))
(set:$npc to it + _npc) <!-- adds looks, first name, unfamiliar name, description, hands, tags, and race from database -->
}])
(unless:$npc's "race" is "white")[(display:"generate random guy racial name")]
(display:"random guy last name")
(if:_original_npc contains "first name")[
(set:$npc's "first name" to _original_npc's "first name")
]
(if:_original_npc contains "last name")[
(set:$npc's "last name" to _original_npc's "last name")
]
(unless:$npc contains "name")[
(set:$npc's "name" to (cond:$npc's "age" > 35, "Mr. " + "last name" of $npc, "first name" of $npc))
]
(unless:$npc contains "sex name")[
(set:$npc's "sex name" to (upperfirst:$npc's "name"))
]
(unless:$npc contains "intellect")[
(if:$npc's "tags" contains "nerd")[
(set:$npc's "intellect" to (twist:5,10))
](else-if:$npc's "tags" contains "fuckboy" or $npc's "tags" contains "jock")[
(set:$npc's "intellect" to (twist:1,5))
](else:)[
(set:$npc's "intellect" to (twist:1,10))
]
]
(unless:$npc contains "fitness")[
(if:$npc's "tags" contains "jock" or $npc's "tags" contains "chad")[
(set:$npc's "fitness" to (twist:5,10))
](else-if:$npc's "tags" contains "nerd" or $npc's "tags" contains "chubby")[
(set:$npc's "fitness" to (twist:1,5))
](else:)[
(set:$npc's "fitness" to (twist:1,10))
]
]
(if:$npc's "fitness" > 8)[
(set:$npc's "tags" to it + (a:"jock"))
]
(if:length of $npc's "tags" is 0)[
(set:$npc's "tags" to it + (a:(twirl:"selfish","nice","unremarkable","cool")))
]
(if:($npc's "tags" contains "fuckboy") or ($npc's "tags" contains "bully") or ($npc's "tags" contains "smug"))[
(set:$npc's "tags" to it + (a:"selfish"))
]
(if:_original_npc contains "tags")[(set:$npc's "tags" to _original_npc's "tags")] <!-- reset tags if there were pre-existing values-->
(unless:$npc contains "personality")[
(set:$npc's "personality" to (twist:1,10))
(if:$npc's "tags" contains "cool")[(set:$npc's "personality" to (twist:5,8))]
(if:$npc's "tags" contains "charming")[(set:$npc's "personality" to (twist:5,8))]
(if:$npc's "tags" contains "jock")[(set:$npc's "personality" to (twist:5,8))]
(if:$npc's "tags" contains "selfish")[(set:$npc's "personality" to (twist:1,6))]
(if:$npc's "tags" contains "annoying")[(set:$npc's "personality" to (twist:1,5))]
(if:$npc's "tags" contains "unremarkable")[(set:$npc's "personality" to (twist:4,6))]
(if:$npc's "tags" contains "creepy")[(set:$npc's "personality" to (twist:1,5))]
(if:$npc's "tags" contains "fuckboy" or $npc's "tags" contains "bully")[(set:$npc's "personality" to (twist:1,6))]
(if:$npc's "tags" contains "nice")[(set:$npc's "personality" to (twist:5,10))]
(if:$npc's "tags" contains "gentleman")[(set:$npc's "personality" to (twist:7,10))]
(if:$npc's wealth > 7 and $npc's personality > 5)[(set:$npc's "personality" to it - 1)]
(if:$npc's wealth > 8 and $npc's personality > 5)[(set:$npc's "personality" to it - 1)]
(if:$npc's wealth > 9 and $npc's personality > 5)[(set:$npc's "personality" to it - 1)]
(if:$npc's generation is "genx" and $npc's personality < 7)[(set:$npc's personality to it + 1)]
(if:$npc's generation is "genz" and $npc's personality > 2)[(set:$npc's personality to it - 1)]
]
(display:"npc outfit modifiers")
(if:_original_npc contains "tags")[(set:$npc's "tags" to _original_npc's "tags")] <!-- reset tags again if there were pre-existing values-->
(unless:$npc contains "hygiene")[
(set:$npc's "hygiene" to (twist:1,10))
(if:$npc's "tags" contains "chubby")[(set:$npc's "hygiene" to (twist:1,6))]
(if:$npc's "tags" contains "charming")[(set:$npc's "hygiene" to (twist:5,8))]
(if:$npc's "tags" contains "chad")[(set:$npc's "hygiene" to (twist:3,7))]
(if:$npc's "tags" contains "nerd")[(set:$npc's "hygiene" to (twist:1,7))]
(if:$npc's "tags" contains "gentleman")[(set:$npc's "hygiene" to (twist:5,10))]
(if:$npc's "tags" contains "smells good")[(set:$npc's "hygiene" to (twist:7,10))]
(if:$npc's "tags" contains "smelly")[(set:$npc's "hygiene" to (twist:1,3))]
]
(unless:$npc contains "kissing style")[
(set:$npc's "kissing style" to "normal")
(if:$npc's "tags" contains "fuckboy" or $npc's "tags" contains "jock")[(set:$npc's "kissing style" to "aggressive")]
(if:$npc's "tags" contains "charming")[(set:$npc's "kissing style" to (twirl:"dominant","passionate"))]
(if:$npc's "tags" contains "chad")[(set:$npc's "kissing style" to "dominant")]
(if:$npc's "tags" contains "nerd")[(set:$npc's "kissing style" to (twirl:"weak","slobber","normal"))]
(if:$npc's "tags" contains "smelly")[(set:$npc's "kissing style" to "gross")]
(if:$npc's "personality" > 7 or $npc's "tags" contains "gentleman")[(set:$npc's "kissing style" to "passionate")]
(if:$npc's "fitness" < 3 and (twist:1,2) is 1)[(set:$npc's "kissing style" to "weak")]
(if:$npc's "hygiene" < 3 and (twist:1,2) is 1)[(set:$npc's "kissing style" to "gross")]
]
(unless:$npc contains "alternate names")[
(set:$npc's "alternate names" to (a:))
(set:$npc's "alternate possessive names" to (a:))
(if:$npc's "agecat" is "late teens")[
(set:$npc's "alternate names" to it + (a:"he","the teen"))
(set:$npc's "alternate possessive names" to it + (a:"his","the teen's"))
]
(if:$npc's "agecat" is "fifties")[
(set:$npc's "alternate names" to it + (a:"he","the old guy"))
(set:$npc's "alternate possessive names" to it + (a:"his","the old guy's"))
]
(if:$npc's "tags" contains "charming")[
(set:$npc's "alternate names" to it + (a:"he","the charming guy"))
(set:$npc's "alternate possessive names" to it + (a:"his","the charming guy's"))
]
(if:$npc's "tags" contains "gentleman")[
(set:$npc's "alternate names" to it + (a:"he","the gentleman"))
(set:$npc's "alternate possessive names" to it + (a:"his","the gentleman's"))
]
(if:$npc's "tags" contains "chubby")[
(set:$npc's "alternate names" to it + (a:"he","the chubby guy"))
(set:$npc's "alternate possessive names" to it + (a:"his","the chubby guy's"))
]
(if:$npc's "tags" contains "chad")[
(set:$npc's "alternate names" to it + (a:"he","the chad"))
(set:$npc's "alternate possessive names" to it + (a:"his","the chad's"))
]
(if:$npc's "tags" contains "nerd")[
(set:$npc's "alternate names" to it + (a:"he","the nerd"))
(set:$npc's "alternate possessive names" to it + (a:"his","the nerd's"))
]
]
(if:$npc's "tags" contains "chubby")[
(set:$npc's "hands" to (twirl:"pudgy","chubby"))
]
(if:$npc's "tags" contains "chad")[
(set:$npc's "hands" to (twirl:"strong","firm","manly"))
]
(if:$npc's "tags" contains "nerd")[
(set:$npc's "hands" to (twirl:"clammy","sweaty","soft"))
]
(if:$npc's "tags" contains "gentleman")[
(set:$npc's "hands" to (twirl:"firm","smooth","graceful","gentlemanly"))
]
(if:$npc's "tags" contains "smelly")[
(set:$npc's "hands" to (twirl:"clammy","sweaty"))
]
(display:"guy breath update")
(if:((twist:1,10) is 1 and $pregnancy_chance > 5) or $everyone_breeds is "Every NPC Mysteriously Wants to Breed You: Enabled")[
(if:_original_npc contains "tags")[
(if:_original_npc's "tags" contains "breeder")[
(display:"breedify npc")
]
](else:)[
(display:"breedify npc")
]
]
(if:$npc's tags contains "chad" or $npc's tags contains "bully" or $npc's "tags" contains "jock" or $npc's tags contains "breeder")[
(set:$npc's "dominance" to (twist:8,10))
](else-if:$npc's "age" > 34)[
(set:$npc's "dominance" to (twist:4,8))
](else-if:$npc's "age" < 22 or $npc's "tags" contains "nerd")[
(set:$npc's "dominance" to (twist:2,6))
](else:)[
(set:$npc's "dominance" to (twist:1,10))
]
(unless:$npc contains "id")[
(display:"npc generate id")
]
<!-- If the original npc included partial cock data, ensure reasonable similarity on final npc where possible -->
(if:_original_npc contains some of (a:"cockrating","cockfatness","cocklength","ballsize"))[
(set:_min_cockrating to 1)
(if:_original_npc contains "cockrating")[(set:_min_cockrating to _original_npc's "cockrating")]
(set:_min_cockrating to ($clamp:_min_cockrating, 1, 10))
(set:_min_cockfatness to 1)
(if:_original_npc contains "cockfatness")[(set:_min_cockfatness to _original_npc's "cockfatness")]
(set:_min_cockfatness to ($clamp:_min_cockfatness, 1, 10))
(set:_min_cocklength to 1)
(if:_original_npc contains "cocklength")[(set:_min_cocklength to _original_npc's "cocklength")]
(set:_min_cocklength to ($clamp:_min_cocklength, 1, 10))
(set:_min_ballsize to 1)
(if:$npc's "tags" contains "breeder")[(set:_min_ballsize to 10)]
(if:_original_npc contains "ballsize")[(set:_min_ballsize to _original_npc's "ballsize")]
(set:_min_ballsize to ($clamp:_min_ballsize, 1, 10))
($use_global: "$cock_database", "window.GE.cock_database", [
(set:$npc to it + (twirl:...(find:_cock where _cock's "cockrating" >= _min_cockrating and _cock's "cockfatness" >= _min_cockfatness and _cock's "cocklength" >= _min_cocklength and _cock's "ballsize" >= _min_ballsize, ...$cock_database)))
])
]
(set:$npc's "tags" to it - $exclude_tags)
(set:$npc to $npc + _original_npc) <!-- return original values to $npc, overwriting any conflicts with generated data -->
}{
(set:$exclude_tags to (a:))
(set:$include_tags to (a:))
(if:$npc's "img" contains "img/npc/family/stepdad/portrait")[
(set:$npc to (dm:
"age",(twist:40,52),
"wealth",(twist:5,8),
"looks",(twist:4,6),
"dominance",(twist:4,8),
"type",(twirl:"bad","lad"),
"race","white",
"first name",$stepdad's "name",
"unfamiliar name","Your stepdad",
"description","Your stepdad",
"tags",(a:"unremarkable","selfish"),
"ballsize",10,
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/guys/bruce/portrait")[
(set:$npc to (dm:
"age",(twist:22,34),
"wealth",10,
"looks",10,
"hygiene",8,
"race","white",
"first name","Bruce",
"last name","Maddox",
"type",(twirl:"chad","lad"),
) + $npc)
(if:$npc's "type" is "chad")[(set:$include_tags to (a:"chad"))]
(set:$exclude_tags to (a:"beard","smelly"))
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/guys/hollis/portrait")[
(set:$npc to (dm:
"age",(twist:20,22),
"looks",10,
"race","white",
"first name","Hollis",
"type","lad",
"unfamiliar name","Hollis",
"description","Your friend, Hollis,",
"tags",(a:"cool","nice","charming","smells good"),
"cockrating",(twist:8,10),
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/scenes/characters/cassidy/sex/workout/pics/darryl.jpg")[
(set:$npc to (dm:
"age",(twist:25,35),
"looks",(twist:7,9),
"fitness",(twist:8,10),
"dominance",(twist:4,7),
"race","white",
"first name","Darryl",
"type","lad",
"unfamiliar name","Darryl",
"description","Alexia's gym-buddy, Darryl,",
"tags",(a:"jock","nice"),
"cockfatness",(twist:7,9),
"cocklength",(twist:5,7),
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/scenes/characters/mia/sex/workout/pics/steven.jpg")[
(set:$npc to (dm:
"age",(twist:40,52),
"wealth",(twist:5,8),
"looks",(twist:6,9),
"fitness",(twist:6,8),
"dominance",(twist:4,8),
"type","lad",
"race","white",
"first name","Steven",
"unfamiliar name","Steven",
"description","Steven",
"tags",(a:"nice","gentleman","beard"),
"cocklength",(twist:6,8),
"ballsize",(twist:6,8),
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/scenes/characters/rae/sex/workout/matt.jpg")[
(set:$npc to (dm:
"age",(twist:25,37),
"looks",(twist:6,8),
"fitness",(twist:9,10),
"dominance",(twist:8,10),
"race","white",
"first name","Matt",
"age",45,
"type","chad",
"wealth",4,
"personality",3,
"unfamiliar name","Matt",
"description","Matt",
"tags",(a:"chad","jock","bully","beard","selfish"),
"cockfatness",(twist:8,10),
"cocklength",(twist:8,10),
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/guys/sales calls/manuel.jpg")[
dumb bitch
(set:$npc to (dm:
"age",(twist:38,48),
"wealth",(twist:8,10),
"looks",10,
"fitness",10,
"dominance",10,
"race","latin",
"type","chad",
"tags",(a:"chad","jock","bully","beard","selfish"),
"cockrating",(twist:9,10),
"cockfatness",(twist:9,10),
"cocklength",(twist:7,9),
"ballsize",(twist:6,8),
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/guys/sales calls/business.jpg")[
(set:$npc to (dm:
"age",(twist:45,55),
"wealth",(twist:8,10),
"looks",(twist:6,9),
"type","lad",
"race","white",
) + $npc)
(set:$exclude_tags to (a:"beard","smelly"))
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/guys/sales calls/hnr guy.jpg")[
(set:$npc to (dm:
"age",(twist:25,37),
"looks",(twist:5,8),
"type",(twirl:"chad","lad"),
"race","white",
) + $npc)
(if:$npc's "type" is "chad")[
(set:$include_tags to it + (a:"chad","selfish"))
](else:)[
(set:$include_tags to (a:"selfish"))
]
(set:$exclude_tags to (a:"beard","smelly"))
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/scenes/story/the maid on the shore/olias.jpg")[
(set:$npc to (dm:
"age",(twist:25,37),
"looks",(twist:8,10),
"fitness",(twist:8,10),
"dominance",(twist:6,10),
"race","white",
"type","lad",
"first name","Olias",
"unfamiliar name","Olias",
"description","Olias",
"tags",(a:"nice","charming","gentleman"),
"cockrating",(twist:9,10),
"cockfatness",(twist:7,9),
"cocklength",(twist:9,10),
"ballsize",(twist:6,8),
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/job/boss.jpg")[
(set:$npc to (dm:
"age",(twist:35,45),
"wealth",(twist:6,9),
"race","white",
"first name","Michael",
"type","lad",
) + $npc)
(set:$exclude_tags to (a:"beard","smelly"))
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/job/facilities manager.jpg")[
(set:$npc to (dm:
"age",(twist:28,38),
"race","white",
"first name","Ray",
) + $npc)
(set:$exclude_tags to (a:"beard"))
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/job/drew.jpg")[
(set:$npc to (dm:
"age",(twist:35,45),
"race","white",
"first name","Drew",
"type","lad",
) + $npc)
(unless:$npc contains "events")[(set:$npc's "events" to (a:))]
(set:$npc's "events" to $npc's "events" + (a:"your name","name"))
](else-if:$npc's "img" contains "img/npc/store/clerk.jpg")[
(set:$npc to (dm:
"age",(twist:40, 48),
"tags",(a:"smug","selfish","beard"),
"race","white",
"type","chad",
"intellect",(twist:7,9),
"fitness",(twist:6,8),
"dominance",(twist:7,9),
"wealth",(twist:6,8),
"looks",(twist:6,8),
"personality",(twist:4,6),
"hygiene",(twist:7,9),
"unfamiliar name", "The X-Change Pharmacist",
"sex name","the X-Change Pharmacist",
"description","a pharmacist with a big smile",
"first name",(twirl:"Michael","Christopher","Matthew","Joshua","David","James","Daniel","Robert","Bob","Bill","William","John","Jason","Justin","Andrew","Ryan","Anthony","Eric","Kevin","Steven","Timothy","Richard","Jeremy","Kyle","Benjamin","Charles","Mark","Patrick","Scott","Nathan","Dustin","Tyler","Alexander","Samuel"),
"last name",(twirl:"Smith","Johnson","Williams","Brown","Jones","Miller","Davis","Wilson","Thomas","Taylor","Moore","Jackson","Martin","Lee","White","Harris","Clark","Lewis","Wright","King","Hill","Hall","Green","Adams","Nelson","Baker","Campbell","Mitchell","Roberts","Phillips","Evans"),
) + $npc)
](else-if:$npc's "img" contains "img/npc/store/security.jpg")[
(set:$npc to (dm:
"age",(twist:38,45),
"race","white",
"type","bad",
) + $npc)
(set:$exclude_tags to (a:"beard"))
](else-if:$npc's "img" contains "img/npc/store/stylist.jpg")[
(set:$npc to (dm:
"age",(twist:42,55),
"race","white",
) + $npc)
(set:$exclude_tags to (a:"beard"))
]
}{
(if: $npc_type is "coworker")
[
(display:"generate random guy office babes edition")
]
(else:)[
(if:((twist:1,10) is 1 and $pregnancy_chance > 5) or $everyone_breeds is "Every NPC Mysteriously Wants to Breed You: Enabled")[(set:$breeder to "true")](else:)[(set:$breeder to "false")]
(if:$min_npc_age is 0)[(set:$min_npc_age to "Min Age: 18")]
(if:$max_npc_age is 0)[(set:$max_npc_age to "Max Age: 55")]
(set:_min_age to (num: 1st of (str-find: (p-many: digit), $min_npc_age)))
(set:_max_age to (num: 1st of (str-find: (p-many: digit), $max_npc_age)))
(set:_max_age to (cond: (twist:1,2) is 1, 30, _max_age))
(set:_age to (twist:_min_age, _max_age))
(set:_agecat to (cond:
_age < 20, "late teens",
_age < 25, "early twenties",
_age < 30, "twenties",
_age < 40, "thirties",
_age < 50, "forties",
"fifties"
))
(set:_generation to (cond: _age < 24, "genz", _age < 38, "millenial", "genx"))
(set:_type to (cond:$npc_type is "coworker","coworker",$current_activity is "Go to the beach","beach",(twirl:"chad","bad","lad")))
(set:$types to (a:"1","2","3","4","5","6","7","8","9","10"))
(if:$npc_type is "coworker")[
(if:$coworkers is 0)[(set:$coworkers to (a:))]
(for: each _coworker, ...$coworkers)[(set:$types to it - (a:(text:(words:_coworker)'s 3rd)))]
]
(set:str-type _variant to (text:(twirl:...$types)))
(set:_img to "img/npc/guys/generated/" + _generation + "/" + _type + "/" + _variant + ".jpg")
($use_global: "$cock_database", "window.GE.cock_database", [{
(set:$npc to (dm:
"tags", (a:),
"events", (a:),
"race", "white",
"stamina", (twist:8,15),
"oral skill", (twist:1,10),
"kissing style", "normal",
"alternate names", (a:),
"alternate possessive names", (a:),
"favorite color", (twirl:"red","white","black","yellow","purple","pink","orange"),
"favorite style", (twirl:"elegant","slutty","cute","casual","sexy"),
"age", _age,
"agecat", _agecat,
"generation", _generation,
"type", _type,
"img", _img,
"last name", (twirl:"Smith","Johnson","Williams","Brown","Jones","Miller","Davis","Wilson","Thomas","Taylor","Moore","Jackson","Martin","Lee","White",
"Harris","Clark","Lewis","Wright","King","Hill","Hall","Green","Adams","Nelson","Baker","Campbell","Mitchell","Roberts","Phillips","Evans"),
"preference", (twirl:"ass","tits")
) + (twirl: ...$cock_database))
}])
(if:(twist:1,2) is 1)[
(set:$npc's "stamina" to (min:$npc's "stamina", (cock:"rating","npc") + 5))
]
(set:$npc's "variant" to _variant)
(if:_agecat is "late teens")[
(set:"alternate names" of $npc to it + (a:"he","the teen"))
(set:"alternate possessive names" of $npc to it + (a:"his","the teen's"))
](else-if:_agecat is "fifties")[
(set:"alternate names" of $npc to it + (a:"he","the old guy"))
(set:"alternate possessive names" of $npc to it + (a:"his","the old guy's"))
]
(set: _wealth_range to (cond:
_generation is "genx", (a: 5, 10),
_generation is "millenial", (a: 1, 10),
_generation is "genz" and (twist:1,4) is 1, (a: 1, 10),
(a: 1, 4)
))
(set: wealth of $npc to (twist: _wealth_range's 1st, _wealth_range's 2nd))
(set: _guys to (cond:
_generation is "millenial", (a: "guy", "dude", "guy", "dude", "guy", "fellow"),
_generation is "genz" and age of $npc < 20, (a: "dude", "guy", "fellow", "teen", "teenager", "teen", "boy"),
_generation is "genz", (a: "dude", "guy", "fellow", "twenty-something"),
(a: "man", "guy")
))
(set: _guy to (twirl: ..._guys))
($use_global: '$guy_database', 'window.GE.guy_database', [{
(set:_generation_guys to _generation of $guy_database)
(set:_npc to _variant of _type of _generation_guys)
(set:"unfamiliar name" of _npc to (replaced:"_guy", _guy, (twirl:..."unfamiliar names" of _npc)))
(set:"description" of _npc to (replaced:"_guy", _guy, (twirl:..."descriptions" of _npc)))
(set:"first name" of _npc to (twirl:...("first names" of _generation_guys)))
(set:"hands" of _npc to (twirl:...("hands" of _generation_guys)))
(set:$npc to it + _npc)
}])
(set:$npc's "unfamiliar name" to (upperfirst:it))
(set: intellect of $npc to (cond:
($npc's tags contains "fuckboy") or ($npc's tags contains "jock"), (twist: 1, 5),
($npc's tags contains "nerd"), (twist: 5, 10),
(twist: 1, 10)
))
(set: fitness of $npc to (cond:
($npc's tags contains "nerd") or ($npc's tags contains "chubby"), (twist: 1, 5),
($npc's tags contains "jock") or ($npc's tags contains "chad"), (twist: 5, 10),
(twist: 1, 10)
))
(if: fitness of $npc > 8)[
(set: $npc's tags to it + (a: "jock"))
]
(unless:$npc's "race" is "white")[
(display:"generate random guy racial name")
]
(set:"name" of $npc to (cond:_age > 35, "Mr. " + "last name" of $npc, "first name" of $npc))
(set:$npc's "sex name" to (upperfirst:$npc's "name"))
(if:length of $npc's "tags" is 0)[
(set:$npc's tags to it + (a:(twirl:"selfish","nice","unremarkable","cool")))
]
(if:$npc's "tags" contains "fuckboy")[
(set:$npc's tags to it + (a:"selfish"))
]
(if:$npc's "tags" contains "bully" or $npc's "tags" contains "smug")[
(set:$npc's tags to it + (a:"selfish"))
]
(set: _personalityRange to (cond:
$npc's "tags" contains "gentleman", (a: 7, 10),
$npc's "tags" contains "nice", (a: 5, 10),
$npc's "tags" contains any of (a: "cool", "charming", "jock"), (a: 5, 8),
$npc's "tags" contains "unremarkable", (a: 4, 6),
$npc's "tags" contains any of (a: "annoying", "creepy"), (a: 1, 5),
$npc's "tags" contains any of (a: "selfish", "fuckboy", "bully"), (a: 1, 6),
(a: 1, 10)
))
(set: $npc's "personality" to (twist: _personalityRange's 1st, _personalityRange's 2nd))
(if: $npc's "tags" contains "charming")[
(set: $npc's "alternate names" to it + (a: "he", "the charming guy"))
(set: $npc's "alternate possessive names" to it + (a: "his", "the charming guy's"))
](else-if: $npc's "tags" contains "gentleman")[
(set: $npc's "alternate names" to it + (a: "he", "the gentleman"))
(set: $npc's "alternate possessive names" to it + (a: "his", "the gentleman's"))
]
(display:"npc outfit modifiers")
(set: $npc's "hygiene" to (cond:
$npc's "tags" contains "gentleman", (twist: 5, 10),
$npc's "tags" contains "smells good", (twist: 7, 10),
$npc's "tags" contains "charming", (twist: 5, 8),
$npc's "tags" contains "smelly", (twist: 1, 3),
$npc's "tags" contains "chubby", (twist: 1, 6),
$npc's "tags" contains "chad", (twist: 3, 7),
$npc's "tags" contains "nerd", (twist: 1, 7),
(twist: 1, 10)
))
(set: $npc's "hands" to (cond:
$npc's "tags" contains any of (a: "chubby"), (twirl: "pudgy", "chubby"),
$npc's "tags" contains any of (a: "chad"), (twirl: "strong", "firm", "manly"),
$npc's "tags" contains any of (a: "nerd", "smelly"), (twirl: "clammy", "sweaty", "soft"),
$npc's "tags" contains "gentleman", (twirl: "firm", "smooth", "graceful", "gentlemanly"),
"firm"
))
(set: $npc's "kissing style" to (cond:
$npc's "tags" contains any of (a:"fuckboy","jock"),"aggressive",
$npc's "tags" contains any of (a: "charming", "chad"), "dominant",
$npc's "tags" contains "nerd", (twirl: "weak", "slobber", "normal"),
$npc's "tags" contains "smelly", "gross",
"normal"
))
(if:$npc's "tags" contains "chad")[
(set:$npc's "alternate possessive names" to it + (a:"his","the chad's"))
]
(if:$npc's "tags" contains "nerd")[
(set:$npc's "alternate possessive names" to it + (a:"his","the nerd's"))
]
(display:"guy breath update")
(display:"random guy last name")
(if:$breeder is "true" or $npc's "tags" contains "breeder")[
(display:"breedify npc")
]
(set:$npc's age to (max:18,it))
(set: $npc's dominance to (cond:
$npc's tags contains any of (a: "chad", "bully", "jock", "breeder"), (twist: 8, 10),
$npc's age < 22 or $npc's tags contains "nerd", (twist: 2, 6),
$npc's age > 34, (twist: 4, 8),
(twist: 1, 10)
))
(if:$npc_type is "coworker")[
(set:$npc's tags to $npc's tags + (a:"coworker"))
(set:$npc's "sales level" to (cond:$npc's age >= 55,(twist:6,10),$npc's age >= 50,(twist:7,8),$npc's age >= 40,(twist:5,8),$npc's age >= 30,(twist:4,6),$npc's age >= 20,(twist:1,5),$npc's age >= 18,(twist:1,4)))
(if:$npc's tags contains "ambitious")[(set:$npc's "sales level" to it + (twist:1,3))]
(if:$npc's tags contains "lazy")[(set:$npc's "sales level" to it - (twist:1,3))]
(unless:$npc's "tags" contains "coworker")[(set:$npc's "tags" to it + (a:"coworker"))]
(set:$npc's "sales level" to (max:1,(min:$npc's "sales level",10)))
(set:$npc's "wealth" to $npc's "sales level")
(display:"npc generate id coworker")
(set:$npc's "events" to it + (a:"your name"))
(set:$relationships's (text: "npc " + (text:$npc's "id")) to (dm:
"id",(text: "npc " + (text:$npc's "id")),
"name",$npc's name,
"gender","male",
"respect",0,
"dom",0,
"friendship",0,
"attraction",0,
"tags",(a:"coworker")
))
](else:)[
(display:"npc generate id")
]
(set:$npc's appeal to $npc's looks)
(display:"alcohol modify appeal")
]
}{
(set:$npc's tags to it - (a:"gentleman"))
(set:$npc's tags to it + (a:"breeder"))
(set:$npc's personality to (min:it,5))
($use_global: "$cock_database", "window.GE.cock_database", [(set:$npc to it + (twirl:...(find:_cock where _cock's ballsize is 10, ...$cock_database)))])
}{
($use_global: "$cock_database", "window.GE.cock_database", [(set:$npc to it + (twirl:...(find:_cock where _cock's ballsize is 10 and cockrating is 10 and cocklength is 10 and cockfatness is 10, ...$cock_database)))])
}{
(unless:(datanames:$npc) contains "last name")[
(if:(datanames:$npc) contains "race")[
(if:$npc's race is "white")[(set:$npc's "last name" to (twirl:"Smith","Johnson","Miller","Brown","Jones","Williams","Davis","Anderson","Wilson","Martin","Taylor","Moore","Thompson","White","Clark","Thomas","Baker","Nelson","King","Allen","Young","Harris","Adams","Lewis","Walker","Wright","Hall","Roberts","Campbell","Jackson","Hill","Phillips","Scott","Robinson","Murphy","Lee","Cook","Green","Evans","Collins","Peterson","Morris","Mitchell","Parker","Rogers","Stewart","Turner","Wood","Carter"))]
(if:$npc's race is "asian")[(set:$npc's "last name" to (twirl:"Nguyen","Lee","Kim","Tran","Chen","Li","Wang","Yang","Chang","Huang"))]
(if:$npc's race is "latin")[(set:$npc's "last name" to (twirl:"Garcia","Rodriguez","Hernandez","Martinez","Lopez","Gonzalez","Perez","Sanchez","Ramirez","Torres","Flores"))]
(if:$npc's race is "black")[(set:$npc's "last name" to (twirl:"Williams","Johnson","Smith","Jones","Brown","Jackson","Davis","Thomas","Harris","Robinson"))]
](else:)[(set:$npc's "last name" to (twirl:"Smith","Johnson","Miller","Brown","Jones","Williams","Davis","Anderson","Wilson","Martin","Taylor","Moore","Thompson","White","Clark","Thomas","Baker","Nelson","King","Allen","Young","Harris","Adams","Lewis","Walker","Wright","Hall","Roberts","Campbell","Jackson","Hill","Phillips","Scott","Robinson","Murphy","Lee","Cook","Green","Evans","Collins","Peterson","Morris","Mitchell","Parker","Rogers","Stewart","Turner","Wood","Carter"))(set:$npc's race to "white")]]
}{
(if:$npc's "race" is "latin")[(set:"first name" of $npc to (twirl:"Carlos","Enrique","Fernando","Francisco","Jaime","Javier","Jorge","Jose","Juan","Julio","Juan","Luis","Marcos","Miguel","Santiago","Sebastian","Matias","Mateo","Nicolas","Alejandro","Diego","Daniel","Benjamin","Lucas","Tomas","Gabriel","Martin","Felipe","Angel","Pablo"))
(set:"last name" of $npc to (twirl:"Hernandez","Garcia","Martinez","Gonzalez","Lopez","Perez","Rodriguez","Ramirez","Diaz","Vasquez","Rodriguez","Perez","Gonzalez","Hernandez","Frederick","Fernandez","Alvarez"))]
(if:$npc's "race" is "asian")[
(set:"first name" of $npc to (twirl:"Andrew","John","Albert","Peter","David","James","Josh","Alan","Robert","Kelvin","Jacob","Eddie","Raymond","Jerry","Ken","Kenneth","Joe"))
(set:"last name" of $npc to (twirl:"Huang","Lin","Chang","Sun","Cheng","Xiao","Chuang","Hung","Li","T'ien","Wang","Wu","Zhou","Zhang","Yang","Chen"))]
}{
(display:"load relationship")
<div class='options'><mark>
(print:$relationship's name)'s current
🔗 Friendship: (print:$relationship's "friendship")
(unless:$character's "gender" is $relationship's "gender")[
(print:" ")💘 Attraction: (print:$relationship's "attraction")
]
(unless:$relationship's "respect" is 0)[
(print:" ")🌟 Respect: (print:$relationship's "respect")
]
(unless:$relationship's "dom" is 0 or $character's "gender" is $relationship's "gender")[
(if:$relationship's dom > 0)[
(print:" ")⚔️ Dominance: (print:$relationship's "dom")
](else:)[
(print:" ")🌸 Submission: (print:$relationship's "dom"*-1)
]
]
</mark></div>
}{
(if:$npc contains "traits")[
(set: _race to $character's "race")
(set: _traits to $npc's "traits")
(set: _attractionAdj to (cond:
_race is "black" and _traits contains "only bbc" and $gain_attraction > 0, $gain_attraction + 1,
_race is "black" and _traits contains "only bbc" and $gain_attraction < -1, $gain_attraction + 1,
_race is "black" and _traits contains "no bbc" and $gain_attraction > 1, $gain_attraction - 1,
_race is "black" and _traits contains "no bbc" and $gain_attraction < 0, $gain_attraction - 1,
not (_race is "black") and _traits contains "only bbc" and $gain_attraction > 1, $gain_attraction - 1,
not (_race is "black") and _traits contains "only bbc" and $gain_attraction < 0, $gain_attraction - 1,
$gain_attraction
))
(set: $gain_attraction to _attractionAdj)]
}{
(if:$marked_timer > 0 and $gain_attraction > 0 and not (($relationship's id) is $marked_npc))[($show_tooltip:[<div class='options'><mark>(set:$gain_lower to $gain_attraction - (floor:$gain_attraction / 2))You're currently marked by the smell of (print:"name" of ($marked_npc of $relationships))'s cum, lowering attraction gains with (print:$relationship's name) by $gain_lower.</mark></div>(set:$gain_attraction to (floor:$gain_attraction / 2))],[This effect won't wear off for another (print:(cond:$marked_timer is 1,"1 time slot","$marked_timer time slots.")).(if:(is_male:))[(nl:2)Yes, even though you've changed back into a guy...]])]
}{
(set:$relationship to $npc_select of $relationships)
(display:"marked effect")
(if:$relationship's "gender" is "female")[(unless:$npc is 0)[(display:"relationship race mod")]]
(set: $gain_attraction to (cond:
$max_attraction > 0 and $relationship's "attraction" >= $max_attraction, 0,
$max_attraction > 0 and $relationship's "attraction" + $gain_attraction > $max_attraction, $max_attraction - $relationship's "attraction",
$min_attraction > 0 and $relationship's "attraction" <= $min_attraction, 0,
$min_attraction > 0 and $relationship's "attraction" + $gain_attraction < $min_attraction, $min_attraction - $relationship's "attraction",
$gain_attraction
))
(set: $gain_friendship to (cond:
$max_friendship > 0 and $relationship's "friendship" >= $max_friendship, 0,
$max_friendship > 0 and $relationship's "friendship" + $gain_friendship > $max_friendship, $max_friendship - $relationship's "friendship",
$min_friendship > 0 and $relationship's "friendship" <= $min_friendship, 0,
$min_friendship > 0 and $relationship's "friendship" + $gain_friendship < $min_friendship, $min_friendship - $relationship's "friendship",
$gain_friendship
))
(set: $gain_respect to (cond:
$max_respect > 0 and $relationship's "respect" >= $max_respect, 0,
$max_respect > 0 and $relationship's "respect" + $gain_respect > $max_respect, $max_respect - $relationship's "respect",
$min_respect > 0 and $relationship's "respect" <= $min_respect, 0,
$min_respect > 0 and $relationship's "respect" + $gain_respect < $min_respect, $min_respect - $relationship's "respect",
$gain_respect
))
(set: $gain_dom to (cond:
$max_dom > 0 and $relationship's "dom" >= $max_dom, 0,
$max_dom > 0 and $relationship's "dom" + $gain_dom > $max_dom, $max_dom - $relationship's "dom",
$min_dom > 0 and $relationship's "dom" <= $min_dom, 0,
$min_dom > 0 and $relationship's "dom" + $gain_dom < $min_dom, $min_dom - $relationship's "dom",
$gain_dom
))
(set:$relationship's dom to it + $gain_dom)
(set:$relationship's respect to it + $gain_respect)
(set:$relationship's friendship to it + $gain_friendship)
(set:$relationship's attraction to it + $gain_attraction)
(unless:$gain_attraction is 0)[
(if:$gain_attraction > 0)[
<div class='options'><mark>💘 (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)] is more attracted to you. Current attraction level: (print:$relationship's "attraction") (+(print:$gain_attraction))</mark></div>
(set:$relationship's "last attraction gain" to $day)
](else-if:$gain_attraction < 0)[
<div class='options'><mark>💔 (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)] is less attracted to you. Current attraction level: (print:$relationship's "attraction") ((print:$gain_attraction))</mark></div>
(set:$relationship's "last attraction loss" to $day)
]
]
(unless:$gain_friendship is 0)[
(if:$gain_friendship > 0)[
<div class='options'><mark>🔗 (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)] feels closer to you. Current friendship level: (print:$relationship's "friendship") (+(print:$gain_friendship))</mark></div>
(set:$relationship's "last friendship gain" to $day)
](else-if:$gain_friendship < 0)[
<div class='options'><mark>💔 (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)] doesn't feel as close to you. Current friendship level: (print:$relationship's "friendship") ((print:$gain_friendship))</mark></div>
(set:$relationship's "last friendship loss" to $day)
]
]
(unless:$gain_dom is 0)[
(if:$gain_dom > 0)[
<div class='options'><mark>⚔️ (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)] becomes more dominant. Current dominance level: (print:$relationship's "dom") (+(print:$gain_dom))</mark></div>
(set:$relationship's "last dom gain" to $day)
](else-if:$gain_dom < 0)[
<div class='options'><mark>(if:$relationship's "gender" is "male")[⚔️ You become more dominant toward (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)]. Current dominance level: (print:-1*$relationship's "dom") (+(print:(abs:$gain_dom)))](else:)[🌸(print:" ")(unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)](print:" ")becomes more submissive. Current submission level: (print:$relationship's "dom"*-1) (+(print:$gain_dom*-1))]</mark></div>
(set:$relationship's "last dom loss" to $day)
]
]
(unless:$gain_respect is 0)[
(if:$gain_respect > 0)[
<div class='options'><mark>🌟 (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)] respects you more now. Current respect: (print:$relationship's "respect") (+(print:$gain_respect))</mark></div>
(set:$relationship's "last respect gain" to $day)
](else-if:$gain_respect < 0)[
<div class='options'><mark>💔 (unless:$fem_npc_name_override is 0)[(print:$fem_npc_name_override)](else:)[(print:$relationship's name)] respects you less now. Current respect: (print:$relationship's "respect") ((print:$gain_respect))</mark></div>
(set:$relationship's "last respect loss" to $day)
]
]
(set:$max_attraction to 0)
(set:$min_attraction to 0)
(set:$min_dom to 0)
(set:$max_dom to 0)
(set:$max_friendship to 0)
(set:$min_friendship to 0)
(set:$min_respect to 0,$max_respect to 0)
(set:$gain_attraction to 0)
(set:$gain_friendship to 0)
(set:$gain_dom to 0)
(set:$gain_respect to 0)
(set:$npc_select of $relationships to $relationship)
}{
(set:$relationship to $npc_select of $relationships)
(display:"adjust relationship for time passed")
(set:$npc_select of $relationships to $relationship)
}{
(set:$npc_select of $relationships to $relationship)
}{
<!-- Check if the control parameters exist, and if not (loaded from old save), then set them to the defaults. -->
(if:$relationship_time_params is 0)[(display:"set default relationship time params")]
<!-- Check for any uninitialized values for when relationship stats were last changed. If a value does not exist, set it to the current $day so that the value will change over time going forward. -->
(unless:$relationship contains "last attraction gain")[(set:$relationship's "last attraction gain" to $day)]
(unless:$relationship contains "last attraction loss")[(set:$relationship's "last attraction loss" to $day)]
(unless:$relationship contains "last friendship gain")[(set:$relationship's "last friendship gain" to $day)]
(unless:$relationship contains "last friendship loss")[(set:$relationship's "last friendship loss" to $day)]
(unless:$relationship contains "last dom gain")[(set:$relationship's "last dom gain" to $day)]
(unless:$relationship contains "last dom loss")[(set:$relationship's "last dom loss" to $day)]
(unless:$relationship contains "last respect gain")[(set:$relationship's "last respect gain" to $day)]
(unless:$relationship contains "last respect loss")[(set:$relationship's "last respect loss" to $day)]
<!-- If they were pushed out of range, clamp relationship values to +/- 25 regardless of how long it has been. -->
(set:$relationship's "attraction" to (min:25, (max:-25, $relationship's "attraction")))
(set:$relationship's "friendship" to (min:25, (max:-25, $relationship's "friendship")))
(set:$relationship's "dom" to (min:25, (max:-25, $relationship's "dom")))
(set:$relationship's "respect" to (min:25, (max:-25, $relationship's "respect")))
<!-- Update specific values, if they are outside the range specified in control parameters and enough time has passed -->
(set:_delay to ($relationship_time_params's "attraction delay") of $relationship_delay_values)
(unless:_delay is -1)[
(if:$relationship's "attraction" > (num:$relationship_time_params's "attraction high"))[
(set:_daysover to $day - ($relationship's "last attraction gain" + _delay))
(if:_daysover > 0)[
(set:$relationship's "attraction" to (max:(num:$relationship_time_params's "attraction high"), $relationship's "attraction" - _daysover))
(set:$relationship's "last attraction gain" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
](else-if:$relationship's "attraction" < (num:$relationship_time_params's "attraction low"))[
(set:_daysover to $day - ($relationship's "last attraction loss" + _delay))
(if:_daysover > 0)[
(set:$relationship's "attraction" to (min:(num:$relationship_time_params's "attraction low"), $relationship's "attraction" + _daysover))
(set:$relationship's "last attraction loss" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
]
]
(set:_delay to ($relationship_time_params's "friendship delay") of $relationship_delay_values)
(unless:_delay is -1)[
(if:$relationship's "friendship" > (num:$relationship_time_params's "friendship high"))[
(set:_daysover to $day - ($relationship's "last friendship gain" + _delay))
(if:_daysover > 0)[
(set:$relationship's "friendship" to (max:(num:$relationship_time_params's "friendship high"), $relationship's "friendship" - _daysover))
(set:$relationship's "last friendship gain" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
](else-if:$relationship's "friendship" < (num:$relationship_time_params's "friendship low"))[
(set:_daysover to $day - ($relationship's "last friendship loss" + _delay))
(if:_daysover > 0)[
(set:$relationship's "friendship" to (min:(num:$relationship_time_params's "friendship low"), $relationship's "friendship" + _daysover))
(set:$relationship's "last friendship loss" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
]
]
(set:_delay to ($relationship_time_params's "friendship delay") of $relationship_delay_values)
(unless:_delay is -1)[
(if:$relationship's "friendship" > (num:$relationship_time_params's "friendship high"))[
(set:_daysover to $day - ($relationship's "last friendship gain" + _delay))
(if:_daysover > 0)[
(set:$relationship's "friendship" to (max:(num:$relationship_time_params's "friendship high"), $relationship's "friendship" - _daysover))
(set:$relationship's "last friendship gain" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
](else-if:$relationship's "friendship" < (num:$relationship_time_params's "friendship low"))[
(set:_daysover to $day - ($relationship's "last friendship loss" + _delay))
(if:_daysover > 0)[
(set:$relationship's "friendship" to (min:(num:$relationship_time_params's "friendship low"), $relationship's "friendship" + _daysover))
(set:$relationship's "last friendship loss" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
]
]
(set:_delay to ($relationship_time_params's "friendship delay") of $relationship_delay_values)
(unless:_delay is -1)[
(if:$relationship's "friendship" > (num:$relationship_time_params's "friendship high"))[
(set:_daysover to $day - ($relationship's "last friendship gain" + _delay))
(if:_daysover > 0)[
(set:$relationship's "friendship" to (max:(num:$relationship_time_params's "friendship high"), $relationship's "friendship" - _daysover))
(set:$relationship's "last friendship gain" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
](else-if:$relationship's "friendship" < (num:$relationship_time_params's "friendship low"))[
(set:_daysover to $day - ($relationship's "last friendship loss" + _delay))
(if:_daysover > 0)[
(set:$relationship's "friendship" to (min:(num:$relationship_time_params's "friendship low"), $relationship's "friendship" + _daysover))
(set:$relationship's "last friendship loss" to $day - _delay) <!-- avoids a relationship changing faster than expected if an NPC is encountered/interacted with multiple times in a day -->
]
]
]
}{
(set:$relationship_time_params to (dm:
"attraction high","15",
"attraction low","-15",
"attraction delay","begin fading after 7 days.",
"friendship high","15",
"friendship low","-15",
"friendship delay","begin fading after 7 days.",
"dom high","15",
"dom low","-15",
"dom delay","remain unchanged over time.",
"respect high","15",
"respect low","-15",
"respect delay","begin fading after 7 days."
))
}{
(set:$relationship_delay_values to (dm:
"begin fading immediately.", 0,
"begin fading after 3 days.", 2,
"begin fading after 7 days.", 6,
"begin fading after 12 days.", 11,
"begin fading after 21 days.", 20,
"begin fading after 30 days.", 29,
"remain unchanged over time.", -1
))
(set:$relationship_high_range to (a:"5","6","8","10","12","15","20"))
(set:$relationship_low_range to (a:"-5","-6","-8","-10","-12","-15","-20"))
}{
<!-- any values added to the empty datamap below will be inserted into $relationship_time_params if they don't exist, but if there is an existing value it will not be overwritten -->
<!-- intended to provide a safe way of updating the list of parameters if additional functionality is added later -->
(set:$relationship_time_params to (dm:) + it)
}{
(set:$npc_select to "stepdad")(display:"load relationship")
(set:$npc_select to "stepsis")(display:"load relationship")
}{
<div class='options'>(color:$palette_colors's 4th)[(css:"font-size:5vmin")[<span class='shadow'>Relationships</span>]]</div>
<div class='options'>
**Attraction** above (cycling-link: 2bind "attraction high" of $relationship_time_params, ...$relationship_high_range) or below (cycling-link: 2bind "attraction low" of $relationship_time_params, ...$relationship_low_range) will (cycling-link: 2bind "attraction delay" of $relationship_time_params, ...(dm-names:$relationship_delay_values))(nl:1)
**Friendship** above (cycling-link: 2bind "friendship high" of $relationship_time_params, ...$relationship_high_range) or below (cycling-link: 2bind "friendship low" of $relationship_time_params, ...$relationship_low_range) will (cycling-link: 2bind "friendship delay" of $relationship_time_params, ...(dm-names:$relationship_delay_values))(nl:1)
**Respect** above (cycling-link: 2bind "respect high" of $relationship_time_params, ...$relationship_high_range) or below (cycling-link: 2bind "respect low" of $relationship_time_params, ...$relationship_low_range) will (cycling-link: 2bind "respect delay" of $relationship_time_params, ...(dm-names:$relationship_delay_values))(nl:1)
**Dominance** above (cycling-link: 2bind "dom high" of $relationship_time_params, ...$relationship_high_range) or below (cycling-link: 2bind "dom low" of $relationship_time_params, ...$relationship_low_range) will (cycling-link: 2bind "dom delay" of $relationship_time_params, ...(dm-names:$relationship_delay_values))
</div>
<div class='options'>(link:"Back")[(display:"click")(set:$next to "menu")(display:"next")]</div>
}{
(display:"load relationship")
(set:$result to "pass")
<div class='options'><mark>
(if:(datanames:$required) contains "attraction")[
(if:$relationship's attraction >= $required's attraction)[
💘 Attraction check passed.
](else:)[
💔 Attraction check failed.
(set:$result to "fail attraction")
]
]
(if:(datanames:$required) contains "dom")[
(print:" ")
(if:$required's dom > 0)[
(if:$relationship's dom >= $required's dom)[
⚔️ (print:$relationship's name) passed a dominance check.
](else:)[
🌸 (print:$relationship's name) failed a dominance check.
(set:$result to "fail dom")
]
]
(if:$required's dom < 1)[
(if:$relationship's dom <= $required's dom)[
🌸 You passed a submission check.
](else:)[
⚔️ (print:$relationship's name) passed a dominance check.
(set:$result to "fail dom")
]
]
]
(if:(datanames:$required) contains "friendship")[
(print:" ")
(if:$relationship's friendship >= $required's friendship)[
🔗 Friendship check passed.
](else:)[
💔 Friendship check failed.
(set:$result to "fail friendship")
]
]
(if:(datanames:$required) contains "respect")[
(print:" ")
(if:$relationship's respect >= $required's respect)[
🌟 Respect check passed.
](else:)[
💔 Respect check failed.
(set:$result to "fail respect")
]
]
</mark></div>
}(if:$bruce_deal is "true" and $bruce_debt > 0 and (pill:"Resistance"))[(display:"pill expires bruce")](else:)[(if: not ($nanobots_days > 0))[(set:$character's "birth control" to "false")](else-if:$nanobots_days > 0)[(set:$character's "birth control" to "nanobots")](set:$milk to 0)(unless:(is_preg:))[[(display:"character status")]<status|<div id='scrollable-content' class='center_screen' data-simplebar>[(twirl:"You experience a tingling sensation that starts at the top of the head and travels down the body, as if every cell is discharging pent-up energy.","Your body suddenly feels very hot.","You suddenly feel tightness, constriction.","You are overwhelmed by a sense of vertigo and disorientation.","You get a feeling of pressure in your groin area, and tightness around your chest.","You're overwhelmed by a sensation of heat.","You feel dizzy or disoriented, as if your body is spinning or swaying.","You feel rippling or wave-like movements throughout your body.","You feel electrical pulses or shocks, as if your body is being jolted by tiny bolts of lightning.","You feel a sensation of simultaneous expansion and contraction.","You feel a sense of pressure or heaviness, as if your body is being weighed down or pressed into the ground.","You feel a tingling sensation that starts at the top of your head and travels down your body, as if every cell is starting to release bound-up energy.")
(if:$character's "id" is $character's "real id" and (pills:) > 0)[<div class='options'><mark>(if:$pill_known is "true")[Your (print:$pill_taken) pill is about to expire.](else:)[(twirl:"Your mystery pill is about to expire.","Your unknown X-Change is about to expire.","Your unknown pill is about to expire.")]</mark></div><div class='options'>(link:"Pop another pill")[{
(for: each _opt, ...(dm-names:$pill_inventory))[
(if:$pill_inventory's (str:_opt) > 0)[
(link:_opt + " " + "(" + (str:$pill_inventory's (str:_opt)) + ")")[
(display:"click")
(set:$pill_inventory's (str:_opt) to it - 1)
(set:$select to _opt)
(replace:?screen)[(display:"take another pill")]
]
]
]
}](link:"Let it happen")[($cs:"pill expires effect")]</div>](else:)[(nl:1)(display:"pill expires effect")]]<screen|</div><div class='top_right' data-simplebar>[($show_tooltip:[<span class='shadow'>(css:"font-size:3.5vmin")[$day_of_week]</span>],[Day $day])]<right_screen|</div>
](else:)[(display:"pill doesnt expire")]]{
($screen:"location and time",[($recall:"f2f transform")(set:$target_id to (text:2ndlast of ($memory's "tags")))(display:"f2f expires reset pill")Your body reverts to its previous female form.(display:"change to character")($forget:"f2f transform")($simple_option:"advance time","Next")])
}{
($recall:"f2f prior pill")
(if:$memory is "none")[(set:$pill_taken to "Basic")]
(else:)[(set:$pill_taken to last of $memory's "tags")]
}{
(set:$is_spiked to "false")
(if:$character's "side effects" contains "bimbo temp")[(display:"clear temp bimbo")]
(set:$character's "side effects" to it - (a:"people pleaser temp","bimbo temp","Exhibitionist temp","breeder","breeder temp","resistance","resistance temp"))
(set:$test_kit_timer to -1)
($forget:"f2f transform")
(set:$marked_timer to 0,$marked_npc to "none")
(if:(pill:"Resistance"))[(set:$resistance_effect to 0)(display:"clear bruce deal")
(if:$global_events contains "bruce take resistance")[(display:"Resistance Isnt Futile Trigger")]
]
(if:(pill:"Cum-Cure"))
[
(if:$time_since_cum_cure_taken < 9)[(set:$time_since_cum_cure_taken to 0)(display:"Speedrun Fun Achievement Trigger")]
]
(if:(pill:"Clone") or not ($character's "real id" is $character's "id"))[
(display:"New-U change back")
(if:$rent is true)[
(display:"remove rented outfits")
(nl:2)
]
]
(set:_pill_known to $pill_known)(set:_pill_taken to $pill_taken)(set:$pill_taken to "none")
(set:$hairstyle to 0)(set:$pill_known to "true")
(set:$hairstyle_timer to 0)(set:$bimbo_timer to 0)
(set:$character's "real gender" to "male")
(set:$character's "gender" to "male")(set:$current_look to "none")
(set:$character's "status" to "male")
(set:$outfit_button to "dont show")
(set:$your_name to $character's "male name")
(display:"apply mens clothes")
(display:"remove temporary side effects")
(display:"reset mood")
(display:"refresh portrait")
(display:"refresh stats")
(display:"starting positions")
(display:"calculate pregnancy chance")(display:"calculate alcohol tolerance")
(replace:?status)[(display:"character status")]
(twirl:
"There's a sense of pressure building in your chest as your breasts begin to shrink and recede. You feel a strange sensation of emptiness as your nipples and areolas contract, and your chest flattens and smooths back out.",
"Your groin area feels hot and tingly as your cock re-emerges, while your hips begin to narrow and shift.",
"Your shoulders feel heavy and cumbersome as they broaden and square off, and you feel a new sense of power and strength as your arms lengthen and gain muscle mass.",
"You feel a sense of physical relief as your hips narrow to their masculine shape.",
"Your sense of balance and stability change as your center of gravity rises.",
"Your arms feel heavy and momentarily awkward as they grow thicker and more muscular than their female variant.",
"Your face feels tight and constricted as your facial features shift and rearrange themselves.",
"Your hairs pull back to their original, masculine length."
)
(nl:2)
(if:_pill_known is "true")[
Your _pill_taken pill (twirl:"expires","wears off").
](else:)[
The pill you were on (twirl:"expires","wears off").
]
(if:(twist:1,2) is 1)[
(set:_a_guy to (twirl:$character's "male name","a guy","male"))
(twirl:" You're _a_guy once again."," You're back to being _a_guy.")
]
(display:"check for mens watch")(display:"exhibitionist expires")
<div class='options'>
(link:"Next")[(display:"advance time")]
</div>
(display:"reset exhib statuses")
}{
(if:"ladies watch" is $watch_equipped)[
(if:$items contains any of (a:"unisex watch","dive watch","gmt watch","chronograph watch"))[(set:$watch_equipped to 1st of (intersection:$items, (a:"unisex watch","dive watch","gmt watch","chronograph watch")))]
]
}{
(unless:$tagged is 0)[($passage_tags:"temp_pill_expires")]
(set:$character's "temp pill" to "false")
(set:$character's "gender" to $character's "real gender")
(set:$character's "reluctance" to $character's "typical reluctance")
(display:"calculate pregnancy chance")(display:"calculate alcohol tolerance")
(set:$character's "status" to "female")
}{
(if: $pill_shop_inventory is 0)[
(set: $pill_shop_inventory to (dm:
"Basic", (dm: "price", 100, "discount", 0, "stock", 1),
"Resistance", (dm: "price", 295, "discount", 0, "stock", 1),
"Breeder", (dm: "price", 500, "discount", 10, "stock", 1),
"Compliant", (dm: "price", 565, "discount", 0, "stock", 1),
"Show-Off", (dm: "price", 600, "discount", 0, "stock", 1),
"Bimbo", (dm: "price", 465, "discount", 0, "stock", 1),
"Cum-Cure", (dm: "price", 625, "discount", 0, "stock", 1),
"X-Tra Strength", (dm: "price", 1500, "discount", 0, "stock", 1),
"Plus", (dm: "price", 10000, "discount", 0, "stock", 1)
))
]
(set: $pill_descriptions to (dm:
"Basic", "X-Change's hallmark product. They're affordable and dosages typically last 24 hours or less, after which you turn back. It's impossible to get pregnant on Basic and the pill provides STD protection.",
"Resistance", "An inexpensive way to spend a week in your female body - however, the cheaper formulation is known to interact poorly with orgasms. Try to limit yourself to one climax every three days, or else you may experience side effects. Note that orgasms also prolong the pill duration.",
"Breeder", "Temporary pill that greatly increases fertility. It's not 100% chance, but you'll probably end up pregnant. You won't be able to orgasm on this pill, unless you get creampied.",
"Compliant", "Lasts two weeks - quite cost-effective, but is known to make the taker quite suggestible.",
"Show-Off", "A two week long pill that encourages the user to display their new body. This pill has been discounted for those self-assured exhibitionists!",
"Bimbo", "Lasts two weeks - even cheaper than a Compliant™, but temporarily wreaks havoc on your thinky-ness!",
"Cum-Cure", "Originally considered a fundamentally flawed product, Cum-Cure™ pills last about a month on their own, but their effects wear off quickly if you swallow cum. Each creamy load swallowed will remove about a week (or two) from the duration - depending on the size of the load.",
"X-Tra Strength", "These are more expensive and dosages typically last 30 days. It is possible to become pregnant on X-Tra Strength™, but the chance of that happening is very low. If it does, the transformation becomes permanent.",
"Plus", "This is the very expensive deluxe pill. Once taken, the transformation becomes permanent with no way to turn back. For all intents and purposes, you're indistinguishable from any other woman, pros and cons included.
Due to the permanent nature of this pill, you will need to acquire a psychologist's approval in order to purchase one. **NOTE TO PLAYER: Not yet implmented in this game version, it will be added in the future.**",
))
(set: $pills_db to (dm:
"Basic", (dm:
"vendor", "X-Change",
"min_length", 4,
"max_length", 4,
"preg_chance", 0,
"side_effects", (a:)
),
"Resistance", (dm:
"vendor", "X-Change",
"min_length", 28,
"max_length", 40,
"preg_chance", 20,
"side_effects", (a:
(dm:
"name", (a: "resistance temp"),
"chance", 100
)
)
),
"Breeder", (dm:
"vendor", "X-Change",
"min_length", 28,
"max_length", 40,
"preg_chance", 65,
"side_effects", (a:
(dm:
"name", (a: "breeder temp"),
"chance", 100
)
)
),
"Compliant", (dm:
"vendor", "X-Change",
"min_length", 56,
"max_length", 64,
"preg_chance", 20,
"side_effects", (a:
(dm:
"name", (a: "people pleaser temp"),
"chance", 100
)
)
),
"Show-Off", (dm:
"vendor", "X-Change",
"min_length", 56,
"max_length", 64,
"preg_chance", 20,
"side_effects", (a:
(dm:
"name", (a: "Exhibitionist temp"),
"chance", 100
)
)
),
"Bimbo", (dm:
"vendor", "X-Change",
"min_length", 56,
"max_length", 64,
"preg_chance", 20,
"side_effects", (a:
(dm:
"name", (a: "bimbo temp"),
"chance", 100
),
(dm:
"name", (a: "Exhibitionist temp"),
"chance", 10
)
)
),
"Cum-Cure", (dm:
"vendor", "X-Change",
"min_length", 120,
"max_length", 128,
"preg_chance", 15,
"side_effects", (a:)
),
"X-Tra Strength", (dm:
"vendor", "X-Change",
"min_length", 120,
"max_length", 128,
"preg_chance", 25,
"side_effects", (a:)
),
"Plus", (dm:
"vendor", "X-Change",
"min_length", -1,
"max_length", -1,
"preg_chance", 25,
"side_effects", (a:)
)
))
($passage_tags:"init_pills")
}X-Change™ pill: (if:$pill_known is "false")[You don't know.](else:)[(if:(pill:"Clone"))[Clone (New-U Machine)](else:)[$pill_taken(if:(pill:"Resistance"))[(if:$resistance_effect's "orgasm free slots" > 9)[(nl:1)<span class='buff'>It's safe to have an orgasm today.</span>](else:)[(nl:1)<span class='debuff'>If you orgasm now, you'll experience side effects.</span>]]]]
Time left: (if:$pill_known is "false")[Unsure](else:)[(if:(pill:"Plus"))[It's permanent.](else-if:(knows_preg:))[You're not turning back while you're pregnant.](else-if:(pill:"Basic"))[(if:$pill_timer < 1 or $character's "status effects" contains "time extended")[Should wear off anytime now.](else-if:$pill_timer < 4)[(twirl:"Less than 24 hours.","Less than a day.","24 hours or so.")](else-if:$pill_timer < 3)[(twirl:"A few hours, probably.","A few hours.","A few hours or so.")](else:)[(if: $pill_timer < 16)[(twirl:"A couple days.", "A few days.")](else-if: $pill_timer < 28)[(twirl:"Around a week.", "Roughly a week.", "About a week.")](else:)[(set:_text to (str:(ceil:$pill_timer / 3)))About _text days.]]](else:)[(if:$pill_timer > 239)[(twirl:"About 2 months.","2 months or so.")](else-if:$pill_timer > 200)[(twirl:"Under 2 months.","A bit less than 2 months.","Less than 2 months.")](else-if:$pill_timer > 160)[(twirl:"A month and a half.","About a month and a half.")](else-if:$pill_timer > 145)[(twirl:"A bit over a month.","A little over a month.","Over a month.")](else-if:$pill_timer > 110)[(twirl:"About a month.","A month or so.","Just about a month.")](else-if:$pill_timer > 80)[(twirl:"About 3 weeks.","3 weeks or so.","About 3 weeks.")](else-if:$pill_timer > 56)[(twirl:"About 2 weeks.","2 weeks.","About 2 weeks.")](else-if:$pill_timer > 40)[(twirl:"Under 2 weeks.","Less than 2 weeks.")](else-if:$pill_timer > 25)[(twirl:"About a week.","A week or so.","About a week.","A week.")](else-if:$pill_timer > 15)[(twirl:"Less than a week.","Under a week.")](else-if:$pill_timer > 10)[(twirl:"A few days.","Just a few days.")](else-if:$pill_timer > 7)[(twirl:"A couple days.","Just a couple days.")](else-if:$pill_timer > 4)[(twirl:"A day or two.","A day.")](else:)[(twirl:"Any time now...","A few hours...","Less than 24 hours...")]](if:$pill_known is "true" and (pill:"Cum-Cure") and $today_events contains "swallow")[ The cum you drank today will shorten the effect, though.]](unless:(knows_preg:))[(nl:1)Pregnancy chance: (if:$pill_known is "true")[(print:$pregnancy_chance)%](else:)[ (if:$character's "race" is "asian")[🤷🏻♀️](else-if:$character's "race" is "latin")[🤷🏽♀️](else-if:$character's "race" is "white")[🤷🏼♀️](else-if:$character's "race" is "black")[🤷🏾♀️](else:)[🤷♀️]](if:$character's "birth control" is "true")[ (Birth Control)](else-if:$character's "birth control" is "nanobots")[ (NanoBot sperm protection - $nanobots_days days left)]](if:$milk_timer > 0)[(nl:1)You're producing milk. (nl:1)🥛 ((print:$milk)/50) 🥛]
(display:"reluctance status")($show_tooltip:[{(print:$temp_pill's "id" of
(dm:"maid","🧹",
"dumb bitch","💅🏻",
"dairy queen","🍼",
"secretary","👠",
"secretary wearing off","👠",
"skylar","💃",
"goodgirl basic","💁♀️",
"goodgirl petite","🌸",
"hot and ready","🌶️",
"ready maid","🧹",
"goodgirl max","💁♀️"
))}],[Knockoff pill: {(print:$temp_pill's "id" of
(dm:"maid","Ready-Maid™",
"dumb bitch","Dumb Bitch™",
"secretary","SECRET-ary™",
"dairy queen","Dairy Queen®",
"secretary wearing off","SECRET-ary™ (Wearing off)",
"skylar","Insta-Strip™",
"goodgirl basic","Goodgirl Basic™",
"goodgirl petite","Goodgirl Petite™",
"hot and ready","Hot and Ready™",
"ready maid","Ready-Maid™",
"goodgirl max","Goodgirl Max™"
))}
Brand: {(print:$temp_pill's "id" of
(dm:"maid","WANGL",
"dumb bitch","SWP",
"skylar","SWP",
"secretary","WANGL",
"dairy queen","WANGL",
"secretary wearing off","WANGL",
"goodgirl basic","InstaGirl",
"goodgirl petite","InstaGirl",
"hot and ready","SWP",
"ready maid","WANGL",
"goodgirl max","InstaGirl"
))}
Effect: {(print:$temp_pill's "id" of
(dm:"maid","You just really love cleaning. It turns you on!",
"dumb bitch","Orgasms might damage your brain, permanently.",
"dairy queen","You are a walking, talking dairy farm!",
"skylar","You've got the dancing ability of a professional stripper, and accept most verbal commands.",
"goodgirl basic","You're the perfect image of the chosen DNA.",
"secretary","You've got the body and skills of a super busty secretary.",
"secretary wearing off","Phoenix root powder is accelerating your transformation back... strangely, it turns your hair red.",
"goodgirl petite","You're the perfect image of the chosen DNA - and you're less than 5 feet tall!",
"hot and ready","Your arousal and brainpower are on overdrive - be careful.",
"ready maid","You just really love cleaning. It turns you on!",
"goodgirl max","You're the perfect image of the chosen DNA."
))}]){
(if:(pill:"Resistance"))
[
(unless:$today_events contains "resistance orgasm")
[
(set: $pill_timer to it + 4)
(set:$today_events to it + (a:"resistance orgasm"))
(unless:$custom_orgasm is "silent")
[
(if: $pill_known is "true")
[
($notification_still: "Resistance Pill Effect: Transformation extended by one day.")
]
]
]
(if: $resistance_effect's "orgasm free slots" > 9)
[
(unless:$custom_orgasm is "silent")
[
(if: $pill_known is "true")
[
($notification_still: "No Resistance Pill side effects yet, unless you cum again within three days.")
]
]
](else:)[
(set: _side_effect to (twirl: "xp penalty","intellect debuff","arousal","fitness debuff","charm debuff","xp penalty","xp penalty"))
(unless:$custom_orgasm is "silent")
[
($play: "sound","drain")
($notification_still: (cond:$pill_known is "false",(twirl:"That orgasm gave you a little headache...","You feel a little strange...","You feel a bit... drained..."),"Resistance Pill Side Effect triggered: " +
_side_effect of (dm:
"xp penalty", (cond: $resistance_effect's "side effects" contains "xp penalty",
"ADDITIONAL 15% XP penalty until your transformation wears off. (Current total penalty: " +
(text: (1 + (count: $resistance_effect's "side effects", "xp penalty") * 15)) + "%)",
"15% XP penalty until your transformation wears off."),
"intellect debuff", "-1 intellect debuff until your transformation wears off.",
"fitness debuff", "-1 fitness debuff until your transformation wears off.",
"charm debuff", "-1 charm debuff until your transformation wears off.",
"arousal", (cond: $resistance_effect's "side effects" contains "arousal", "You'll gain more arousal randomly now.","You'll gain arousal randomly.")
)
))
]
(set: $resistance_effect's "side effects" to it + (a: _side_effect))
(display: $stats_refresh)
]
(set: $resistance_effect's "orgasm free slots" to 0)
]
}{
(set:$resistance_effect to (dm:"side effects",(a:),"orgasm free slots",10))
}{
(if:$resistance_effect is 0)[(display:"resistance initialize")](else:)[(unless:$resistance_effect contains "orgasm free slots")[(display:"resistance initialize")]]
}{
(if:(pill:"Resistance"))[(unless:$resistance_effect is 0)[(set:$resistance_effect's "orgasm free slots" to it + 1)]]
}{
(set: _charmDebuffCount to (count: $resistance_effect's "side effects", "charm debuff"))
(set: _fitnessDebuffCount to (count: $resistance_effect's "side effects", "fitness debuff"))
(set: _intellectDebuffCount to (count: $resistance_effect's "side effects", "intellect debuff"))
($buff: "charm", -1 * _charmDebuffCount, (cond:
_charmDebuffCount > 0 and $pill_known is "true", "-" + (text: _charmDebuffCount) + " charm due to Resistance pill effects",
_charmDebuffCount > 0, "-" + (text: _charmDebuffCount) + " charm from an unknown source",
""))
($buff: "fitness", -1 * _fitnessDebuffCount, (cond:
_fitnessDebuffCount > 0 and $pill_known is "true", "-" + (text: _fitnessDebuffCount) + " fitness due to Resistance pill effects",
_fitnessDebuffCount > 0, "-" + (text: _fitnessDebuffCount) + " fitness from an unknown source",
""))
($buff: "intellect", -1 * _intellectDebuffCount, (cond:
_intellectDebuffCount > 0 and $pill_known is "true", "-" + (text: _intellectDebuffCount) + " intellect due to Resistance pill effects",
_intellectDebuffCount > 0, "-" + (text: _intellectDebuffCount) + " intellect from an unknown source",
""))
}{(if:(is_male:) and not ($drugging is "Non-con: Disabled"))[
(if:(datanames:$location_params) contains "spike chance")[
(if:(twist:1,100) < $location_params's "spike chance" and not ($today_events contains "spiked"))[{($passage_tags:"pill_spiked")}(replace:?text)[(display:$location_params's "spike passage")](set:$today_events to it + (a:"spiked"))(set:$options to "false")]
]]
}{
(set:$global_events to it - (a:"take pill spike"))
(set:$global_events to it + (a:"take pill spike"))
(set:$unprepared_transform to true)
(set:$pill_known to "false")
(set:$your_name to $character's "female name")
(display: "pill transform select video img")
(print:$img)
(nl:1)
(display:"transformation description")
(display:"take pill register")
(set:$is_spiked to "true")
}{
(set:$character's "temp pill" to "true")
(unless:$global_events contains "take temp pill")[
(set:$global_events to it + (a:"take temp pill"))
]
(set:$character's "gender" to "female")
(display:"calculate pregnancy chance")
(set:$reluctance_debuff to "none")
(display:"update palette")
(display:"calculate alcohol tolerance")
(if:$temp_pill contains "name")[(set:$your_name to $temp_pill's name)](else:)[(set:$your_name to $character's "female name")]
(display:"reset exhib statuses")
}{
(set:$intellect_pre_bimbo to (dm:"maximum level",(get_intellect:"maximum level"),"level",(get_intellect:"level")))
(if:(get_intellect:"maximum level")>3)[(set_intellect:"maximum level",3)]
(if:(get_intellect:"level") > 3) [ (set_intellect:"target",3) ]
}{
(unless:$character's "side effects" contains "bimbo" or $intellect_pre_bimbo is 0)
[
(set_intellect:"maximum level",(max:(get_intellect:"maximum level"),$intellect_pre_bimbo's "maximum level"))
(set_intellect:"target",(max:(get_intellect:"level"),$intellect_pre_bimbo's "level"))
]
}{
(set:$global_events to it - (a:"take pill"))
(set:$global_events to it + (a:"take pill"))
(if:(pill:"Bimbo"))[(display:"clear temp bimbo")]
(set:$character's "side effects" to it - (a:"bimbo temp","people pleaser temp"))
You (twirl:"swallow the","quickly gulp down your","quickly swallow your","take your") $select pill.
(display:"take pill register and advance time")
}{
(set:$global_events to it - (a:"take pill"))
(set:$global_events to it + (a:"take pill"))
(set:$pill_known to "true")
(set:$your_name to $character's "female name")
(display: "pill transform select video img")
(if:$global_events contains "xchange transformation" or $character's "masculinity" < 66 or 1 is 1)[
(print:$img)
(nl:1)
(display:"transformation description")
(display:"take pill register")
](else:)[
(set:$global_events to it + (a:"xchange transformation"))
(set:$old_next to $next)
(display:"transformation first time")
]
}{
(display:"take pill register core")
(unless:$take_card_disabled is 0)[
(display:$take_card_disabled)
(set:$take_card_disabled to 0)
](else:)[
(nl:2)
(set:$take_type to "continue")
(display:"take pill card")
]
}{
(display:"take pill register core")
(unless:$take_card_disabled is 0)[
(display:$take_card_disabled)
(set:$take_card_disabled to 0)
](else:)[
(nl:2)
(set:$take_type to "advance time")
(display:"take pill card")
]
}{
(if:$character's "gender" is "male")[
(display:"transform recalculate alcohol effects")
(replace:?name)[(text-style:"shudder")[<span class='shadow'>(print:$character's "male name")</span>]]
(after:time + 2s)[
(replace:?name)[{(t8n:"dissolve")[<span class='shadow'>(print:$character's "female name")</span>(display:"mood status")]}]
]
]
(set:$character's "real gender" to "female")
(set:$character's "gender" to "female")
(set:$pill_taken to $select)
(if: $pills_db contains $select)[
(if: $select of $pills_db contains "min_length" and $select of $pills_db contains "max_length")[
(set:$pill_timer to (twist: min_length of ($select of $pills_db), max_length of ($select of $pills_db)))
](else:)[
(set:$pill_timer to 4)
]
(if: $select of $pills_db contains "side_effects")[
(for: each _side_effect, ..."side_effects" of $select of $pills_db)[
(if: (twist: 1, 100) <= _side_effect's chance)[
(set: _side_effect_name to (twirl:..._side_effect's name))
(if: $character's "side effects" does not contain ((trimmed: (p-end: " temp"), _side_effect_name)))[
(set: $character's "side effects" to it + (a:(_side_effect_name)))
(display:"exhibitionist bimbo chance")
]
]
]
]
](else:)[
(set:$pill_timer to 4)
]
(if:$select is "Bimbo")[(display:"register temp bimbo")]
(if:$select is "Resistance")[(display:"resistance initialize")]
($passage_tags:"take_pill")
(set:$pill_timer_orig to $pill_timer)
(display:"calculate pregnancy chance")
(display:"calculate alcohol tolerance")
(display:"starting positions")
(set:$character's "status" to ($core_female_status:))
(display:"update palette")
(replace:?portrait)[(print:"<img class='greyborder' src='img/characters/" + $character's "status" + "/" + (text:$character's "id") + ".jpg' width='100%' height=auto>")]
}{
(set:$type to (twirl:"boobs","holistic","face","ass","dick"))
(if:(a:"C","D","E","F","G") contains $character's "breasts")[(set:$type to (twirl:"boobs","boobs","boobs","holistic","face","ass","dick"))]
(if:(a:"A","B") contains $character's "breasts")[(set:$type to (twirl:"boobs","holistic","face","ass","ass","ass","dick","dick"))]
(if:$type is "boobs")[(set:$img to "boobs " + (text:(twist:1,4)))]
(if:$type is "holistic")[(set:$img to (twirl:"body 1","body 2","body 3","hand 1","hand 2","face 1","face 2"))]
(if:$type is "face")[(set:$img to "face " + (text:(twist:1,2)))]
(if:$type is "ass")[(set:$img to (twirl:"ass 1","ass 1","body 2"))]
(if:$type is "dick")[(set:$img to "pussy " + (text:(twist:1,4)))]
(set:$img to "<video disableRemotePlayback src='img/scenes/generic/tg/" + $img + ".mp4' autoplay='' loop='' muted='' playsinline/>")
}{
(unless:(pill:"Plus"))[Reluctance: (print:$character's "reluctance")(unless:$character's "temp pill" is "true")[(print:"
")(display:"reluctance status normal")]]
}{
*(if:$character's reluctance is 10)[
(twirl:"You're not happy about being transformed.","You didn't want to be transformed.","You didn't choose this.","You were transformed against your will.","You are NOT happy about taking this pill.","You HATE being a woman.","You didn't want this.","You want to be a man again.","You don't feel like yourself.","You feel like you can't be yourself in this body.","You're not happy about becoming a woman.","You're not comfortable with being female.","You don't like these physical changes.","You don't feel like you belong in this body.","You don't feel comfortable with being a woman.","You didn't want to be a woman.","You don't feel like you can be yourself as a woman.","You don't like the way you look now.","You feel like you're trapped in a body you don't want.","You don't like the way you're treated as a woman.","You don't like the way people look at you now.","You don't feel like you can be yourself in this body.","You were transformed against your will.","You're in this body, against your will.","You didn't want this.","You feel like a stranger in your own skin.","You don't feel like you can be yourself anymore.")
](else-if:$character's reluctance is 9)[
(twirl:"You're not comfortable being transformed.","You're feeling uneasy about this transformation.","You're feeling very hesitant about this transformation.","You're feeling uncertain about this transformation.","You weren't really ready for this transformation.","You're feeling very nervous about this pill.","You're anxious about this pill.","You're feeling apprehensive about being in this body.","You weren't ready for this.","You feel quite strange in this body.","You're not used to being a woman.","You're not used to this body.","You're not sure if you like being a woman.","You're not sure if you can handle this transformation.","You're feeling uneasy about this body.","You're feeling uneasy about being a woman.","You don't feel like you belong in this body.","You're not sure if you can be yourself as a woman.","You're not sure if you like the way you look now.","You're feeling uneasy about the way people look at you now.","You don't feel like you can be yourself in this body.","You weren't ready for this transformation.","You feel like a stranger in your own skin.","You're not sure if you can be yourself in this body.")
](else-if:$character's reluctance is 8)[
(twirl:"Being a woman feels weird.","Being in this body feels strange, but interesting.","Being on this pill isn't really your thing.","You have tits now! It's weird...","Your body moves so differently.","The way people look at you...","You feel reluctant, but curious about your transformation.","You don't know what to make of your new body.","The sensation of being a woman is strange, but exciting.","Your new body is so different.","It's weird not having a penis.","Your new body is taking some getting used to.","You're not sure if you could ever get used to being a woman.","It's strange seeing yourself in the mirror as a woman.","Your new body feels strange, but kind of nice.","You're reluctant, but curious about being a woman.","You're feeling conflicted about your transformation.","You're not sure if you like your new body.","Your transformation feels weird, but also kind of liberating.","You're feeling conflicted about being a woman.","It's weird to have curves instead of muscles.","You're feeling a mix of excitement and apprehension.","Your body is so different, but you're enjoying the ride.","You're feeling a mix of curiosity and hesitation.","Your body is