by Mythos
This is the Proof of Concept release of this CYOA story. Many avenues are incomplete, and the game has no ending. If you read this, please tell me your thoughts. How does it compare to Fool's Quest? Was it confusing? Boring? The beginning is stupid? Please don't worry about hurting my feelings. This projects is still in its early stages and can easily pivot.
Currently, most content exists through:
Unlike Fool's Quest, you can't get all content on a single playthrough. When any playthrough cycles through a couple days going straight from waking to sleeping, then you've exhausted that run.
Loading...
Oh God. He chuckled. I can't believe I just said that. He sits beside me and drops his pants to his knees. Hair is everywhere.
Okay. Let's do this. Those first few tastes are potent. His pubic hair tickles. He's big though. I can't quite fit him all in my mouth, but I can work the shaft with my hand. This isn't my first rodeo.
Why is he putting his hands on my head?
Augh! He just rammed me down on his groin. His cock is down my throat! I'm gagging! Let go. Let go. I can't breath.
And he releases. Oh fuck. He's actually going to choke me on his cock.
Do it again! Do it— Augh! He's just holding me there. He's getting off from my throat spasming around his cock.
How long is he going to hold it? His cock is throbbing. His cum is going straight into my stomach. I'm about to pass out. I'm thrashing like a dying fish, and he's loving this. I'm loving this!
And he's done. I collapse back and gasp.
"That was really something," he says.
I'm teared up. Drool is all over my chin. I must look like a used whore.
I smile.
"Hey! Back there. What the hell is going on?" the bus driver yells. The crowd of men surrounding me recede. And I scramble to correct my clothes.
My panties had been around my knees. My tank top was scrunched around my armpits, leaving my tits hanging out, and four hands had been groping me, one on each tit, one fingering me, another squeezing my ass. And here I was just scrolling through my phone.
My tank top was on the floor. My panties were about one ankle, and my skirt was around my waist. I had been playing with myself in what I thought was an enclosed group of men. They'd certainly been packed in tight, but I guess not.
Everyone is staring, and the bus driver is turned around in his seat to glare directly at me. "You. Come here."
I shoulder to the bus driver. He looks actually mad. Shit. What if he tells the police?
"I'm sorry," I say.
"What the hell do you think you were doing?"
"I'm sorry. I was just... messing around."
"You think the bus is place to be showing your tits? Get off my bus before I call transit security." He opens the door. We're in the middle of the city, far from campus. It's well after dark.
Shit. Shit. I'm going to have to—
He grins. "Huh. All right." He sits in the seat beside me. Now his pants are around his ankles.
I sink to my knees and take his dick into my hands. He's still hardening. It smells like he's been sweating in his seat all day.
I feel like I'm on automatic. I'm actually doing this. I'm going to suck a stranger's cock as a favor. How fucking dirty is that? So fucking dirty, that's how.
Those first few seconds taste powerful, but I'm living up to my promise. I pull his his nut sack aside and lick as far along his taint as I can. So much sweat. I suck each of his balls clean and get my tongue in all the crevices. He's clean down there now, but I don't know if I'll ever be clean again. I focus on his cock now while he rests his hand on my head.
His semen tastes really salty. It kind of burns. I swallow. Why not?
"You're really something, you know that?" he says.
I smile.
The ride back is super awkward. It's just him and me for several stops. Once mine comes up, I duck off. He waves. I wave back and smile. He's an ugly old man, and he's the second cock I've ever had in my mouth. Why have I become such a slut all of a sudden? Why does it turn me on so much?
I step as close as I can to him without crossing the yellow driver line.
"What if I could make it up to you?" I chew my lip and try to look coy. "What if I were to suck you off?"
He eyes me, glances at the other commuters, then looks me over. "Seriously?" His voice is low.
I nod.
He closes the door and drives on. "You get off at UCF and Main?"
"Yes."
"I'll take you there, but first you're coming with me to the end of the line. So sit down and behave."
Stops go by. My stop goes by. People disembark. All the while, I'm sitting in front studying the man who's cock I just agreed to suck. I think he's in his fifties, and not attractive at all. I could just sprint off the bus, but then he might call transit security on me. I could never ride the bus again.
Everyone is off the bus now. He's pulling into a bus depot. We're completely alone now.
I can't do this. I feel like I'm going to throw up. I'll just explain. I'll say—
I reach under my skirt, hook my thumbs into the waistband of my panties, and pull them down to my knees. I wonder if he'll be bolder now.
Wow. Okay. I just did that! I'm crazy. I'm literally crazy. Now I'm just going to read my phone like any other commuter.
The hand is back. It's touching my slit! Oh God. It slipped inside me. Oh fuck. He's finger banging me. Act cool. Nothing is happening.
Holy cow. He just reached under my arm to cup my boob. Don't look down. Oh, he's squeezing my nipple. Fuck, I can't believe nobody is seeing this.
A third hand. On my other tit. Either I'm being groped by an Indian God, or someone else just joined in. He tugged my neck line down. My tit is hanging out. Gotta keep my breath level, but fuck this has me so amped up. Now someone is pushing their thumb against my ass. He's about to—
Oh shit. That woman just noticed. The hands retreat. I get decent fast.
Damn. She's still glaring at us. Or just me? I guess fun is over. And it was just getting good too.
I wonder if we'll farther next time.
I inch backward. His jacket brushes against my back. I can feel his breath in my hair. I think he's sniffing it.
Oh, you thought this was an invitation to feel my ass again. Well, surprise. Do you feel that, Mr? Those are my fingers tracing along your dick. And you're hard. It's running down the leg of your pants.
I find his zipper. You can only hear the unzip if were listening for it. And in goes my hand.
Ohh, he doesn't manscape at all. It's like a forest in here. But my, he feels huge. At least his balls do. My hands must feel cold.
Let's get it out here. Good.The tip is pointed toward my wrist. Now let's work it.
God this is crazy. I'm still flicking through my phone like a bored teenager. No one would know I'm giving a stranger a hand-job.
He's breathing heavier. He's mauling my ass, and now his dick is throbbing. Oh my God! Cum. He's ejaculating onto my wrist. That was quick. I guess he liked it.
Good timing too. This is my stop. I tuck his dick back in and walk right off the bus. I never saw his face.
His jizz smells pretty strong. I wash off at the dorm. I wonder if I'll ever encounter him again.
Back on the bus to work. home. It's incredibly crowded. I move to the very back where a crowd of men of all walks of life have congregated, and I wedge myself between all of them and then engross myself in my phone and music.
Am I asking for it?
I think I am. I'm in my short skirt and my revealing tank top, and I'm inches from all of them.
A hand rests on my ass and just stays there. Somebody is bold, or it's the same person from last time. Just ignore them. What's a little grope anyway.
The hand is squeezing. Naughty.
I can tell this is the person directly behind me, though I can't see his face.
Uh oh. He's touching my slit through my panties. Too much. I reach down. His hand immediately snaps away.
Oh, I guess he's nervous too. I should—
I can't really blame them though. I'd be checking me out too if I were a man, especially in these tight pants. Groping is such a sleazy thing to do, but I'm going to choose to take it as a complement and not let it get to me.
But I still get the right to slap the man if I catch him doing it.
Ugh. Someone just patted my ass. There are four guys behind me. All of them are engrossed with their phones as they clutch the bus hand rails. One of them is lying. They're probably all checking me out when my back is turned, so they all get a dirty look.
I guess I shouldn't be surprised. I'm wearing a short skirt and a tank top today. If anything, I'm surprised I haven't been groped even more.
Maybe one day I'll get a car, and then I can say goodbye to this sketchy bus. But then parking would be horrible.
That reminds me of that dream I had. I was running away from a predator, I think. But it caught me, and then it... it had its way. God, that was a powerful orgasm though.
What would I actually do if I was attacked? Some thugs catch me while I'm at the bus stop, and I can't get to my pepper spray in time. Would I fight? Probably. It might make it worse though. It'd be the worst night of my life, probably.
But there's something about being the scared deer, white-tail up and rump exposed, bounding away from a predator. If I get caught, I get devoured.
Weird thought, but it was a strong orgasm...
But first...
"What's your name?"
"Why?"
"What's your name? Or I'm sending your pictures to your mom."
"Don't! It's George Wheeler."
"And you go here at UCF, right?"
"Yeah. Why do you want to know?"
"I want to know what name to put on your contact card. I'm sending your dick pics to myself."
"What? Why? What are you going to do with them?"
"Nothing. Maybe. Or maybe one day I'll come knocking." I toss his phone back to him. "See you later, George." I walk away. He doesn't call after at all.
No that was a power move. Don't know what I'd ever need from a geek like him, but I've got him.
Not a bad bus ride at all.
I mean, with this wall of men, I've practically got privacy. I can have some fun, right?
I grip the pole with both hands press my groin to it. Bend the legs. Slide all the way down. Everyone in the back of the bus is watching me. Fortunately they're all men.
My panties are directly against the steel, but I don't think that's going to work. Let's slide those down to my ankles as sensually as I can. Now let's grind.
The steel is cold against my pussy, but I don't care. I'm squatting so low that I leave a snail trail from waist level all the way down to the ankles. How many hands have handled this bar? I'm going to cum and I don't fucking care.
And here it comes. My grinding turns from sensual to obcsene. I just fucking hump that bar until I'm through my orgasm. Then show's over. I turn around and—
Fuck. Somebody's got their phone out. He was recording me. This guy is paunchy and pale. Like a career cubicle worker, and he's smirking like he just can't wait to share this with everyone.
My stop is here. I have to get off. Shit. I fucking need to—
The bus to work home is packed. I work my way to the very back where it's crowded with men. When some see me, they grin. Oh, they were here last time.
I get to the very back and take hold of a bar. The bus moves.
Who can see me? Not many actually. It's really crowded, but all the guys around me can, and they keep glancing at me. I wonder how disappointed they'd be if I didn't do anything today? But don't worry boys. I've been thinking about this bus trip all evening.
Let's show this pole some love. I wrap my leg about it, squeeze it to my body, and I grind.
The metal feels cold against my groin, and particularly against my tits after I pull my tank top down. I love this bar. I fog it with my breath. Then I tease it with my tongue.
Oh, all the guys are watching. And I think they've just closed in around me to hide me from the rest of the bus. If they're kind enough to do that, then I should—
Frankly, it's kind of a turn on. Thousands, maybe millions of people are going to see me fucking this pole. They might jack off to it.
I blow a kiss at the man recording and I walk off the bus.
What's so bad about being an internet porn star anyway?
Hell, it might be more lucrative than waiting tables.
That would be crazy, wouldn't it? If I just took my clothes off. I could get in so much trouble.
So just my skirt. I shimmy it down to my ankles. Panties only. Now I'm naked from the waist down. Stay calm. No one can see below the waist here, except for my audience. Christ, this is terrifying.
I motion the guys closer. They pack in tighter. Some check to make sure I'm hidden. I've got a little stage back here.
Fuck. Let's do it. I peel my tank top off. I'm naked! My adrenaline is pumping. Just my panties!Oh God! My adrenaline is pumping. One last item. I make sure the coast is clear, and my panties are on the floor.
I am completely fucking naked in a crowded bus. I'm trying to dance sexy, but I can't stop quivering like a leaf. At every bus stop, I practically cower from the windows. Even when I'm writhing and grinding, I'm keeping an eye out. I don't think these guys care though.
My stop is next. I scramble for my clothes. Panties. Skirt. tank-top. Just as I dash for the door, some guy slips a ten dollar bill in my waistband.
I guess I'm a stripper. Jesus. My whole body is trembling. I should have worked up to a stunt like that. But it looks like I just skip a few grades.
But first. What other pictures does he have on this phone? Oh! He's a student here too. That's the Union building. Hmm. None of these are interesting though.
Wait. A dick pic. Four dick picks. With his face. Perfect blackmail material.
Hold up. He's catching up with me. That guy is the least intimidating man I've ever seen.
"Give it back!" He's out of breath. "Please."
"You always record girls without their permission?" I ask.
"I'm sorry. I'll delete it."
"I already have."
"Please give it back. I've got a lot of important files on there. Please."
"Like your dick pics?"
He goes silent.
"I could put them on the internet? How would you like that?"
"Please don't. I'm really sorry. I wasn't going to post the video. I swear. I was just going to keep it for myself."
"Sure."
"I'm serious. Please, give it back. I'm sorry. Please. I won't do it again."
Wow. He's a real beggar. I guess I should return it. It'd be a bitchy move to keep it now.
"Fine." I toss it back to him, "but I really shouldn't. What you did was really creepy."
"But you just masturbated on a bus."
"So what? Never record a woman without her permission, creep. Now fuck off."
He hurries away. What a loser.
But if you think about it. I just made ten dollars for a twenty-five minute bus trip. That's way more than I make waiting tables.
And holy cow was that exhilarating.
Maybe it's time I reconsider my evening job. I could pay my way through college with ones.
Food for thought, isn't it?
And snatch.
"Hey!" he lunges, but I dart through the crowd of of men. "Give it back." He can hardly get through the crowd at all. I think my audience is helping me out. Those are my people.
I'm five blocks away before I stop to breath. Let's look at this phone.
Yeah. He was recording me. Got my face too. Little creep. I only give shows on my terms. Somebody should give him a lesson about respecting privacy.
I delete the video, go to recently deleted, and delete again. It's gone.
Time to toss the phone and go home. I need to be more careful next time.
I whip around and press my back to the pole. Whoops. Gotta drop my backpack first. Okay, keep going. Let's try to be sinuous. That's sexy, right? Every guy in the back is watching me now.
Now let's arch my back and press my ass against the poles, right between my cheeks. Now let's bend my legs. Squat low. Drag my ass all the way down.
My skirt rides up. There is nothing between the cold metal and my butthole. The only thing between the metal and my butthole are my thin panties. How many people have touched this pole. How many will.
Now lets ride it back up. This is feeling good. I'm just like a pole dancer now. I should be getting dollar bills for this. They could stuff them in—
I wedge it between my tits as best I can, which isn't actually much. My tits are too small. But I've definitely got all the guys here looking at me. Especially the guy sitting right here.
Now for something special. Let's rub my body down the pole, and now when I come up, I'll hook my finger in the neckline of my tank top and pull.
My tits are out! I'm showing my tits to strangers. The metal is so cold against them. My nipples are hardening. I twist one of them while looking a guy right in the eye. I'm seducing him. Maybe if I sidle low enough on this pole, the guy sitting next to me might reach out and—
Woah. Bus stop! Women are getting on. Abort.
I snag my backpack and stand like a normal commuter. Most of the guys are still staring at me. They're grinning. Some are checking me out.
My cheeks are burning. Despite how hard I try, I'm also smiling.
There are actual poles in the bus though, aren't there? I'm holding one. The music in my earbuds is a little sultry too.
I could just press my body against the pole like this. Hmm. It's a little tough since it's attached to a chair.
Is anybody noticing? Huh. No. Not even the guy in the chair.
Maybe if I press my crotch against it, and wrap my leg around it. There we go. Guys are looking now. About time. I'm treating this pole like an old lover. One is smirking. Now what if I grind myself against it, just a little.
Now the guy in the chair has noticed. About time, my crotch is about six inches from his head.
My skirt is riding up the more I grind my crotch against the pole. My panties are in view now. Now that I have an audience, I could—
I'm engross myself in my phone, and I've tuned out everything, especially the guys right behind me. I probably look like a tempting target.
One stop. People get on and off. Two stops. More people.
What's going on? Is everyone on this bus a gentleman or something?
Three stops. Ah! There we go. Someone just brushed my bottom. I was starting to wonder.
I don't turn around though. Just keep browsing on my phone. Another stop later, and again. This time, a hand squeezes. The urge to react is hard to resist. Are they going to touch me again?
Yes, they are. A hand lingers on my ass. Fingers inch between my legs. It's caressing up and down my slit. I'm trying to ignore it. But how can I when it feels so nice. My heart is hammering.
Bus stop! The hand snaps away. People behind me get off. Some get on. Nobody touches me again all the way home. I guess whoever it was must have left.
Wow. Holy shit. I just let someone grope me. And I never even saw their face.
But you know, when it happens on my terms, it's actually kind of exciting.
The bus to work home is crowded today. I'll have to stand, and I'm in my skirt again today. I guess I can expect a pat or two from these sleazy assholes.
I shoulder to the back and take hold of one of the poles.
...poles.
Oh yeah. I had a dream about the bus. I was a pole dancer. They were stuffing me full of money. That felt far better in the dream than it probably would in real life. Actually, everything about that dream was kind of nice. I was a sexy pole dancer. Men would grope me. Their hands felt so nice.
My dreams have definitely been perverted lately. I put in my earbuds and listen to music.
"Something dark," I say. "Like a back."
"We do have black." She sounds resentful of having to admit that. It's rich and bold on my lips. It reminds me of Clare.
"Perhaps a dark matte purple," the woman suggests.
I try it. The purple is so dark it's nearly another black. The dark moss green is similar, all midnight colors.
"Hmm," the woman says. "Matte colors normally work better with darker hair. You might have better luck with a lighter shade, and a more traditional color."
"Yeah..." She's right. I'd need black hair like Clare's to pull off these shades, not my mousy brown.
"Shall we try something else?" the woman asks.
...or, I could finally dye my hair like I've always wanted. Wouldn't that be a perfect look, blonde hair and bubblegum lipstick. It would clash so much with the quiet, meek girl everyone thinks I am. It's bubbly.
"I want it," I say. I'm practically giddy.
"Exciting choice." Her smile is a little forced. Since I'm going to for the look. To top it off, I get a few glittery ones too, just like middle school. I get some mascara and fake lashes too. No one will recognize me.
By time I'm out of there, I'm late for work.
Stop requested.
I just pressed the bus button. Huh? I did that. The bus pulls over, and no one gets out. Some people are looking at me.
I guess I'll check out the store.
The store's name is Body Shop. It smells of perfume, but in a good way. The lipsticks are at the counter, with shades from sultry reds, ditzy pinks, to gothic blacks.
"May I help you?" an attractive saleswoman stops by.
"I'm just thinking about a new look."
"Would you like some help picking one out?"
My heart is hammering. All I can think about is that perverted dream. I'm actually a little wet right now. "I'd like that."
"What kind of mood do you have in mind?"
"No," I say. "I think I like these. I'll just have to dye my hair black." I've always thought about dying my hair some day. Why not now?
The woman tries to smile. "That is certainly something you can do."
Clare is going to be delighted to see I'm joining her in a goth look. I have the woman bag all the matte lipsticks I tried. Unlike Clare, I'll do more than just straight black. But to complete the look, I need foundation, mascara, and definitely an eyebrow pen.
I hope I'm not wasting my money. I spend so much time there that I end up late for work.
Is that a makeup store?
The 47 bus has passed by it every day and I'm only now noticing. It's only two blocks away from work too. I could just get off here and stop in.
It's because of that dream I had about lipstick that I'm thinking about it. God, that dream was perverted. A new look might be sexy, but I need to be at work in fifteen minutes.
I go back to reading my Facebook feed.
"Something neat," I say, "like a pink."
The woman gives me a sample. Bubblegum pink. That's a vibrance I haven't seen on my lips since middle school. I kind of look like a middle schooler again.
"That has a fun a bubbly look to it, doesn't it?" she says.
I can tell she doesn't approve. It doesn't really fit. Pink goes with blonde. Not brunette. I should go with something else.
"How about something sexy," I say, "like a strong red."
The woman picks one from the sample bin. "Try this one."
I put it on in the little desk mirror. My lips are a deep cherry red.
"That is a perfect look," she says. "It's goes just right with your hair and your complexion."
I think I agree.
I try a few others, but I'm already sold on the first. I also get some mascara, blush, and an eyebrow pen to complete the look. The woman helps me put them on. , but the woman I see in the mirror afterward is someone else entirely. She's the kind of woman who turns young lads into men, and leaves nothing but a lipstick kiss on a napkin for them to remember her by. She's a powerful woman who takes what she wants.
I spend a little too much. And I end up a little late to work.
"I'm free tonight," Clare says.
"Jumpy." Suddenly, I'm a little jumpy. I study the slide under the microscope to keep from looking at her.
"We could watch another movie."
"Another horror movie."
She laughs. It's forced. She's nervous. Oh God. This is about the physical contact. "It doesn't have to be another horror movie. We could just hang out too. We haven't had a chance to, but now the lab project is done."
"I'm not sure I can," I say. "I've got a CompSci project I need to do."
"Is it due tomorrow?"
"Not tomorrow, but I need to get started tonight."
"Then put it off. It's not like you want to do it."
But those ditzes do get results. Sometimes. They're cheating themselves of their education, but then this class really isn't important for being a marine biologist, is it? And and as a divorced and unkempt old man, Dr. Bryant might actually go for it. It wouldn't be illegal. It's not like I'm underage.
What am I thinking? For a second, I was actually talking myself into doing something lewd for Dr. Bryant just for a grade. I would feel dirty forever.
I leave the classroom. I'll just have to see if I can figure recursion out myself. I'm not going to stoop to using my charms.
It seems Your influence over her thoughts is not absolute. She's resisted You. Perhaps Your influence will need to be more gradual.
I hesitate after class as everyone files out. Dr. Bryant talks briefly with a few other students as he packs away his laptop. All I have to do is step up, wait my turn, and talk about some kind of leniency on this assignment, but I can't bring myself to do it.
What am I supposed to say? Please, sir, may I have a break? Could we just pretend like I did this assignment and give me a B? Or maybe I'd be just like those ditzes, flashing my tits to get what I want. Craziness. If I go talk to him, I'm just going to embarrass myself. I'd be better off flashing Nick.
He'd certainly like that, wouldn't he? Not sure if I would, but with enough charm, he'll probably help me get through this assignment. After this year, I won't need him or a compiler ever again.
I'll have to convince Nick to help me again. He just gets this stuff. He programs his own games, for fun.
Sickening.
I text Nick afterward that I'd like his help again. At lunch, he responds that he's too busy, but after some convincing, he finally agrees for tomorrow night. He's really hesitant. I might have my work cut out for me.
Another CompSci assignment, due in two days. And it's on recursion, the devil's algorithm. This class is sinking my GPA, while Dr. Bryant acts like programming is the simplest thing in the world. Why is CompSci even required for a Bio Major?
Some of the girls from the rugby team are
Nick once offered to help, but only cause he wants to get in my pants, so I'd rather not. Wish I could be like the Unless I'm prepared to bat my eyes at Nick until he helps, I'll have to get started tonight to give myself enough time. I really shouldn't lead him along like that, but my only alternative would be to get the teacher to go easy on me somehow.
I wish I could take more elective courses. Every single one of them would be one of Mrs. Giovanna Thorpe's classes. I can't be sure they'd all be small, open discussion
My final course for the day is Literature Studies, the only elective course I could take this semester, and it's definitely my favorite course. The teacher, Mrs. Giovanna Thorpe, is amazing. The class is small, only twelve people, and they're more of an open discussion than a lesson. For half the classes, we just tell stories about ourselves. Mrs. Thorpe's are particularly interesting. She's lived an amazing life traveling the world. Many of her stories are particularly sultry or passionate, which I can imagine. She's a strikingly beautiful woman, and she dominates the classroom with her personality.
She's incredibly well educated as well. There isn't a book she doesn't know something about, and she's met so many authors. She's also written several books herself, though she doesn't go into detail about them. I found out online that many of them are erotic.
For the class, she works with each of us personally to pick out novels we want to read and analyze. I'm reading The Master and Margarita at her suggestion, and I love it.
I wouldn't miss this class for the world.
There are few frat boys sitting in the rows ahead of me. Looks like they're fresh from the gym, and they're flirting with that girl beside them. I wonder why they never flirt with me?
That's not true. They just don't do it in class. There will be plenty of time for them to play with me this weekend at the Phi Pi. I don't think Cynthia is going to leave me alone unless I let someone take me home with them. Not sure I will, but who knows?
I need to stop thinking about it. I just missed everything the professor said for the last minute.
Something is wrong. Time has passed. A lot of time. Looking through her memories, it wasn't just hours. It was over a day. She's been studying, and eating, and cooking, and working in some work project where she makes tiny houses with sticks. Architecture? She hardly had a moment for herself.
You weren't awake for any of that. But why did You wake now?
She was thinking about those boys, about flirting. In that moment, she felt playfulness, and lust, and loneliness. It's her desires and emotions that brought you to the surface. More than that, they fed you.
But it's not enough. You feel... insubstantial. You can't even touch her thoughts, and already You're going dormant again. If this host doesn't feed You more, and soon, You may never surface again.
I mean, why bother? Right? I'm the only person who's ever going to use it. It's glistening with the remains of the lube and my own juices. Whatever.
But where to hide it? I certainly can't leave it lying out where Cynthia might see it. Not my desk. Not my dresser drawers. She opens those sometimes. Hmm. What about under my bed? Yeah. I can hide it behind my underbed linen container. Just move that out of the way, and toss the dildo way back there in the corner.
Oh, shit. It just rolled over some dust bunnies. My new Big Black Cock has a glittering of dirt, and a beard. It's dirtier under here than I thought.
Am I being weird right now? Nah. I'll just brush it off next time.
Holy crap. This is waaay bigger than it looked on Amazon. This is supposed a big black cock, of a human? Or a giant? Let's get this out of the packaging.
Huh. It's floppy! It smells funny too. But Holy Hell. I can't even touch my fingers to my thumb when I hold it.
I gotta try it! Cynthia is at class. I've got an hour, at least.
Where's the lube? Here it is. Okay. Door locked. Blinds closed. Pants off. Let's see if this beast'll fit inside me.
I get on my back on my bed. This lube is super slippery. Shouldn't need much. Now line it up, and... that's tight. Let's just rub it along my slit a bit. That's nice. Now gentle pressure.
There it goes. Oh, fuck. Nice and deep. In and out. Oh God I feel full. I'd love it if this were a real big black cock. Just split me open. Just a huge man to fuck me with his huge cock. Split me open.
Oh fuck. I'm loving this. Oh this is doing it. My toes are curling. "Oh fuuuck!" Shit, I'm yelling. I'm just... This is so fucking good!
This was the best twenty dollars I've ever spent.
Wait.
How am I supposed to clean it? I can't just walk down the hall and rinse my dildo off in the communal bathroom. Huh. I guess I'm just going to have to—
That seems reasonable. I'll even use her dirty panties so I'm not spoiling a fresh pair.
I just gotta dig through her laundry basket here. Ooh. Her rugby uniform reeks. Does she not wash it between practices?
Here's a pair. Wow, yeah. She's definitely not going to notice a little more mess. These must be the panties she wore to practice today. Jeez, they're powerful. The gusset is all crusty with yellowish discharge. The waist band is still sweat-soaked. And those are definitely pubic hairs.
Perfect! I wipe down my dildo using the inside of the crotch. Yeah. She definitely won't be able to tell.
I'll just wipe my hands with the panties and then put them back at the bottom of her laundry basket. Perfect!
I'm hiding my dildo in my underbed linen container when it occurs to me: Was using her panties like that a rational thing to do?
...
Sure! It was downright practical. The panties have to be washed anyway.
Yes. Definitely dirtier. It almost looks clean now, except for glistening with all my secretions. Time to put it back into its hiding place under the bed. Right over there, in that far corner. Just roll it in, just like a lint roller. Look at all those hairs and sand.
Not quite enough. I reach under the bed and push it really into corner, get all the dust balls. Fuck, I'm getting so wet just thinking about the next time I'm going to use that cock. And my pussy is already gritty. I can feel it every time I move my legs. It'll be a constant reminder.
I put the linen container back in the way and put my clothes back on. I'm still so fucking turned on right now. I'm still oozing. I guess my pussy will self-clean then, so everything is alright. Right?
I'm getting weird.
Because I fucking need this in me right now, that's why. I'll just pick off the worst of the dust bunnies.
It's got a base. I set it on the ground pointed up and I hike my skirt up about my waist. kick off my jeans. Panties off. I am dripping. I squat over my beautiful dirty toy and sink down.
It feels gritty. The dust bunnies are soaking up my juices. Oh fuck. Every time I bounce on this cock, I can feel them coming loose inside of me. I'm so fucking close to an orgasm already. The inside of my pussy must be like a lollipop dropped in a dust bin. All that dirt and loose fibers.
Fuck. I'm cumming so hard. I ride that cock so hard I think I'm bruising myself.
And I'm spent. That was such a good orgasm, I'm cramping up. But I can definitely feel the grit and dirt and rolled-up dust balls inside me. This perverted adventure was fun, but I think from now on, my toy should be—
Cynthia is at class. I've got the room to myself. I think it's time for my big beautiful black cock to earn its keep around here. I need to ram it in me so badly.
Just got to get this underbed linen container out of the way. There it is, like it's been forgotten. I haven't forgotten you, Big Black Dildo, but I am having to crawl under my bed to get you out.
Oh my. It is covered in dirt and dust bunnies. And it's crusty.
I don't know why I thought it would be a good idea to never clean it. I'll need to take it to the sink later. That'll have to after it's less crowded. Why do I want to masturbate in the middle of the day anyway?
Perfect! I'm so dripping wet, I'm practically a car wash. I lie on my bed and pull my knees to my chest. Fuck, I've never been this wet. Now I need this dirty cock in my cunt.
Oh God. It slid right in so smoothly. All the way to my cervix. Now to get to cleaning. In and out, and twist it about. My whole body is trembling. I'm treating my precious little sex like it's a rag. Wipe up a dirty cock and discard.
"Oh Shit." That thought sent me off. Hammer that cock into me. I reach behind and jam finger into my asshole too. Shit, it hurts so bad. My poor hole is caked with soaked dust and sand. Even my fingers are scraping my hole. My ass is a worn out dust bin. My pussy is a rag for wiping scum. "Oh God." My toes are curling.
And I come down. Little jolts of pleasure still dance through me, especially around my irritated anus. I wonder how my vagina will fare?
The dildo reeks, but mostly of my juices. The hint of ass is a memory. I play with a clit for a few minutes until I've recovered, then I stash the dildo back under the bed.
It only makes sense. The ass is meant for dirty things, right? But Holy Hell is it going to be a tight fit. I'm going to need to lube my butt for this one. Fuck, this is going to feel amazing. That cock is so dirty. I set it upright on the floor and squat over it. Now just sink my weight onto it.
Shit, that's a tight fit. Relax. Push. "Oh fuck." It just slipped in. I just felt every piece of sand scraping my poor ring. They feel like paper cuts. Oh fuck, it's scraping me all the way down. I feel so full. All nine inches.
Now to ride this bitch! Fuck it's big. Just go slow. My pussy is literally dripping. I can feel the dust clumped on my anal ring. It's soaked with lubricant.
And I'm cumming. My cunt is so sloppy. I'm squeezing this filthy cock so hard. Bounce on it. God, it hurts. It's scraping my hole apart. "Fuck! Fuck!"
Oh, and done. Pull it out. Slowly.
Hmm. It looks like my butthole pushed most of the detritus to the base of the cock. Too bad it's not lost inside me. But my ring feels so scraped up now. I love it.
But I have a problem now. This dildo smells distinctly of my ass. I can't just put this back under the bed. Cynthia might smell it. I'll have to—
There it is! Get out here you beautiful dusty black cock. Look at you! You've been sitting in the corner under my bed, and you look so dirty. You've got dust bunnies up and down your length. I think that glittery stuff is sand. Or maybe glitter. And all those hairs! Ooh and some of them are really long and tangled around you. I think that's Olivia's hair.
My heart is palpitating just looking at you, but sadly, I don't think I can enjoy you today. My poor pussy got irritated last time we made love. Red and puffy. It hurt to sit down. And I think I still have some grit up there.
Seeing as how you're way worse than last time. So I guess I'm going to have to—
learn to deal with it, because you're totally going to pollute my pussy right now.
I'm naked from the waist down instantly. And that cock is pointing up from the floor like a spear to impale myself on. I hover my pussy over that filthy thing, and just delay my gratification. I'm going to spread my lips open just to maximize how much gets in instead of rubbing off on my lips. This is such a bad fucking idea, and I am so fucking wet with anticipation.
And sink. Fuck, it's so much worse. The sand is scraping. The dust balls are clumping. The hairs are tickling. "Jesus Fuck. Jesus Fuck." I'm already cumming. Ride this thing. Bounce on it like it's a galloping horse. It hurts! It's like fucking sandpaper.
I'm cumming again. "My God. Yes!" This orgasm is never going to end. It's all pain now. I'm so polluted. All the dust and filth. I'm packing it deep.
And I collapse. Holy shit. I'm twitching. It's like I've been electrocuted.
God. My poor poor pussy. It's like a cut on my eye, but a hundred of them all inside my vagina. There's a crust of filth on the lips, but most is deep inside. Good.
Time to put the cock away. Hmm. There's not much mess under my bed. What about Cynthia's?
Oh fuck yes. Jesus. I don't think a vaccuum has ever been under here. Is that sawdust? Those dust bunnies are huge! Roll the cock around. Get it all. Good. Now to stash it back under my bed.
Walking hurts. My pussy itches. I wonder just how enflamed my pussy is going to get now? Time will tell.
"Oh fuck. Oh fuck." I've been bouncing on my big black dildo for thirty divine minutes now. I'm lifting off completely and slamming back down until my ass presses on the floor. And I'm finally cumming. I finally touch my soaking cunt.
"Fuck." It's so strong. I'm losing control. I can't stop moaning like a horny slut. I am a horny slut. Fuck yes. I can feel every inch of it inside me.
And I'm done. Let's just sit on it for now. I hook Cynthia's laundry hamper with my foot. Those same dirty panties are still there. Time to pull out and clean up.
Wow. The dildo is dirty. There's brown caked under the crown. I guess I was a little full today. Oh well. I wipe it clean with the inside crotch of the panties.
Uh. Shit. I guess the cock was really dirty. Brown is smeared all along the inside the panties, front to back. It smells really powerful.
I should not have done that. There is no way in hell Cynthia isn't going to notice this. I'm going to have to—
"Oh fuck. Oh fuck." This big black cock feels so delicious, especially with Cynthia's panties wrapped around it. This is so fucking messed up. Her stink is getting deep inside my pussy.
Shit! I just lost my grip on the waist band. I just thrust down, and they slid up inside me.
Fuck it. Keep going. I'm so close. They're going deeper every time I plunge down. I'm packing them in against my cervix. I'm beating them down harder. I'm cumming. I'm screaming. They're packed so deep inside me!
And I'm done. Ooh, that was good. I can't believe how powerful my orgasms have been lately. Gotta get those panties out now though. Hmm. They're really up. Christ. I can't get my fingers deep enough.
Jesus. even with a pen, I can't fish them out. It's been almost half an hour now. Are they lost forev—
Nope. Got them.
Wow. They are completely sodden. Crotch. Waistband. All of it. I was really wet. Shit. They're going to be so crusty. There is no way in hell Cynthia isn't going to notice this. I'm going to have to—
Might as well. It's not like she'll realize. She rarely does laundry, but if she does notice, there's one place she'll never look for them.
I roll onto my back, step my feet through the holes, and pull the panties on. All that brown is now pressed against my crotch, from my smooth mound bush to my ass. A tinge of brown is barely visible along the outside.
I give my clit a quick rub through the panties. It feels damp and a little sticky.
I roll onto my back, step my feet through the holes, and pull the panties on. Ooh, they're still wet. I can feel it along my waist and along the crack of my butt. The mess in the crotch is fixed against my pussy.
Next time I do laundry, I'll wash the panties and return them.
...Whenever that happens.
I'm sure I can get the worst of it. Let's start right here on this particularly dense smear. Oh Christ. That tastes powerful. Some of the smear scrapes off with my teeth. Let's just swallow it quickly without tasting. Now I've got to let my saliva soak into the fabric so I can suck it out.
I can just barely taste her discharge behind the taste of poop. It's a potent combination of flavors, but it's my place to tolerate it for using her panties like this.
Hmm. my mouth is getting really dry. And and I cant get a lot of these stains to lift. She'll definitely still notice this.
Easy enough. If I suck out my own juices, it won't be crusty after it dries. Then as long as she doesn't smell it, she won't know. Let's start with the crotch. Oh Christ. That tastes powerful. Just soak my saliva into the sweat and discharge, then suck it up. How much of this discharge I'm tasting is Cynthia's? Or is that from all my afternoons of fun?
Her ass was against this part I'm sucking on now. I think I can just barely taste it.
Hmm. My mouth is getting really dry. I'm not sure I have enough saliva to finish this job. The whole waistband will be crunchy.
I think it's time I accept that I just have to—
Squatting, I hold the panties under me and give out a little squirt of pee.
Oops. A little too much. A little puddle is on the floor. No problem. I soak it up with the panties. Now to suck them clean.
Oh, this is much better! I can scrub the wet fabric with my tongue, and then suck small mouthfuls of pee. This is working. Let's go over the crotch again. Ooh, I'm tasting all new flavors this time. I'm definitely cleaning them better.
I need more pee though. Just a squirt. Ah damn. Dripping again. Soak it up. Suck it out. Squirt. Soak. Suck.
It takes a half hour, but I finally have the browns stains gone. Even her own vaginal discharge is cleaned away. They're almost too clean.
Ooh! I've still got to wipe my own ass. Let's use the panties. Ooh. Clumps. I nibble them away and piss on the fabric to give it one final tongue washing. Everything is perfectly clean now.
Takes twenty minutes of this, but I think I have these panties cleaned of all my vaginal juices. They won't be crusty, and I've sucked most of the pee out, so they shouldn't smell too bad. It's not like she'll be sniffing them before tossing them in the machine.
Now I just stash them in the hamper, lick the last drops of pee off the floor, and bingo. It's like no crime was ever committed. Time to dress.
—wash them with my own laundry, and then put them back. It's a little sad that I won't have this pair of panties to clean my messes anymore. I can't be messing up her clean panties, right? But I'm sure Cynthia will leave another dirty pair eventually. I think she even has rugby practice tomorrow. Those should be very sweaty. Very messy.
I can't wait.
And I'm back on Amazon. It doesn't look like they actually have all that much bigger.
Wait, never mind. That dildo looks like something from Hellraiser. Fourteen inches?
Here's one that's nice and fat. Twelve inches long. They're comparing it to the fist. The fist seems narrower.
Hah! Anal snake. Twenty insertable inches. I can only imagine.
The rest of this list just seems to be about anal stuff like butt plugs. Maybe it's better if I just stick with my big black cock for now. It's already a snug fit. I don't want to turn myself into a cavern after all.
I close down my laptop and clean up after my little session.
Yeah, why is that? The internet said bugs and spiders. I slow to an idle humping and peek into the bag. It's hard to see in there. I flip a few dust mats with my finger.
Ah. Ants. I see you there!
I squirt more pee onto the dildo and I choke on the dildo to get it all drooled, then I stab it into the bag.
There, four dead ants on the head of my cock, as well as a fresh coat if grime. Up they go! Right inside my precious little cunt. Now mash them. Grind those little bugs into a past right up against my cervix. Fuck. This is so perfectly wrong, and it's going to make me cum!
Who the fuck am I kidding? I was thinking about that bag the moment I locked the door. I fetch it out from under my bed, open the little cardboard slide, and peer inside. Holy shit. There's so much dust. It's like cushion stuffing in there, like a pelt of fur.
My dildo glistens with my juices. I slide it into the hole, stir it around, and pull it out.
Just look at that! It's fully matted once again. Little hairs. Fibers. Dirt. Beautiful dust balls. I've just cum, but I'm dripping for this.
I set the dildo on the floor, get my pussy over it, and slam down the to the base. Fuck that's rough. It doesn't slide at all. The dust is caking. I'm polluting myself with detritus from all over campus.
But my God it's got me so close to climaxing.
Yesss! Why didn't I think of that before. I was about to get off on just boring old dust.
I piss on the dildo again and stab it to the bottom of the bag.
I ram the dildo down my throat again. Damn it. There's crap on it that makes me cough. It really tickles. Whatever. The dildo is dripping again. I stab it to the bottom of the bag.
There we go. The head has crumbs on it from really crunchy bread, the kind that scrape the roof of your mouth, and they're stale. Perfect. Those crumbs are going deep.
Oh fuck! Yes. I felt them. Some definitely just scratched my vaginal walls. I double over. Fuck. Why is this turning me on again. Why am I so fucking horny to torture myself.
I'll puzzle that later. Let's just focus on fucking myself to a third orgasm now. There's no turning back.
Right on the verge, I stop and jam the dildo back in the bag. It comes out with another coat. My pussy is trembling, itching. I pause the cock just at its entrance to cool down a moment. Then slam it in!
Shit! I didn't cool down enough. Here I cum! Might as well take it for what I can.
"Oh fuck, oh fuck, oh fuck." I fall onto my back and just hammer it my cunt manually. I'm scratching up my vagina. "Oh God." It's squeezing the cock with it's filthy walls.
Oooh. That was something. Wow, okay. Now comes regret. I've got so much dust clumped on my lips, it's like I've got pubic hair again. There's dust clumped all in my pubic hair. My vagina itches horribly deep inside from all the dust and dirt inside.
Fuck, it really itches. It's time to hobble off to the shower and clean up. I can't leave my pussy like this.
Wait! There's an idea.
I fish two fingers in the bag and snag a thick mat of dust. It's like a huge fur ball with hairs snaking through it. If I were to squish it, it'd probably make a pingpong ball size.
I press the mat against my cunt, line up my dildo, and ram it in. Aaah! Shit! That really dried me up again. And it rubbed me raw all the way down.
I find another clump, line it up, and press it deep inside me. Fuck! It's like I scrubbing myself with a dry sponge. But I can feel them inside me. There's a carpet against my cervix. Let's batter it down flat.
As much as every thrust hurts like sandpaper, I could get off doing this. I force-feed my cunt a few more tufts. Yeah... I'm about to cum again. Any second now!
I get on my knees and hold the dildo underneath me. A quick squirt of pee. Oops. Most of it got on the tile. That's okay. I'll roll the dildo in the puddle. Now it's is nice and wet again.
Ohh. That didn't exactly slide into my pussy easily, but it's a hell of a lot better than before. Another squirt to wet the dildo, and now it's back in the bag.
Good! It comes out with a wonderful coat once again, which I immediately slam into my cunt. This is so fucking unpleasant though. I'll just do this quick to another orgasm. It's already mounting.
There's still some crap covering it, but fuck it. I take it down my gullet.
Oh, there was definitely crap still on it. Dust is sticking to my tongue. And now I've got hairs in my mouth. But I'm deepthroating this, right down my throat. Cause when I gag, like that. I'm going to drool all over it. Perfect. A few more times. Now the dildo is practically dripping.
But now I've got dust clumps in my throat. It's like I dry-swallowed a pill. And my tongue is gritty. Like pussy, like mouth.
I jam the dildo in the bag and get a nice thick coat over it, which I jam right up my cunt. I'm back in business. But fuck does this hurt. I'll just do this quick to another orgasm. It's already mounting.
"Oh God." Fuck this is a powerful one. "Ohhh." My toes are curling. My pussy is begging. It's pleading... Show it no mercy. It hurts so bad. The pain... The pain makes it better. Hammer down on the cock. "Ahhh. Ahhh." This is lasting so long. I'm burning out... It's so intense. I can't... think.
It's ending. Oh God. I'm all jolty. Just collapse.
My pussy is an angry red. Oh God does it hurt. It keeps clenching and twitching because of how badly it burns. Can I touch it? Ow! No. There's no more pleasure to be had out of it. That orgasm was painful.
I lay panting long enough for the sweat on my body to get cold. I feel like a rung out towel. I really need to clean myself out before I get an infection, but God, I'm so worn out. This sick session is over.
I ram the dildo back into the bag, and stir it in in the pool of sand at the very bottom. That's where the glass will be.
I take it out. And I swear to God I nearly cum just looking at it. The entire gland of the dildo is glimmering like a mineral under its coat of dust. All those tiny shards of glass! Not to mention more sand, and more bread crumbs, and more pebbles, and more staples.
I've got to spread my lips open for this beauty. I'm not wasting any of that wonderful misery on my labia. It's all going inside me.
One last time! There's only one way to do this: as deep and as violently as possible. It will be the worst torture I can imagine, but I'm doing this right.
I slam myself down on the cock.
The pain! I can't help it. I'm crying. I'm sobbing. This is the most pain I've ever felt. Every single movement of this cock is torture, and I'm bouncing on it with every ounce of will I have. Every bit of my sex is screaming out. And I'm fucking cumming!
This orgasm is so fucking intense. I never thought pain could do this to me. "Please." I need it to stop so badly. Why can't I stop myself? Glass is grinding my flesh. The pebbles are scraping me. Staples are puncturing me. Dirt is rubbing me raw.
"Oh God." I'm cumming again, or harder. I don't even know anymore.
The mold... And the mites... And the ants... And the crumbs... And God, the burning itch.
I'm pissing! I can't control it. I'm broken. It's spraying everywhere. I'm pissing all over my hands. Shit. I can't even think about it.
I collapse onto my elbows. I finally stop moving. My cunt is squeezing the cock so hard I can hardly pull it out. I'm so electrified. I just breathe, and sob, and sip my piss off the floor. convulse. My climax still comes in aftershocks, but the biggest waves are done.
Holy fucking shit. This was like an awakening. An entire world has opened up to me. Ordinary pleasure is nothing anymore. Not when there's pain like this. I'm broken now. I'll feel like I'll forever be seeking this high.
But it's wearing off now.
Oh Lord. It's starting to sink in. What the hell did I just do? I hurt. Oh God I hurt so much.
I don't know how long I lie there crying. Minutes? Hours? I'm naked and lying on a tile floor. Getting up takes real effort. My crotch is on fire. I feel dead. My pussy is caked in crap and looks swollen. The lips are blood red. Wait... No, that is blood. I can't deal with that right now.
Cynthia is at class. I'm alone in the dorm and completely naked. And I've got my dildo on the floor pointed straight up at my dripping pussy. The cock is a mess from crap under Cynthia's bed. There's a ton of her hair, and it's got dust bunnies like a kindergartner made an art project out of cotton balls. And it's all going up my pussy right...
Now.
"Ahh, fuck!" That feels so nasty. Something is scraping. I bounce on the cock so hard my breasts are bouncing. All that dust and debris is in my most vulnerable spot. Fuck, I'm already cumming. "Shit. Shit." Stop squealing.
And I'm done. Ooh. I sit and pull the dildo out of myself. No hairs. No dust. It's all in my dustbin pussy now. Show's over.
Though I still have that vacuum bag...
No. This was enough. I've already got another several days of itching and panty liners ahead of me. I'll just... I'll just roll this dildo around under her bed again and that's it.
No. That's a terrible idea. It'll only make it worse. And I just came. I must be so sensitive.
But am I even able to press the dildo into my abused cunt? Fuck, I'm sensitive. My poor cunt is so abraded. I'm tensing up just trying to get it in. Every sensation in my pussy is saying no.
But I'm saying yes. I work it in, and out. Scratch. God, this is intense, and not in a good way. And my pussy is so completely dry. All that dust has sucked up my fluids. I might as well be pushing my dildo between a stack of rubber mats. The dirt inside me is really scraping now.
I'm just too dry. I've got to—
One last time!
I roll the dildo around in the pool of piss and I nearly vomit ramming the dildo down my throat. I didn't even check what crap was on it, but my throat feels sandy now. Then I stab it to the bottom of the bag.
Another staple. And a bit of glitter right on the head of the cock.
...Wait. That's not glitter.
That's a sliver of glass.
Oh God. Of course. That janitor vacuums the chemistry labs. People drop beakers and bottles all the time. They pick up all the big pieces of broken glass.
And then they vacuum up the rest.
Shit. I need to cum, but am I really going to put ground glass up inside me? I'll just—
I'm working late in the Union building on my comp sci assignment. A janitor has been vacuuming the entire floor for the last hour. But just now, he stopped, and now he's changing the bag on the vacuum cleaner. The old one is big and puffy, probably with crap from carpets all over campus.
He puts in a clean bag, and he drops the old one in the bin by the front exit. He'll probably change out the bins before the night is over, but for now he goes back to vacuuming.
Other students are here working, but no one is paying attention, and neither should I. Stop thinking about what I'm thinking and just focus on my work.
I pull off the dildo and force myself to come down. As much as I want it, I'm already extra sensitive from last time, and another would spell the end of my fun.
And I'm not done yet.
My dildo has a nice glisten. Back in the bag! I stir it around, and it comes out with another complete coat of dust and grime. There are coiled hairs on it. Some are really long. Must be a girl's. And are those glimmers I see glitter? Yes. Yes, it is.
I ram the whole thing into my hole. My pussy is getting really raw. Soon enough though, the dust has all rolled into clumps. A lot is lost inside me. One of those long hairs is plastered to my labia.
The dildo is sliding smoothly now. It's glistens. And I'm inches away from a mind-blowing orgasm.
Just on the brink. I stop again. I need to pause a while this time. I'm itching so badly, and it's keeping me right on the verge.
Meanwhile, the dildo goes back in the bag. This time I stir extra good. Let's see what else is in here.
Ooh. Those are bits of mulch. Somebody must have tracked it into a building after walking through the grounds. And what else is here? Curly hairs, sand, and a coat of puffy dust so thick it's like my dildo is a werewolf. And it's about to ravage me again.
I jam it back into myself. Oh fuck. It's really starting to hurt now. The hairs are getting tangle in my lips. They're choking. When I punch up against my cervix, I can feel the cock head grinding the dirt back their.
I'm already about to cum again. This is going to be spectacular.
but if I scoop the dildo along the bottom of the bag, I might get more than just dust.
but what if I take out mats of dust and cram them inside me.
but weren't there supposed to be bugs in this bag?
Observe.It did, didn't it? I was seriously about to pass out from how intense that was. It was amazing how much the pain added to the orgasm, but I have to stop now. This insanity has gone on enough. There'd only be pain if I went on.
Not yet!
I pull out and come back down from the edge. After a few shuddered sobs, I roll the dildo in my piss and I choke on the dildo some more. Is that blood I taste? Whatever. I stab it back to the bottom of the bag.
Tiny pebbles. I can just imagine it. These got stuck in the treads of someone's shoe, and then they'd track them onto the carpet in the student union. These jagged little rocks would have clattered up the vacuum hose. And now they're going into my tortured, trash-bin cunt.
I spread my labia to make sure make sure it doesn't brush the stones off, then right up to the base.
Ah shit! I just shrieked. That definitely scratched something. Fuuuck! I can feel them when I fuck myself. Individually. They're like pebbles you'd get stuck in your shoe. Only I can feel them scraping open my tender vaginal walls. And I'm hammering myself so hard.
This is awful! I need to stop! But I'm going to cum. A pure pain orgasm! Here I cum!
Chalk dust... Skin cells... Nail clippings... Coins, maybe, but those would never stick to the dildo.
Why I can't get this out of my mind. My pussy is actually tingling.
No, stop it. It's just itching.
...Itching so badly.
I work. I program. I puzzle solve.
I snap my laptop closed, put my stuff away, and head to the exit. There it is, sitting on top in the bid so innocently. It's puffed up. There's a hole framed with cardboard where it attaches to the vacuum, but it's sealed with a cardboard slide to keep the dust in. Convenient feature. It's even more convenient that the hole would be just wide enough to stick a dildo into...
No one is looking. I snatch it and leave the Union. Outside, I stash it in my backpack.
I'm probably just going to throw it out as soon as I come to my sense.
I close the cardboard slide on the vacuum bag, and I toss it and the dildo far under my bed. There's a pool of piss on the floor, which I mop up with my discarded blouse. Just toss that under the bed too. It splats. There are still droplets of piss on the floor which I mop up with my discarded panties. Just toss that under the bed too. There's dust on the floor from the bag which I scatter with a few swipes. Then I climb into my bed, curl up under the sheets, and take a nap in the middle of the day.
I just need to rest for a few minutes.
I pull it out and just recover for a second. I can't help it. I'm crying, but I need this orgasm to be just right. And it needs more! I piss on the dildo again. Way too much piss. I'm losing control. ram the dildo back down my throat. More gagging. More coughing, but it comes away with a nice string of drool.
Back in the bag, right to the bottom. What have I got?
Oh shit. There are two used staples on the head of my dildo. Don't think about it. I need to cum. I ram it back inside myself. Raw, scraping pain. And I batter myself as though I hate my pussy.
Something stabs deep inside me. Those staples weren't folded. Their teeth were pointed out as though they were never used. I might have just stapled my own cervix. Oh fuck. That thought is going to make me cum. How fucking depraved am I? Oh God, it's going to be so intense.
But what would be inside that bag?
Dust probably. And dirt. And everything students have tracked in with their shoes all over campus.
Stop it. Stop thinking about it. My pussy still itches from last time. I've got all kinds of funky discharge nowadays, so just work. Why isn't this function compiling?
Crumbs too. People eat meals in here. And hairs. And sand. Carpet fibers.
I do a quick google search on what's inside a vacuum bag. Ooh right. Living things too. Mold. Dust mites. Ants. Spiders. All sorts of things no one in their right mind would ever want near their big black dildo. So I'm just going to put it out of my mind and work.
I study the dildo. It's clean. My pussy is not. Even the slightest touch causes pain to shoot through me.
Could I even do it? Could I get off right now? As sensitive and raw as I am?
Sitting up is torture. Every move hurts my crotch. Every part of me wants to rest. I piss suck on the dildo and stick it back into the bag. It comes out clumped with dust bunnies. I line it up with my raw slit and push in.
"Ahh. God. Fuck." Every inch is fucking torture! Why am I doing this? I just have to be strong. Bit by bit, I force every last bit inside myself.
God, my eyes are watering. Now to start fucking myself. I ride this cock. The pain is horrendous. Just keep trying! I can do this. Oh fuck. It's all pain. But it's building. I'm actually going to get off on this. One final orgasm made nothing but pain. Ahhh. Here it comes!
No. Stop thinking about it. I've just had three incredibly powerful orgasms, and it'll already take me days to recover. Even if I could climax again, it'd be entirely through pain, and I'd have to endure miserable torture to get to it.
It's not worth it.
I don't even think I'll need lube. My dildo is literally dripping with my juices. All I do is sit up, rock forward onto my knees, and kneel back. Just put my weight on it.
"Oh Christ." It slips in so easily and slides right to the base. It's really tight. Now let's get to bouncing. Oh, it's like it's churning my insides.
I bury my nose in her panties and breath. Oh, that does it. I'm over the edge again. "Oh fuck. Fuck fuck." I rub the crotch against my clit while pulverizing my insides.
Hokay! Done. That was powerful. My dildo smells like ass now. But I detected a whiff of ass in her panties, so who cares? I squeeze the gusset around the base of the dildo and slide it up and down like I'm cleaning a sword. Oh right. And I wipe up my dribblings on the floor.
Her panties are definitely getting nasty. It smells like ass, but only when you sniff them. Time to bury them back in her hamper and hide the dildo.
Good thing Cynthia didn't walk in during any of that.
Fuck this cock feels amazing. Here I am, middle of the day, bouncing up and down on a big black cock fixed to the floor while moaning like a whore. I shouldn't be doing this now, but I needed my cunt rutted so badly my pussy juices are running down the dildo and pooling on the floor.
I'll need a pair of Cynthia's panties to clean this up. I snag her laundry hamper without missing a beat on this cock and drag it before me. Lord, her clothes smell so bad. She still hasn't done laundry. Her rugby jersey smells like she doesn't wear deoderant either. I hold it to my nose and breath in. Oh fuck I'm getting close.
There are some panties, at the bottom. Wait. These are the same ones from last time. I recognize the crust I put on top of hers. She never washes. I guess that means I should—
I'm not sure how that'll help, but I'll figure that out later. I lift off the dildo long enough to wrap the panties over top of it. The gusset is right on the head with the inside pointed out. Her crotch stains are the first thing to touch my cunt lips when I lower back down.
I clutch the waistband at the base of the cock and lower my weight. "Fuck. Oh fuck." The panties are soaking up all my juices.
But keep going. I need those crotch stains against my cervix. Just use my weight.
There. The panty's crotch is buried inside me. There's only the waste band crinkled up about the base of the dildo. I love it! Let's pinch that waistband against the base of the cock, because it's time to ride this thing!
Oh God this is so perverted. I'm battering my cervix with my roommate's old sweat and discharge. The cotton is abrading me. I need this. Just a little more. "Shit shit." I'm cumming. Fuck this is so wrong. So wonderfully wrong!
I collapse at the end. The dildo pops off it suction cup. Let's get these panties out of me. Wow. They soaked up a lot. I'm pretty sure all the mess is me now. Good thing it'll long dry by the time she launders them. Dry and crusty. And she's going to handle them. I wonder if she'll smell them. Why are these so stained, she'll ask.
I'll just have to imagine it.
"Wait! Stop that!" Olivia yells, the man doesn't listen. He pushes and heaves, and she's forced to brace herself against the headboard. In one moment of searing pain, his fist pushes into her anal hole.
Olivia looks back expecting to find her hole torn, but his fist fit snuggly inside her. It's incredibly erotic to see.
"More," she begs.
The man is half way to his elbow. The pain is sending her to new levels of ecstasy. She's so damn close to the edge now. She just needs a little more.
The man puts his other hand to her dripping sex and pushes. His fist slips in, and the pain is too much. But the pleasure... it's so powerful... and she's—
The fingers of his other hand sneak along his wrist. They squeeze past her anal ring.
"Wait. No," she says.
The man pushes harder. He's up to his knuckles. Her anus is at breaking point, yet he goes on. Pain erupts as her ring fissures.
"No! Ow. Stop. Please!"
He's shoving so hard she's having to brace against the headboard. With one violent punch, he forces his fist into her. Pain sears. Something tore, and blood drips.
Now with both hands inside her, he pistons them back and forth. Olivia weeps and begs, yet she can't deny how wonderfully full she feels. His fists fit now; no more stretch. And despite herself, she's on the verge. She's going to—
So the man...
...fists her to a powerful orgasm.
...starts forcing his other fist in her ass. It's tearing her apart.
His fist comes out. Her ass gapes and yearns. She wiggles it as though taunting him to fist her more, and she's delighted when four fingers slide inside her.
...and then eight. He's gripping her rim as though to pull it wide.
"...Wait."
He yanks, as though tearing canvas. Blistering pain erupts. Flesh tears. Olivia shrieks. She thrashes and kicks against what is now a violent rape, but he easily overpowers her and yanks more and more. Her perineum tears. Her asshole now extends down to her pussy. It's wide enough for a football, and blood pours.
Olivia bawls uncontrollably. Her hole will never ever recover from this. She can't even clench it. She'll be incontinent, and forever in pain. She's... ruined.
The man reaches his arms into her gaping cavern. At his elbow, he meets resistance, but he doesn't let that stop him. With punches and stabs, he burrows deeper. Olivia can feel her intestines ripping. She's resigned to this destruction now, and simply sobs.
But she also thinks about deep she's taking him. What insertions can her ruined hole take now? If she survives this rape, she's certainly plans to find out. Crying, she plays with her pussy. There's no pleasure, only blinding pain, but it's what anal whores like her need. Through all the torture, she somehow manages to—
The man forces his filthy cock deep inside her desperate sex in a single stroke. That's all she needs. Olivia is going over the edge. The man pollutes her pussy with his filthy cock, and almost, almost, and—
She's on her hands and knees upon her dorm bed. The man reaming her is a stranger she just met at class. The man fucking her is a bus driver who got angry at her for being naughty. This hurts, but it also feels good in just the right way. Olivia can feel his cock sliding in and out, and it rubs her insides in just the right way. She can feel thunder building inside her. She's getting so close to orgasm without a single finger upon her sex.
And then the man floods her bowels with his cum. It feels amazing, but she's still so close. That's when the man...
...replaces his cock with his hand and forces his fist in her ass.
At first she thinks he's cumming, but it keeps going. He's just buried in her ass, and warmth is filling her bowels.
"Hey!" she yells, but he's holding her tight. Her bowels cramp. Her tummy swells painfully. Then the man begins fucking her ass again. Only now she sloshes. And try as she might, every time he pulls out, a rush of urine sprays out. It courses down her thighs and wets her bed.
This hurts, but she's getting close. The bloating feels delicious, so is the warm flood over her crotch. Whenever the man pulls out, she's pushing. Urine floods. Soon her sheets are sodden. Her elbows are propped in two depressed pools.
She's moments away from climax when the man shoves her face into the wet sheets. Urine pools around her. She can't breath! And he's hammering her ass. Her belly sloshes, she swallowing mouthfuls, and now she's—
Olivia just got over the orgasmic feeling of his cum filling her when suddenly he's gone. Another stranger immediately takes his place. Behind him is another, and another behind him. A crowd is in her dorm, and every one is here to fuck her ass. They talk amongst each other as though waiting in line at the dining hall. None talk to her, because she's just a receptacle.
The thought drives her over the edge. Every man here is going to use her, and she's, she's—
Olivia keeps trying to put the clothes on herself, but the salesgirl insists. And every time the girls pulls another blouse over Olivia, she takes time to adjust how it sits around her breasts with plenty of fondling. Sometimes after she's stripped Olivia naked before the store, she takes a silent moment just to "inspect" Olivias assets.
Olivia demands to speak with the manager, but the girl simply says she is the manager. It's probably a lie, but Olivia is too shy to accuse her of it, so instead she has to take it.
That's when the girl really gets bold. After getting Olivia naked, she starts sucking her nipples. Her fingers snake through Olivia's bush and press into her slit. Olivia can only stand there and accept this. Her body starts respond.
"Stop this!" she yells.
"I'm the manager," the girl replies, as though that's answer enough. She nibbles and sucks Olivia's breasts and tweaks her nipples. Her fingers are workin wonders between Olivia's legs, and despite her indignation, pleasure wells up inside her. She's on the edge. Just a little more. Just like that, yes. And she's... she's...
She's in a clothing store trying to find a new outfit which better accentuates her assets. The changing room is a pedestal in the center of the store's floor where all the shoppers can see her. A saleswoman keeps bringing her new outfits, and she peels off her clothes and puts on another while her audience critiques her. Each outfit shows off her cleavage.
Olivia is growing increasingly uncomfortable, because...
...the saleswoman keeps fondling her every time she helps her change.
...the clothes the saleswoman brings make her look increasingly sluttier.
The bus driver won't listen to her and let her off. By the time the next stop comes, it's a trashed ghetto. She waits, but each stop only gets worse. And then the bus driver calls end of the line. She's the only one left, and she has to get off.
Wherever she is, it isn't actually a bus stop. She'll have to find her own way home through the dark streets. Scared, she navigates about and only gets lost, and then she runs into...
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
She immediately tries to back out, but it's too late. They've closed in around her. They surround her like a hoard and tear away her purse and clothes. They fight with each other over who gets to rape her first.
It ends up being a filthy old man with rotten teeth. Others hold her down while he takes his grubby trousers off. His unwashed cock smell awful, and he spears it into her. Grinding on top of her, he forces his tongue in her mouth.
Once he empties into her, the next man rapes her, and the next, and the next. Hours in, her holes flow with cum. She's sucked vagrant cocks clean of their filth and of her own juices. They take her three at a time sometimes.
During a lull, they guide her into a hovel made from an overturned dumpster, and they feed her some street gruel they cooked over a trashcan fire.
They tell her about how they want to keep her. They'll feed her and take care of her. All she has to do is let them fuck her in any way they desire. But if she wants, she can leave right now. But this is her only chance.
"I'll stay," she says.
And she realizes she means it. The thought of being their sex slave forever makes her pussy quiver. The men grin and close in on her. The rape resumes. It lasts for hours.
She's on her way to work. The bus pulls up. She climbs on. Door closes. Bus starts moving, and then she realizes something is wrong.
This bus...
...has a stripper pole in the middle. That's how she pays her fare.
She panics when the door closes before her. Her hungry crowd waits behind her.
Maybe this is for the best. She doesn't have clothes anymore, and she's making more money here anyway.
She dances. No fuck satisfies her, but God, she pregnant with money. She needs badly to shit it out, but she never stops. She's not allowed to. So she dances for the entire night. Her bowels pack tighter. Her belly bloats over hours. Or days? Will this ever end?
She bumps into him by accident. He glares down at her through dark sunglasses. His open palm across her face knocks her to the ground, and he's on her. He takes her purse, and then rains his fists upon her until she's bloodied.
"You work for me now, bitch. Is that clear?"
Terrified, she nods.
Olivia waits at a street corner dressed in pumps and slutwear. Customers pull up. A man in a business suit forcefully fucks her in his club car while slapping her around. A fat old man sodomizes her in a pickup truck. A pack of drunks rape her face in an alley until she nearly passes out. She returns her pimp's flat.
"A hundred dollars, sir."
"Fuck, bitch. That's it?" He slaps her hard. "You were out there for two whole hours. You holding out on me?" He feels her up to make sure she isn't. "Get the fuck back out there and don't come back until you have a thousand."
She does so. This time, she's out there servicing customer after customer all night. Every single one treats her like a worthless piece of trash.
She knows that as soon as she returns with the money, he'll just beat her around and send her out on the streets to make more. The thought makes her pussy wet with pleasure. Next customer.
All the other riders are sleazy men who eye her lasciviously. It's packed, except for the platform reserved for her. She has no choice. She has to pay her fare.
Olivia gets to dancing. She spins about the pole and grinds her crotch on it. She tosses off her clothes until she's naked. Men swipe every article away. With each of her spins and thrusts, men reach out to grope her. They squeeze her breasts and finger her pussy.
Then she spots a man waving a dollar bill next to his penis. She squats real low for him and braces against the stripper pole. He fucks her. In only a few thrusts, he floods her pussy with cum, and then he stuffs the dollar bill into her hole, plugging the cum inside her.
More men have more bills. For each, she dances low. They fuck her ass or pussy, and then chase it with money. Money and semen packs deep into her rectum. It starts filling her womb. She's swelling up.
Then her stop comes by. Here's her chance to get away...
...so, naked and bloated, she dashes from the bus and sneaks in the back at work.
She creeps in the kitchen while trying to cover her nudity. Cathy, one of the other waitresses, spots her.
"Will you help me?" Olivia asks.
They're in the bathroom now. Olivia sits on the toilet with legs spread wide while Cathy reaches into Olivia's pussy and pulls out wads of cum-soaked dollar bills. Her fist feels amazing, especially when Cathy reaches into her ass.
But wait. Cathy is putting the bills back inside her.
"What are you doing?" Olivia asks.
"Where else are you going to keep all this money?" Cathy rams a fist full of bills into Olivia's ass. She packs it in with punches. The entire column of bills in her bowels worms deeper in. Deeper and deeper it goes. Cathy works her fist up to the elbow. Olivia can feel the whole mass inside her shifting about, filling her tighters. It feels incredible. She's going to—
She's in an elaborate boutique store and standing before a glass counter with endless shades of lipsticks to pick from. Olivia is quickly overwhelmed, but there's a cute woman there who keeps picking out shade after shade for Olivia to try out. Olivia wants wants her to stop, because...
...for each shade, the woman keeps insisting Olivia suck a man off to really test the lipstick.
One bright red lipstick makes Olivia look slutty. She hates it, but the saleswoman keeps complimenting her on the shade. She brings out eye liner, and fake eye lashes, and foundation, and low-cut tanktops, and short skirts. Olivia is too shy to tell her to stop. By the time, she finally gets to look at herself in the mirror, she looks like a total bimbo, almost a barbie doll.
For one tank top, the saleswoman insists it must be worn without a bra, but it's so low cut, Olivia's areola are visible, and it covers so little of her belly that the underside of her breasts are exposed. The saleswoman pairs this with fishnet leggings and a miniskirt so short it leaves her panties exposed even when she stands straight. When the girl turns Olivia to look in the mirror, she looks like a hooker. Olivia wants to complain, but the salesgirl is already ringing her up.
She's walking around campus, and nobody recognizes her. Men eye her as they pass. Women scowl at her beauty. Olivia is starting to like this look.
She's in line at coffee, when two men behind her flirt with her. She tries to play the part and act ditzy and air-headed. Then one whispers in her ear that he'd like to fuck her like the piece of trash she is. She giggles and agrees, because that's what an bimbo would do, right?
She's in the coffeeshop bathroom. One man sits on the toilet and is yanking her down on his cock. She's bent over so she can suck off the other man before her.
"What an easy slut," they say to each other.
"We should invite her to the party tonight."
"Hell no. I wouldn't want the other guys to see me with such a bimbo trash whore."
"Heh. Good point. This whore probably fucks men in bathrooms every day."
Olivia can't speak for herself, but between their words and their cocks in her holes, she's rising to new levels of tingling pleasure. She's right on the edge, and when they start pumping her full of semen, she—
One shade is a ruby red. The saleswoman flags a passing middle-aged man down and asks him to let Olivia suck him off. Olivia is too shy to decline, so when the man unfastens his trousers, she sinks to her knees. Olivia sucks him off with all her best skill while he chats with the saleswoman. By the time he's flooding her mouth with cum, his cock and balls are mapped with ruby red lip prints. The man thanks the salesgirl and leaves.
Next, the girl brings Olivia a dark maroon. While Olivia paints her lips in a mirror, she flags down a man with his wife. They chat amongst themselves while Olivia slathers his cock with maroon marks and saliva. Next, she's blowing an old man, leaving purple over his shaft, then pink on a passing janitor, magenta on a pair of teen boys, cherry on a Christmas-shopping father. Olivia never has a chance to tell the salesgirl to stop, because she's always either applying the next shade or fellating another man.
But she's not sure she wants to stop. Each man she sucks off gives her a tingle between her legs, as though a part of their pleasure is hers. She's soon diddling herself as she blows men. She builds ever so slowly over the course of hours, until finally, as one potbellied man fires cum down her throat, she's starts... she's...
Olivia's hands are tied to either end of the bed. Mike powers into her relentlessly, and her climax is building fast. She glances over to see a window suspended near the bed, and through it, Clare is back in the dorm watching them. The window is the computer screen through which the porn is playing.
The look of hurt in Clare's eyes is plain.
Mike slaps her hard on the face. "Don't fucking look at her."
Olivia locks eyes with Mike. Her face stings, and she can feel Clare's gaze.
"Tell her how much you want it," Mike says.
"I want it so badly," Olivia says, and she realizes she means it. Her orgasm is fast approaching. "Fuck me. Please. Use me. Oh, Clare. You never told me what a good fuck he is."
Mike slaps her again. "Who owns you bitch."
"You do. Oh, God..." Any second now. "You own me. I'm your fuck toy. Fuck me... Hurt me... Do whatever... oh... oh, oh—"
The woman is on her knees before a naked man. She has his rigid cock in her hands, which she licks and sucks as though it were a delicacy. She occasionally takes it in her mouth until her nose is buried in the man's bush. Her neck swells as the cock plunges down her asophigus. When she pulls out, lines of saliva connect her lips to the member, and she smiles lovingly up at him.
Clare is captivated by what she sees. Pulling her eyes away, she looks deeply at Olivia. "I'm really enjoying this movie." Her hand rests on Olivia's belly.
Olivia frowns at the screen. "I don't normally watch this stuff with other people. A little weird, isn't it?"
"I don't think so. I do that kind of stuff myself all the time."
"With who? Kyle?"
"Yes. With Kyle."
"Then maybe you should be watching this with him."
"Maybe I should be doing this with him," Clare says. She motions across the dorm room to where Kyle has been sitting on the other bed.
Kyle gets up and walks over. Already naked, his cock stands at attention. Clare crawls over Olivia on all fours, putting herself at eye level with his member. She works it with one hand, then sinks her mouth upon it.
Olivia is trying to ignore them. She cranes to look around Clare's body at the laptop movie. The woman in the film is still fellating a man, except that now the man is Kyle. And the woman is now Olivia, and she adores the cock she's worshipping.
Olivia reacts. It causes her to wake. The dream crumbles.
Olivia is reclined on the bed, and Clare has her legs draped over Olivia's lap as usual. They're watching a BDSM porn on Clare's laptop. A man is fucking a woman tied to a bed. He slaps her tits and face while hammering into her relentlessly.
Olivia is uncomfortable right now, because...
...the woman in the video is actually Olivia, and the man is Mike, Clare's boyfriend.
With her legs draped over Olivia as they are, Olivia has a prime view of Clare's pussy. The panties are pulled aside, and Clare works three fingers into herself.
"Could you not do that?" Olivia asks.
Clare doesn't stop. "Watching a porn was your idea. This is what you're supposed to do."
"I guess you're right." Olivia returns to watching. She's embarrassed for chastising her friend like that. She's being such a prude right now.
Clare spreads her legs invitingly. She wants Olivia to go down on her. After her gaff, it's the least Olivia can do. Clare is damp, and her taste is powerful.
They're in a sixty-nine. Olivia is on the bottom, and Clare grinds her pussy over Olivia's face. Olivia has no idea what to do, but Clare does. Her tongue is working miracles on Olivia's clit. Even as she suffocates under Clare's snatch, she's building close. A little more. That's it, and she's—
She's tied spread eagle to a bed in a dilapidated cabin. The brute rapes her, and she cries and struggles. When he cums, he floods her womb with seed. Then he leaves. Her belly swells over an hour until she looks nine months pregnant.
Contractions strike. Reflex causes her to push, and she goes through agonizing effort to deliver a baby boy. Its lopsided face horrifies her, but when it crawls up her belly to nurse, she coos to it.
The brute returns and rapes her before her vagina has even returned to normal. Though she weeps, she focuses on her nursing child. Another hour later, she pushes out an infant with grossly deformed arms. It crawls up and nurses. Their mouths upon her nipples stir her loin.
When the beast rapes her again, she finds herself savoring the moment he floods her womb. Though birth is agonizing, she looks upon her malformed child with love.
The monster frees her arms. While it rapes her, she cradles her children. When it leaves, she could undo her leg bindings and escape, but instead, she helps her children nurse. Some are growing older. Once they're strapping young mutants, will they rape her like their father? She hopes so.
The monster returns to rape her again. She spreads her legs wide while tending to her beloved children.
She's running through the woods at night. Bramble scratches at her calfs. It tears her clothes away. She keeps falling over, and her hunter is closing in. She tumbles down a small hill and gets tangled in a bush. Before she can get free, her hunter catches her.
It's a deformed hill person. His grotesque lumpy face leers at her. She screams, but it only delights this beast. Now that he has her, he...
The monstrous man rapes what clothes remain on her. His overalls come down, and his cock is just as monstrous as he is.
He's far to strong to resist, and soon he's smothering her with his body, his cock feels like it's splitting her apart. Every time she fights, he beats down upon her with his club-like fists. Her face bloodies. Her tits bruise. And every time his fists come down, her loin burns a little hotter. An orgasm is fast approaching.
It's disgusting how her body betrays her, but now she needs this. Just a little more, so she struggles. Just as she'd hope, his fists rain down upon her face. Her nose crunches. Teeth come loose, and it sets her off. She's... she's—
She's in a cellar now of a dilapidated cabin. She's no clothes except an iron collar fixed about her neck.
The door opens, and the brute comes down the stairs carrying a tray of slop. She knows the routine; she's been here for years. She lies down on a disgusting straw mat and waits. The brute sets the food aside for her to eat later, but she must first earn it. He climbs onto the bed while unfastening his overalls.
Despite her disgust, Olivia is dripping wet. And when he forces himself into her, she cradles him close and moans. He likes it when she moans. She kisses him, and licks his rotten teeth.
...And her climax builds. After years of faking it, she lusts for these moments. The pleasure inside her mounts higher. She's on the verge, and when he bites down upon her breasts, she... she...
She pulls her skirt and panties down and sits on the disgusting toilet. The seat is wet. She shudders, but what's done is done. She begins to pee.
And pee. And pee. It seems like she's been here for minutes, and she's still so full. And she can't stop now. It takes her so long that...
...there's a line outside of people who want the bathroom, and they're done waiting
He pushes out a long solid log which coils in the water. The stench fills the air.
After he's done, he turns so she can lick clean the crack of his ass. The taste is awful. And his ass sweat gets on her face. She wishes that she was allowed to play with herself, but it's against the rules.
A drunk arrives next. He makes Olivia suck him off while he takes a wet shit in the toilet. The taste of his asshole is revolting. She gags repeatedly. And his load leaves smears in the toilet. She has to lift the seat and dive her face in to lick them away. Her hair soaks in the water.
She finishes just as a rotund woman arrives, who makes Olivia tongue her gash while she fills the toilet with a copious load that clogs the toilet. After Olivia licks her fat ass clean, she has to get the load to flush. She ends up pushing shit down with her hand while flushing.
She's licking her fingers clean when another man shows up. Finally, someone fucks her. While Olivia licks the fat woman's shit smears out of the bowl, this man sodomizes her ass. It pushes her face into the water. She can't breath, but God it feels good. Then he starts filling her bowels with his seed. It sets her off.
Seat goes up. The guy pisses in the toilet. It sprinkles her chest and neck.
Once he finishes, he points his dick at her, and she sucks the last remnant of pee. But when he doesn't pull away, she knows to suck him off to completion.
After he leaves, she licks the toilet rim clean of splattered pee and stray pubic hairs. She'd love to be touching herself right now, but that's against the rules.
She serves two more men the same way. Then a woman arrives who makes Olivia tongue her gash while she sits and pees. Olivia inadvertently swallows a few mouthfuls. Another man sits on the toilet and has her sit on his dick. He pees inside her. It spills down his balls and into the bowl. She has to lick the urine off him afterward.
God how she wishes she could play with herself. Finally, someone fucks her. It's a drunk who pounds her from behind while she licks up his piss from the toilet rim.
The man starts filling her with his cum.
She takes off all of her clothes until she's naked, and then she rifles through her backpack to find her work clothes.
Her heart drops. They aren't there. She turns back to the clothes she just discarded, but...
...they're not there anymore. Jeff will have to rescue her.
...she laid them down in a puddle of urine. Too bad they'll have to do.
It's the bathroom at Micky's Pub. As usual, it's disgusting. The reason Olivia is here is because...
Her shift starts right now, but she can't do her job naked. She makes a dash for Jeff's office. He's at his desk. Every security feed behind him shows different angles of Olivia. They're recording.
"I've lost my clothes," she says.
"Cathy is finishing her shift," he says. "She won't need hers anymore." Cathy arrives. Both eye Olivia while he explains the situation.
"Sure, honey." Cathy strips naked.
"But first," Jeff fetches a camera and sets up a tripod.
Cathy starts kissing Olivia. Her fingers explore her pussy.
Jeff offers a directing cue. "Squeeze her tits."
Olivia obliges. It's only fair since they're both doing her a favor.
The two girls make a lesbian porn which ends with Olivia is lying on Jeff's desk. Cathy squatted over her face. so she can tongue Cathy's pussy. Jeff holds Olivia's legs and fucks her dispassionately.
"You two are going to be stars," he says. "We're doing this every night now."
Olivia doesn't care anymore. Performing with Cathy has brough her so close to climaxing, and now with Jeff fucking her, she's just on the edge. He starts to cum inside her, and that's when she—
Wetness against her butt alerts her first. Water streams over the sides and puddles on the floor.
"No, no, no, no!" she says. It soaks her backpack. Her legs and pussy are drenched.
She presses the toilet flush button. After a rumble, a geyser of disgusting, fetid sewer water shoots out of the toilets and sprays directly on her privates like a hose. And just like that, she's suddenly—
Her job is to serve however she can.
One man enters. She's kneeling by the toilet, and she's dressed in her Micky's Pub uniform, except she's naked from the waist up. The man hardly notices her as he walks up to the toilet and...
They're utterly soaked and smell terrible, but her shift is starting, and she can't be naked.
Olivia waits tables. Her jeans are soaked and clammy. Her blouse is transparent. Everyone is disgusted with her. At every table she's having to apologize.
"Accident in the bathroom?" one lady asks.
"Looks like the toilet's come to us," says another. Everyone jeers.
She tries to ignore it all. But while she's taking the order for a family, a man excuses himself from his table, comes over, and starts pissing on Olivia's leg. She's already messy, and the customer is always right. She doesn't react.
But others come. One man aims high and splatters her soaked chest. Another pulls open the front of her jeans and pisses down her crotch. A woman gets her to lie down so she can piss on her face. After that, she's not allowed up. Every customer comes by and pisses on Olivia. She's humiliated beyond imagination, but she's also turned on. She finds herself squeezing her own soaked breasts, and sneaking a hand down her jeans. While five men and women are pissing on her, she's brings herself to the most powerful—
The creamy shake splashes directly into her cleavage. Olivia screams and hops back. Her entire front is plastered. Lumpy bits of icecream mixture ooze down between her breasts, soaking her shirt.
The toddler's mother admonishes her child. "Behave yourself."
"It's all right," Olivia says. She returns to the kitchen as she tents her shirt off her chest. The milkshake is freezing cold. It's pooled where her shirt is tucked into her skirt. She's wiping as much off as she can when Jeff, the manager spots her.
"I'm not paying you to groom yourself," he snaps. "Get back out there."
"Yes, sir." She hurries out, her front still a mess. A man dining with his six year old son have finished their course. She hurries over to clear their table. The man leans back to let her collect his dishes, but as she's bent over, the son pulls open the back waist of her skirt and panties and dumps the remains of his spaghetti inside her panties.
Squealing, Olivia recoils. The hot marinara sauce is sandwiched against her bottom, oily and warm. Spaghetti is mashed into the crevice of her ass. More still is squirming out the gusset of her panties and splatting onto the floor.
Hurrying to the kitchen, she pulls handfuls of greasy spaghetti and dumps them on the counter.
Jeff is on her immediately. "What the hell do you think you're doing?"
"I just... I'm–"
"Don't go dropping your mess around my restaurant. You can get rid of it after work. Now put it back."
"I... yes, sir." Olivia pulls open the back of her panties and deposits the handful back in against her ass. The handfuls on the table go in, but more starts dropping from her gusset. She's forced to put a few handfuls down the front of her panties. Marinara sauce clumps into her pubic hair.
She walks back into the dining area, her front plastered with milkshake. Her panties full of warm, slippery spaghetti. Walking causes the noodles to wriggle against her clit. She delivers entries to a table. After serving them out, she notices a few appetizers left.
"Are you finished with those?" She gestures to a woman's spinach and artichoke dip.
"I am, thank you. Here you go." The woman takes the dish, pulls open Olivia's shirt, and dumps the contents inside. Olivia stares, eyes wide.
"Oh, and these." The woman pulls open a cup of Olivia's bra and upends a half-eaten tray of potstickers covered in viscous sauce. BBQ wings go in the other cup, a stacked plate of loaded nachos goes down the shirt, and refried beans go down her panties.
The woman thanks her, and Olivia departs. Food dribbles down her thighs, which she hastily stashes in her panties. The warm food mashed against her sex, stimulating her with each step. She squirms from the stimulation.
Another table to clear. All four customers there simply hand her plate after plate of food for her to stash within her clothes. It doesn't all fit. Soon, she's wolfing down potato skins, mozzarella sticks, and quesadillas. She's full all too quickly, yet more food comes. Her bra is packed. Her shirt is seeping. And with each step, beans and pasta drop from her panties. There's no more room.
One customer hands her a plate of meatballs. She's baffled as to where to stash it.
"You have other holes you could fill," he says.
"Excuse me?"
He points to her messy crotch. "Plenty of room in there."
Olivia looks at the meatballs, and then down at herself.
And then she wakes up.
She's carrying heavy stacks of food to table after table. The customers are indifferent as always. She delivers countless stacks of food to one rather large table crowded with people. After placing the final dish, she asks everyone if there's anything else she can do for them, when...
...the customers start ordering more, starting with her clothes.
...the toddler at the table throws his milkshake directly at her cleavage.
"I'd like to try your shirt," says one man.
"Excuse me?" she asks.
"An order of your shirt, please. For the table."
"Eh... of course." Olivia unbuttons her Micky's shirt and hands it to him. She's not wearing her other shirt underneath like usual, and now stands before the dinner party with her bra exposed.
A woman pipes up. "Ooh. That bra looks nice. I'd like to try that."
"Yes... Sure thing." Olivia unclasps her bra and passes it to the woman. She's topless now, and hugs her notepad to her chest to hide herself.
"I'd like something else too," an elder man asks. "What do you recommend?"
"We have great jalapeño poppers–"
He scrunches his nose. "No. I'll just have your skirt."
Hesitantly, she shimmies out of her Micky's skirt and hands it over. She's only her panties and her shoes now.
And the final member of the table speaks, and old woman. "Well if we're all getting sides, I might as well too." She motions to Olivia's panties.
Olivia's hands tremble as she tugs her panties off, revealing her bush and the lips of her pussy. Handing them over, she stands completely naked before the party. "Anything else?"
The first man slaps the table. "You know what? It's Friday. Why not? I'll have a blowjob."
"We don't serve those here..."
"Of course you do." He points to the menu. The words are written clearly in fancy font:
Ask your waiter about our world-famous blowjobs!
"Oh. Right." Olivia gets on her knees before him. He scoots out so she can reach his zipper. His cock springs out, ridged and thick. She licks and sucks its length, taking it deep into her mouth. The customers start on their dinner and talk as though she wasn't there.
Olivia's apprehension fades and soon she's attacking the man's cock with more ferver, taking it deep into her mouth.
The man gets her attention. "You'll get a better tip if you play with yourself too."
She smiles kindly at him and resumes sucking him off. One hand now plays with her dripping sex. The man fires cum into her mouth, causing her own pleasure to jolt. She's on the verge.
And that's when she wakes.
I snap awake. My alarm is blaring. My God, that dream was fucked up. And I don't think I've ever had a dream last that long before. It lasted hours. I feel like I remember every single minute of it.
If my alarm didn't wake me, would I have ever woken up?
Of course I would. What a stupid thought. But seriously, these super-erotic dreams are starting to worry me. Why am I having them? Why are they so vivid?
She's right though. That dream did last hours. In fact, it lasted even longer than she was asleep. You're not sure how yet, but You were able to hold her in the dream.
It seems You're getting stronger.
Gyah! My alarm. I turn it off.
Holy shit. How long was I asleep? That dream lasted forever. I think I dreamed for longer than I was asleep. How is that even possible? And it was so fucked up.
Whatever. I've got to get moving. I'll Google this later.
I'm cumming! Oh, God.
I try to keep quiet. I think Cynthia is sleeping. So I make do with clenching my sheets and squirming. It last a surprisingly long time. My toes are curling!
Oh Jesus Christ that was powerful. I haven't had an erotic dream since I was a little girl, and I don't think I've ever had one set me over the edge like that. And what the hell was that dream about?!
Six forty-seven. I need to get up in a few minutes. Might as well do so now.
That was most interesting. Her mind just entered a world built of her memories. It was one without form or rule, just like the world where You were before coming to this one. In there, You were master, it seems.
Dreams. That's her word for it. Though it was ephemeral. It seemed to have no bearing on this world of law. Still, it was a fun little playground.
She's waking now. Her mind is sharpening, and the playground is no more.
I'm cumming!
Fuck. Again. Another wet dream. What the hell is up with these?
Whatever. I've still got a few hours to sleep. I roll over and snuggle in. Next thing I know, my alarm is waking me. It's time to get up.
Another sexual dream. Disturbing, like before, and vivid, but still. I listen carefully. Carly is sleeping soundly. I slip my hand into my panties. Dripping wet. I know I shouldn't dwell on such a strange dream, but I close my eyes and allow my fingers to bring me to quick release. Then back to sleep.
I've brushed my teeth. I've checked my phone to make sure my alarm is set. It's time to go to sleep. I stealth around the room so as not to wake Cynthia, and soon snuggle into bed.
Dreams form. She's in your world now.
Olivia is...
...getting sodomized by a stranger.
...is at a store trying on lipstick.
...watching a movie with Clare in her bedroom.
"With lube," I add quickly.
He grins. "I was hoping you'd say that." He's eager about fetching his grody little bottle of lube.
"Let's try it," he says. He's has a bottle of lube in his desk drawer, and he delicately applies it to my butt with one finger. He makes sure his finger slips in easily. "Ready?" he asks.
He grins. "Yeah, Girl. I got lube." And he does. It's in his bed side drawer. He lathers up his condom. "Get ready. I'm going to wreck that ass."
I pull my knees to my chest. And he's back on top of me and pressing his cock against my little hole. Oh, that feels wonderful. I think I'll play with my clit while he sodomizes me.
He feels so big inside of me. Don't go easy. I'm groaning. I didn't even realize it. His whole frat must know about this booty call. They probably do. Will he tell them all about how he fucked me in the ass?
Why do I kind of hope he does?
He's cumming inside my bowels. Too bad there's a condom in the way. Ohh, it feels wonderful anyway. I can feel his cock spasming.
Ohh. This booty call was definitely worth it.
"Woah, girl," he looks surprised, but I felt his dick lurch inside me.
"Please?" I don't know why I want this so badly, but I do. I've seen it many times on porn. It just looks so raunch.
He pulls out. "I won't go easy on you."
"I don't want you to." I lie down across the bed with my head hanging off the side.
He rips his condom off and feeds his cock into my mouth. I can taste the powder on his cock from the condom. He presses in and immediately buries himself down my throat.
And then, he hammers my mouth. Oh fuck this is brutal. I'm gagging constantly. I can't breath. Every time he's pulls out, I try to, but he's back down.
Oh, he's gripping my throat. I'm getting dizzy. Shit, I'm working my clit so hard.
This is hurting my neck. It hurts so much. There's so much drool. My stomach keeps trying to retch, and it's taking everything I can not to. This is so fucking hot.
Finally, he's cumming. He buries himself in my throat and just holds. His cock is pulsing. Shit, here I come. I'm cumming. He's shooting his cum straight into my stomach. I... I...
I wake. He's patting my cheek. I passed out. Or did I. The orgasm was so powerful, don't remember.
"You okay?" he asks.
My makeup is running. I know drool is covering my face. I must look like hideous mess.
I give him a smile.
I... what?
"But only if you have lubricant," I add, quickly. What the hell was I thinking saying that? Fuck my ass?
Billy grins. "I do." Now he's rifling through the bedside drawer. Oh God he's excited. I don't think I can say no now, not after what I said. Fuck my ass? Why the hell did I say it like that?
He's squeezing lube onto the condom from a bottle that's mostly empty, and it looks dirty. Oh God this is so wrong.
"Have you ever done this before?" I ask.
"Yeah. Wanna roll over?"
I get on my belly, but then he grabs my hips and pulls me up so my bum is sticking in the air. I'm about to have anal sex. Does it always feel this degrading?
Oh fuck. He's pushing his dick into my ass. It hurts. Relax. Don't squeeze. It's going in! He's hilted. His hips are on my ass. His pot belly is on my back.
And now we're fucking. He's sodomizing me. "Oh fuck. Oh fuck." I yell.
Actually, this is kind of nice. He's been going a while. It's starting to feel really good. "I think I'm actually going to... oh yeah." Oh! He's filling me. He's filling my bowels. This is so raunchy. I just need to touch my clit. Just like that. "Oh fuck don't stop." And I'm screaming. "I'm cumming. I'm cumming." I'm making so much noise.
Oh God that was good, and he's out.
I just lost my anal virginity. It was incredible!
"No lube," Jordan says, "but I've done it with spit before."
No! I shake my head, probably more violently than necessary.
He chuckles. "Next time then." And he keeps right on having sex with me.
David smiles. He kisses me sweetly. "How about another time?"
"Okay." Oh Christ am I relieved. Sex is good. This sex is actually really good.
Now that I'm getting into it, I'm actually starting to enjoy myself. He's picking up the pace now. Is he already getting close? Yes, I can tell he is. That's fine. Ohh, he's tensing. Cum inside me. Fill me up. Ohh, he's shuddering. That's so cute.
Now that we're done, it's really starting to sink in. My three year dry spell is over. Because I just fucked a guy I met an hour ago. I have no idea how I feel about this.
David hugs me close and rolls. Just like that, I'm on top.
Yes, I like this. Ooh, let's sit up. Yeah. Cowgirl. I'm in charge now. I picked which man I wanted to fuck, and now I fuck him however I like. Sorry if you wanted him, Cynthia, but he's mine now.
His hands are roaming my body. I'll allow that.
"I'm getting close," he whispers.
I won't allow that. "I'm not," I say. And I lift off his cock and sidle up the bed, and I lower myself right onto his mouth. Ohh fuck yes. This man knows how to use his tongue.
This is the new me now. Sex after three years, and I'm rocking it.
Ohh, I clutch his hair for support. He's really good with his tongue. I'm getting close now. Time to move back down. Fast pace this time. I'm practically bouncing on his cock. Ooh, and he's bucking his hips to meet me now. He's really slamming into me.
And I'm cumming. And so is he. I can feel the rubber swelling. "Fuuuck," I scream. "Oh fuck. Yes." So much noise. I don't care who hears me.
I could go to sleep after that, so I lie down on him. "I've decided to keep you," I whisper.
"Okay." He stops and rolls over. I guess I'll climb on top then. It takes some work to get back on his dick. I'm not sure why I though this was a good idea. I'm doing all the work now, and he's just lying there.
Cowgirl kind of works, but he keeps slipping out. I'll lying down up and do cowgirl. Now I bounce.
This is working. For him anyway. I'm starting to get into this, but this is a lot of work. Ooh, he's bucking a bit now.
Oh! Ooh, because he's already climaxing. I can feel it.
Good for him.
Soon as we're done, I flop off to the side. It's really starting to sink in. My three year dry spell is over. I just rode a guy I met an hour ago. I have no idea how I feel about this.
How drunk am I?!
Oh shit. Why did I say that to somebody so huge and muscular? He's doing it! He's hammering into me now. Oh, this hurts, but... ohh.
He just pulled out. Why?
Oh! That's why! He just spun me around like a rag doll. And he's back in me. Doggy style I guess. It's like he's trying to punish my pussy. Fuck! He just slapped my ass. That really hurt!
"Is this what you want?" he yells. "You like that?"
I groan. And he's slapping my ass again. Ah, it stings! I can't believe I'm fucking enjoying this. I'm actually scared, and I'm so close to climaxing.
He's cumming. He's yanking my hair. Oh fuck. So am I. Shit, I'm wailing. I'm making a lot of noise. This hurts so good. I'm quaking. Yank my hair. Yank it! Hurt me, please.
Ohh. And I'm coming down. Holy shit am I going to be sore tomorrow. My poor, poor tenderized pussy. And my ass...
Worth it.
Oh thank God. It looks like he's not actually interested. He's still all tender and sweet. I'll hold him close to myself so he knows that's perfectly okay with me.
Now that I'm getting into it, I'm actually starting to enjoy myself. He's picking up the pace now. Is he already getting close? Yes, I can tell he is. That's fine. Ohh, he's tensing. Cum inside me. Fill me up. Ohh, he's shuddering.
That's so cute.
Now that we're done, it's really starting to sink in. My three year dry spell is over. Because I just fucked a guy I met an hour ago. I have no idea how I feel about this.
"I had a great time last time," he says.
"Yeah, so did I," I reply.
"I've been thinking about it ever since. Can't get it out of my mind."
"I was wondering if you were ever going to call..." I smile as demurely as I can.
And like that, we're kissing. I guess I am going to sleep with him. It's not like I'm not going to enjoy myself too. If I'm going to be his girl on the side, then he can be my guy on the side.
We're on the bed now. Clothes come off. I'm about to have sex again. This'll be the third time in my life. And I'm acting like it's no big deal. Why should it be?
And he's putting on a condom.
Who am I kidding? I'm jittery as fuck right now. And he's climbing on top of me. Just relax, oh fuck. And we're doing it. We're fucking. I hold him close. I'm being awfully quiet. I should at least be moaning. Should I talk dirty. What would I say?
I just said that out loud! Oh God, he's into it. He's looking around for one. I think I just committed myself to having sex! I don't know if I'm ready.
He found one. Oh God oh God. It's quiet in here. Is this his room? That bed sure is messy. I think someone else had sex here earlier.
We're kissing again. He just peeled my tank top off in a single motion He's unbuttoning my blouse. Oh, he was fast getting my bra off. How many women has he slept with? Should I tell him this is only my second time?
He's taking his pants off. Oh my God, that's his cock.
"Do you have protection?" Will my voice please stop trembling?
Oh fuck. He does. This is actually happening. He's got me on the bed. He's pulling off my skirt. He's working my jeans off. I'm naked. Did he lock the door?
He's stripping now. Oh my God. He must work out three times a day. He huge.Oh God. He's got a pot belly, and he's so hairy. Oh God, he's fucking hot. That's a Hugh Jackman body, and he wants to have sex with me.
The condom is going on. It's happening. This is happening. He's crawling over me. He's kissing me all over. Oh, that feels nice. Try to relax. Try to enjoy it. Oh God! He's in. He's fucking me. His body is on top of mine. I shouldn't just lie here. I should hug him. Maybe I should say something.
Here I am at the frat again, answering to JordanBillyDavid's booty call. The very moment we're alone in his room, he's all over me.
Whatever, it's not like I don't want this too, though sometimes wish there could be more to this relationship.
We've got our clothes off now. He's putting the condom on. And when he climbs on the bed, I spread my legs for him. Christ, have I changed.
He's in me and fucking away. But why's he so quiet? It's like this is a chore for him. Maybe I should say something.
JordanBillyDavid just texted me. I was wondering if he was ever going to contact me again, or if I was just another floozy to him.
Hmm. Maybe I still am. He wants me to hang out with him. Tonight. Like, right now. At his frat. This is a booty call, isn't it? He's not even going to buy me dinner first. He just wants me to come when he calls so he can fuck me.
The sex was fun, but this guy clearly just wants a side thing.
And I'm fine with that.
I have to hold his cock while I sink down to make sure it goes in my ass. This is not nearly as easy without lube, but his dick is wet with saliva. Just go slow. I'm setting the pace here. Relax, relax. And I'm bottomed out.
Lube is for amateurs anyway. Let's ride.
Slow strokes though. Work up to a pace, because it kind of feels like this friction is tearing. But behind that is that wonderful fullness. I'm loving this. That's right, little guy. We're fucking now. Paw my breasts. Run your hands along me. Enjoy what JordanBillyDavid is taking for granted.
Ooh. Cumming. I can feel it deep in my bowels. I love how there's no rubber between me and that hot sticky cum.
I'm off now. He's sitting there with a dick smelling like ass. I think I'll—
And I sink down on his cock. There's no protection at all between us. What the fuck am I thinking? I'm not on birth control. Yet I keep riding him.
Fuck. I'll figure this out later. I'm giving Dan here the ride of his life. I bet he never saw me coming.
This feels so much better without the rubber. It feels right. Maybe I should get on birth control, because this is definitely the way to go.
He's filling me now. His semen is flooding my womb. I might be getting knocked up with some stranger's baby. I'll need to get a day after pill tomorrow. But fuuck, right now, this feels so good.
I sidle back down his body and take his cock into my mouth.
Oh God. Why did I think this was a good idea?
Because it's fucking hot. That's why? I'm tongue cleaning his cock after it's just been in my ass. It tastes awful, but I savor it (at least I act like I do). He's actually getting hard again by the time he's clean. But no more.
Yesss. That's what I'll do. I'll turn him into a cuck for all his frat brothers to laugh at behind his back.
I dress and kiss him goodbye. Downstairs, a bunch of guys are working on a class project. One guy is in the other room playing a video game. He'll do.
I sit next to him. "Hi. I'm Olivia."
"Oh hi. I'm Dan." He surprised, but he keeps playing. We talk a bit. He plays, but he at least has the decency to pause once he realizes I'm flirting with him.
"DIdn't you come here looking for JordanBillyDavid?" he asks.
"I did, but he's busy. He doesn't have time for me."
He grins. "Yeah. He's a real douche sometimes. If I were him, I'd make time for you."
"You want to make time for me right now?" I rest a hand on his thigh.
Within a minute, we're in his room and I'm sucking him hard. I can't believe how easy that was. Once he's good and ready, I climb up shimmy out of my panties and straddle his lap so my snatch is hovering over his tool.
And then I have a moment of clarity. I'm about to fuck a guy I just met again. Should I really be doing this?
I should at least have an ounce of common sense. "Gotta condom?"
"No. I don't. You're not on birth control?"
Once I get back to my dorm, it occurs to me that I've got three classes tomorrow, and then I've got my Bio project to work on.
I wonder if there's a two-days after pill? Probably not, so you know what? Fuck it. I know my cycle. It's not the right time for me to get knocked up. I'll be just fine.
I lie on the bed and watch as JordanBillyDavid puts his jeans back on. I guess there isn't going to be any post-sex cuddling.
"This was great," he says. "You're incredibly sexy, you know that?"
"Yeah?"
"Yeah. I'd love to see you again later."
I frown. "You're kicking me out?"
"No, no. You can stay if you really want. But I've got to work on my Chem writeup." He's at his computer chair.
"Oh."
"Would you like me to walk you to the door?"
Wow. If he'd be so kind. "No. It's fine. I know my way out."
"Great. Maybe we can get together this weekend. I'll have more time."
What? Is he fucking serious? He seriously invited me here just to fuck me, and now he's kicking me out like I'm some sort of obedient little slut? No. If he thinks I'm some cheap girl who's only good for fucking, then—
Now that we're done, I get up and straighten my skirt. pull on my panties. "This is going to be our little secret, okay?"
He nods dumbly, and I slip away into the night. Cum is running down the inside of my thighs. I guess that's what happens when you don't wear panties, but whatever. That'll teach JordanBillyDavid for not showing me to the door.
After I put on my clothes, I come up behind him and drape my arms around his shoulder. I put a kiss on his neck. "Okay. I'll let you work. But you let me know the next time you need a break."
He leans back against me. "You can count on it."
I walk back my dorm.
I almost blew up at him. I would have ruined a perfectly good thing. It's not like I don't enjoy fucking too. So he doesn't want to burden himself with a relationship with me. That's fine. I'd probably fuck it up.
He's probably sleeping with other women. Should I ask? No. I'm not his girlfriend, so it's not my business. I should just be happy he finds me sexually attractive enough to sleep with me too.
I should be sure to keep him satisfied so he won't lose interest.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
"I had a great time last time," he says.
"Yeah." I try and smile. "It got pretty crazy, didn't it?"
"Yeah, it did. I've been thinking about it ever since. Can't get it out of my mind."
"Yeah..."
He comes forward for a kiss.
I lean out of the way. "I was pretty drunk."
"You want me to get you another drink?"
"I'd rather just get to know you."
"Oh sure."
So we talk. I tell him about my major. He tells me about his. We talk about classes. It's really boring, and I can tell I'm bombing this. We nothing in common. Eventually, we go to rejoin the other guys. They talk, I mostly listen, and then I excuse myself.
"See ya later," he says. He doesn't even see me to the door.
So that, ladies and gentlemen, is how you fuck up a date. I don't think I'm ever going to hear from him again, but then, I think he was only interested in sex.
Maybe I should have just fucked him.
I'm here at the frat. Holy Cow, I'm nervous. I gotta text Cynthia first.
"You've got this," she texts. "Have fun. *kissy face*"
Easy for her to say. She does stuff like this regularly. After days of nothing, JordanBillyDavid just texted me out of the blue and hour ago and asked to hang out. Is this a date? It is, right?
Cynthia thinks I should sleep with him again, but should I? She didn't sleep with anyone at the party.
I knock. Some guy lets me in. JordanBillyDavid is drinking with a bunch of other guys. He introduces me. So this is a casual thing? Am I his girlfriend?
I nurse a beer. I try to be a part of the conversation, but they're talking about sports. I'm the only girl here right now. Finally, he sees that I'm uncomfortable.
"Let's go someplace else," JordanBillyDavid leads me away.
...to the bedroom. The same bedroom. This whole thing is just a booty call.
Fuck! Do I sleep with him? Do I call it off? Maybe he actually just wants to talk privately.
I find myself talking with Jordan the most. He does look like a gym buff, and he seems like someone who gets angry easily, but he has his draw.
"I need to get another drink," he says at one point. "Wanna come with me?"
"Sure." We split away from Cynthia and the other two. She flashes me a lucky grin.
It's more quiet by the keg, and more intimate. We still have to talk over the music, which he does by speaking into my ear. It brings us close. Frequently, when he does, he lays a hand on my back. He's into me.
Billy seems to zero in on me. He is sweaty, and a little greasy, but he's into me. I can't remember the last time I even got this far.
"Hey, you want to go sit on the couch?" he asks.
"Okay."
Cynthia gives me a confused frown. I give her a hapless shrug. She thinks I can do better than this guy, but she also is far better at flirting than I am, and prettier. I can't be so picky.
He's leaning into me on the couch. His breath smells like liquor. And he's telling me about how he's on the sports team. I try to be interested.
Then, he puts a hand on my thigh. He's flirting with me.
But David was who she told me to talk to. He is the best of the three. As we all talk, I'm giving all the signals I know how to give, such as eyes, and facing him, and laughing. I think I'm doing it right. Cynthia is doing pretty much the same thing.
But now all his questions are to me. I think I've just won. Cynthia must think so, because suddenly she's not as flirty with him.
"I'm going to go say hi to my friend over there," Cynthia breaks from the group. Behind David's back, she flashes me a good luck smile. I guess that's her blessing.
The other beer pong players need contestants.
"Why don't you two play," David tells the other guys. He's got me alone now, and suddenly he's much closer. And he's got the easiest smile.
My flutters start coming. I try my best to flirt back. I give him eyes. It seems like it's working, but fuck, I don't know what to say. I'm terrible at this. I might be meeting someone, and I'm feeling nauseous. Do I really want to be doing this?
"You look nervous," he says. "You all right?"
"Yeah." I lean close so he can hear me.
"How about him?" Cynthia yells. "He's kind of cute." She points out a guy playing beer pong while chatting with two observing frat boys. All bear Solo cups.
"Ehh," I say.
"How about any of them?"
"I don't know..."
"Olivia, I'm not going to let you be a wallflower. You promised me you'd try to meet someone."
"If I see somebody I like, I will."
No. Come on. We're going to talk with them." Cynthia pulls me through the crowd of partiers over to the men. They notice us immediately and make room for us to join them.
"Hey, what's up?" says one. "I'm Jordan." He's big, and black, and muscular. There's something masculine about him, but he's too gruff for me, and rough.
"Hi. I'm Cynthia. This is my roommate, Olivia."
"Hi," I try to smile.
The other man grins at me. "Hey, Billy. How you doin?" He's into me, but he's drunk and sweaty already. And lecherous. No thank you.
The last guy drinks a beer pong cup and takes his shot with a ball. Then he turns to us. Nods. "David." Cutest of the three, but he hardly glanced at me.
We all get to talking. After David finishes his game, he joins us, though he seems mostly interested in Cynthia, and Cynthia seems interested in him. He was the person Cynthia first pointed out to me, but I guess she's calling dibs now.
I just said that. Oh Jeeze. I've had more to drink than I thought. He's smiling. Oh, God. He does.
He's leading me by the hand now. Where is he taking me? I can't believe this is happening. Am I about to make out with this guy?
We're in the upstairs hall of the frat house now. I'm against the wall, and he's so close I can feel his breath. Cynthia isn't around.
"Is this better?" he asks.
I smile. I'm pretty sure I'm visibly shaking.
And then he kisses me. This is actually happening. I'm making out with someone I met an hour ago! What was his name again? Jordan? Billy? David? Whoever he is, his tongue is down my throat.
He's squeezing my breasts. Right. I should have my hands on him too. He's muscular. He could probably snap me in two.
And his hand just went up my blouse. He's cupping my breasts. He's tweaking my nipples! And he's hard. Oh, I just felt it. He's super hard right now! This is going too fast. I need to slow this down, maybe ask for another drink. I pull away from his lips to speak, and say,
"I'm going to go check on my friend." I excuse myself and find Cynthia. She's hitting it off with some other guy. I join their conversation. I see JordanBillyDavid around. And we talk a bit more.
At the end of the night, he asks for my number, so I guess I was doing something right.
"Do you like him?" Cynthia asks me later.
"Maybe." I'm not sure.
"You gave him your number, didn't you?"
"I did."
"Then promise me. Promise me, that if he calls you, you'll follow through, okay?"
"Okay. I promise."
I might have a boyfriend soon.
What? Shit. She looks startled. Almost as startled as I am.
Now she's biting her lip now seductively. "Okay," she says. "If you insist."
She reaches under her skirt and pulls off her panties. She rolls onto her knees with her shoulders on her pillows. "Is this good?'
"Uh, yeah." Thank God. She has a pink, hairless hole. It's actually kind of cute, but I can tell from the smell it's not perfectly clean. But I did just say I'd put my tongue up there. Here goes...
It doesn't taste nearly as bad as it smells. Just lick the smell away. Don't think about the germs I'm ingesting.
She's shuddering. I guess she likes it. Ooh! It just squeezed my tongue. I might actually be enjoying myself.
Oh yeah. She's screaming now. Don't stop. Wait until she comes down. And done.
After, she sits cradled in my arms. "No one's ever done that to me before."
"I've never done that before."
"Why did you?"
"I don't know."
She laughs and rests her head on my shoulder.
Wow, that was demanding.
"Yes, ma'am." She sinks down to the floor. I guess she's up for it. I just sit there while she pushes up my skirt and finds I'm not wearing panties. pulls my panties off from under my skirt. pulls off my jeans and panties. She's breathing in the scent of my sex.
Oh, fuck. And there's her tongue. She's done this before. Let's scoot to the edge of the bed for her. I guess I'll watch the movie now.
This has been going on a while. I'm trembling. Oh here it comes. I pull her head against me.
Don't moan. Don't make noise. I can't help it. Her hallmates must hear.
Fuck that was good. Clare is grinning up at me. She takes to direction well, so why not press her head back to my crotch. She goes right back to it.
Once the credits are rolling, Clare crawls into my arms.
"Do uh, you want me to reciprocate?" God, I sound stupid.
"No. This was perfect."
"And Jeff is okay with this?"
"He's fine with it. He's probably hoping for a threesome."
Not sure what to think about that. "I should get going. I've got to get to sleep."
"You could sleep here tonight."
"I have class in the morning."
"Okay then." She hugs me.
I rest my hands on her thighs like last time. I'm leading her on by doing this, right? I'm not into girls. I mean, I look at lesbian porn sometimes, but that's different. Then why can't I stop thinking about that dream I had where I licked her pussy?
Oh God. She's rubbing her legs together in my lap. That's sensual. She totally notices this. Her eyes are glued to the movie, but look at that expression. She knows I'm looking at her.
My hands are shaking. What I need to do right now is just concentrate on the movie.
I just showed up to Clare's room at the end of the day—her invitation to come hang out.
"I love your lipstick," Clare says. "It's so different."
"Thanks," I say. "I needed different. I'm thinking I might dye my hair blonde too."
"Oh my God! That would be amazing. You should totally do it."
"I love your lipstick," Clare says.
"Thanks," I say. "I thought you would."
"I could have given you one of my sticks. I have too much black lipstick already."
"It's not black." I lean close to her. "It's actually purple."
"Oh! I love it!"
As I drop my pack, Clare scoots over to make room on her bed. And suddenly, I'm reminded of that dream I had about her. I sit down with her, like I've done a thousand times before. It's strange this time.
"So what do you want to do?" Clare asks.
"I don't know," I say. "I'm fine with just hanging out."
She sits cross-legged on the bed. I kick off my shoes. Was she just chewing her lip? Is she nervous too? It was the physical contact from last time, wasn't it?
"We could watch another movie," she says. "Or just talk."
Both choices leave us alone. Is that on purpose? "I'm okay with another movie."
"Okay!" She sets up her laptop. It takes us a few minutes to decide on a Marvel movie. As soon as it's playing, she turns off the lights and sits on the bed. Her legs are immediately across my lap.
She has to be doing this on purpose. I'll just watch the movie passively. That's all. The awkwardness will pass eventually.
Okay, she's finally stopped doing that. We're just watching the movie now. Is she disappointed? She seems like she's just watching the movie.
Maybe it was all in my imagination. She's always been affectionate. I'm just weird about touch.
Let's just watch the movie.
The hug turns into a kiss. Now we're lying down. It's like some part of me just doesn't want to leave.
The lights are already off. The laptop screen goes dark. I guess I am staying the night.
She's not making any move to get ready for bed, or even undress. I think she's afraid any action might stir me to leave.
I guess I'm nodding off. I hardly noticed her help me under the covers. We're both still mostly clothed.
No wait. She's not. I must have dozed through that. And now she's snuggling up with me. Sure. Okay. I'm too sleepy.
"Maybe next time Jeff should join us."
"Are you serious?" She's grinning, but unsure.
I shrug. Unsure. "I don't know. Might be fun. The three of us."
"I'll talk to him about it sometime. But maybe I want you for myself first."
I grin mischievously, though inside I think I'm screaming. With those words, I just realized what I've been doing. I have a sexual relationship with my friend. And now I'm thinking about a threesome?
"I'll talk to you soon," and I get out of there.
I spend a long time laying in bed running over everything that happened. It's like some lusty part of me just keeps taking over at times. Also, am I bi? It felt like it tonight.
She sighs sensually.
Shit! Because I'm petting her! When did I start running my fingers along her thighs? Do I secretly want this?
She just parted her legs a little. I can see her underwear now–black, like the rest of her wardrobe.
It's like I'm not in control of my fingers. They're at her skirt now. Don't go further. Maybe if the movie finishes first...
But Clare is pulling up the hem of her dress. My fingers are almost to her panties. She smiles when I notice. My whole body is trembling.
She scoots closer until she's practically in my lap. Her breath smells like cinnamon. I must be insane even doing this.
She certainly knows how to kiss. Every time I pull away, I barely have a chance to breath before she attacks me again, like she's trying to make up for all these years as friends.
...And now she's squeezing my breasts.
I should caress hers right? Fuck, they're huge. My boobs are just B cups.
Am I really ready to have a lesbian experience? I should slow this down. I just need to say the right thing.
But what sort of dildos are there? Jesus! They have everything. Horse dildos? Surely those are only bought as pranks.
That one has some nasty looking bumps. Is that supposed to be a monster cock? Hah! Not for amateurs. Obviously.
Here's one that sane. Relatively. A big black cock. A nine inches in length. Doesn't say how thick it is though. Users recommend using lube. Hmm.
You know what? I know tons of people who've owned dildos. There's no shame. Add to shopping cart. And a water-based lube. And it's confirmed.
But where the hell am I going to hide it in here? Hmm. I'll figure that out when it comes. For now, Bedtime!
I should really just go to sleep.
But just one video or two. That's it. No diddling marathon tonight.
But I gotta make sure it's a good video though. That was a pretty good anal video the other night. And that little experiment with my middle finger was interesting. Maybe I should try that again. double vaginal video the other night. Would be fun if two men would take me like that.
Ooh. Here's a promising one. Two women enjoying one another like the camera isn't there. One of them brings out a double-ended dildo. Less believable, but that toy does look fun.
The girls sixty-nine. One feeds the dildo into the other's ass while the other wets the other's anus with her tongue. This is working for me. Let's pick a moment. Right there, yes. Right when they're lined up and working the dildo into both their asses at once.
And here I cum. Ooh, that was a weak one. I could keep going, but I really need to close this out and go to bed.
What is sexual jewelry though? Ah. Clamps and piercings. Fetish gear. Collars. Ball gags. Ropes. This all looks really sexy actually. And it's cheap.
Too bad I don't have anyone who'd like to use this stuff with me. Would could I get for just myself? Clitoral adornments? Hmm. The nipple gear looks sexiest. I like the ones that drape chains between them, but I'd have to get my nipples pierced for most of this stuff.
Ropes. Ooh. That's a harness. Wish somebody would do that to me.
But I don't. Not for any of this. It's time to sleep. Laptop closed.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
There's a place downtown that does piercings. It's not too far from work. I wonder if they're reputable. What would actually happen if I went through with it? Are piercings permanent? I could have little barbell on my nips and no one would know except me...
Hmm. I've got to sleep.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
But what plugs do they have?
Hmm. A lot of these are for men. There are anal beads though. Wow. That one has a lot of beads. It'd go half way to your stomach. Oh, here we go. Good old fashion butt plugs.
Sizes? Ooh. I've seen that one in pornos before. I could wear that under my clothes. No one would know. And it's got good reviews. There's a combo with water-based lube.
I... You know what? Fuck it. One click buy. It's only eight dollars.
I wonder what it's going to be like? Where am I going to hide it in my room so that Cynthia doesn't find it. Hmm. Maybe I'll just have to wear it all the time.
For real this time. It's time to sleep.
But I'm just curious. How easy would it be to get a toy like that? Or any toy for that matter.
Oh wow. Amazon has a whole "Sexual Wellness" section. This is extensive. Let's see. Butt plugs. Big dildos. And adornments. They have everything, but then of course they do. This stuff is really cheap too. Must be cheaply made.
...but these are some good ratings.
Well, that was very interesting. But I really need to close my laptop and go to bed now.
I go back to the bathroom to change. And it's definitely worse—that end-of-day smell. I'm pretty sure a restaurant of this size is supposed to have more than one dinky little unisex bathroom. It's always overused.
I wish Jeff would clean it more often. I really have to pee too. I'll just wait until I get home.
Oh well. Unless I want to ride the sketchy bus in this short skirt, I'll have to hold my breath and get in there.
I can't hold it. I yank down my underwear and sit on the toilet. How many germs are getting on my thighs, or on the soles of my feet. How much dried pee sprinkle am I sitting in?
Revolting, but it's not like I'm not showering anyway as soon as I get back to the dorm.
To be honest, it's a little insulting. Maybe I don't want to be groped, but that doesn't me I shouldn't end up getting groped. Yet here I am, a girl in a short skirt, engrossed in her phone and listening to music, and I'm completely unmolested.
Hmm. I guess this means it's safe to wear my skirt and tank top on the bus after all. Maybe I'll start doing that more.
I head straight for the bus stop. It'll get me home faster.
Though I'm already regretting this decision. I'm standing out by the bus stop well after dark, and I'm in a tiny skirt and a white tank top which shows way too much cleavage. A bum across the street is eyeing me. Two scary men pass, both look me up and down.
My heart is hammering. Just because the idea of getting attacked turned me on that one time I was on the bus, doesn't mean it was a good idea.
Thank God. The bus comes. It's crowded. Tons of people coming home. Many drunk, but I'm safe here, and nobody nearby is even groping me. I'm still shaky from my stupid decision.
I have to hold my breath while I change in the bathroom at work. It always smells like a sewer. Jeff is too cheap to clean it regularly. This is what I get for waiting tables at one of the dingiest pubs downtown, all just to make a dent in my student loans.
Jeff is waiting outside when I emerge. He looks me over. Creep.
"I don't know how you can stand to change in there," he says.
"You could always clean it."
"It gets cleaned," he replies. "You know you can always use my office to change."
"No thank you.
He's waiting for me when I come out. "You're taking a real cahnce changing in there," he says. "Anyone could barge in on you."
"You could always fix the latch..."
"It's on the list. You can always use my office to change. It locks."
My glare lets him know what I think of that.
"Just an offer." He heads away. "You ain't got nothing I haven't seen before. Cathy changes in there. She don't mind."
Cathy has probably never considered that Jeff might have a camera in his office. This is the same man who set the server dress code to a skirt with a three inch hemline maximum. My alternatives are riding the 47 bus in a short skirt, or getting naked in a smelly bathroom.
I get to work on my shift. Five hours on my feet. It's grueling, but come ten o'clock, my shift finally ends.
I head to Jeff's office to change. The door closes and locks. Maybe Cathy has the right idea.
However, first, I scour the small office. No cameras that I can find, but anything could be hiding among those Vegas photos, or behind those posters of half-naked women, or anywhere among all the clutter.
Whatever. After I shimmy out of my skirt and take off my white tank top. In just my underwear, I make a sexy pose for the grand jury who'll watch the tape after I press charges. It was nice not having to hold the door closed.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
One video stands out to me. A woman is on her knees upon a bed while a man saws his cock in and out of her ass. It's like many others I've seen, but this one catches my attention, because the woman genuinely seems to enjoy herself. She clutches the bedsheets and shudders in the most realistic way, as though experiencing the perfect mix of pain and pleasure.
My diddling finger strays a little lower. I pull one knee to my chest and work my wet digit into my little hole. It takes some concentration to keep from puckering up too tightly. But once I'm up to my knuckle, I start sawing in and out in time with the porn, and... it's actually kind of nice. I still need to work my clit as well to get off, but I think this little experiment might require later duplication.
Time now to sleep, after cleaning my finger, of course.
I give my breasts a good squeeze after adjusting them. On impulse, I tug my blouse down and bring out both of my breasts. I stare at myself in the mirror while holding them together. They do look better pushed up like that. I should accentuate them more.
I start tweaking my nipples while staring at myself.
The bathroom door opens. Casey comes in. I yanked my blouse over my tits at lightning speed and pretended to be adjusting my bra, but given her sideways glance, I'm pretty sure she knew I had them out.
I don't know what the hell came over me to pull out my tits in the dorm bathroom like that. Time to leave.
This one video shows a woman getting double stuffed by two men. Not bad. It shifts later to have them both forcing into her sex at once. I don't normally care for those sort of stretches. It's obviously just raunch, but it draws me in today.
What would two cocks feel like at once? Could I ever fit such a thing inside of me? It would be fun finding out. That thought carries me through to a decent little cum. That's good enough for tonight.
Might be nice to try sometime, but I think it'd probably just hurt too much. Maybe a dildo or something would be a better way to experiment.
It's time to sleep now.
Though this movie is capturing my attention more than I expected. It's about a family lost in the wilderness. Hill people start abducting them. They torture the men and force themselves on the women. It's a stupid movie, but for whatever reason, I think I like it.
Her calfs don't move from my thighs. It's something she's done a thousand times before, and she's clearly absorbed in the movie, but I can't get my mind off of it.
I rest my hands on her calfs. She doesn't even seem to notice, but I think she's just hiding it. This must be driving her crazy.
Just to be sure. I trace my fingers back and forth along her calfs. When she glances, I pretend to be engrossed the movie. She doesn't stop me though, and turns her attention back, but now I know I've gotten into her head.
I brush my fingers above her knee and she glances again. This time I look at her. Our eyes meet. She smiles, and so do I.
What the hell am I doing. I let my hand just rest and I make a point of not moving this any further. We watch the movie, but I don't think either of us really paid attention.
Soon, the movie credits are playing. Clare gets off my lap. It's gotten pretty late. We hug. By the time I get back to my dorm, I need to head straight to bed if I want to get a decent amount of sleep.
When I get back, Cynthia is on Clare's bed texting someone. Clare is trying the ouija board on her own. She lives for this sort of stuff. Though she swears up and down she's not goth, she's certainly got the look: black clothes, died black hair, burlesque shades of lipstick, a desperate need for a tan. She's an aspiring witch–Her own words, and if she hadn't been my roommate freshmen year, I would never have seen past all that silliness.
Clare looks up. "Are you feeling better?"
"I was just thirsty."
"I have crates of water in my closet."
After I take one, she motions for me to join her in her seance.
"I'll just watch," I say
She slumps back. "Neither of you gave it a chance."
"Yes, we did," Cynthia said. "The thingy didn't move."
"We have to give it time."
"I think you're supposed to move it yourself."
"But that's not the point. Ugh! Fine. We're done. What do you all want to do then?"
"I'm probably going to leave," Cynthia says. "I'm meeting Lizzy at the Union."
"Are you sure you can't stay?"
"Sorry."
"Okay then." Clare looks at me. "How about you? We could watch something."
"I've got class in the morning."
"We haven't spent any time together in weeks. You said that after you finished your lab project that you'd finally relax and we'd spend time together."
During that encounter, strange sensations filled her. They're reminiscent of the place You were before you came to this world–before You were You. The best word she has for those sensations are emotions, or desires. They absorbed into you. You could sense that through that flow of emotion, you could reach into her mind better. You were able to steer her thoughts more easily, but most importantly was that carnal emotion she relates to lust. It absorbed into you. It fed you. It's almost imperceptable, but you feel... renewed. The draining struggle to get into her mind seems only a memory now.
It's a strange thing to have memories, another artifact of existing in this world. It's not bad.
She's falling asleep now. Her mind is receding into itself, where You are...
You can feel her mind grow more pliable the more her baser instincts control her life. The more she indulges, the more those instincts feed you.
I did promise that, and why not. I haven't had time to enjoy myself recently. And I'll probably have another big project next week, and I won't have time for anything again. Besides, my class isn't until ten.
"Okay," I say. "What do you have?"
Clare scampers to her laptop. Cynthia leaves while Clare and I look settle on a movie.
Soon, lights are dimmed, and we're watching from her bed. Clare sets it up to play while I sit on her bed. Her legs drape across my lap. She's always been touchy feely. Her boyfriend told her that he doesn't mind if she sleeps around, as long as it's with women–something she's always mentioning to me. I think she secretly has a thing for me.
The movie is some kind of grizzly horror where bad guys target hormonal teenagers one by one. I don't know why Clare likes these kinds of movies.
My lips. I pout them out in a duck face, then press them into a tight line. They have a nice cupid's bow curve to them, and a perfect amount of pout. I don't know why I overlook them so much.
Leaning forward, I plant a kiss on the mirror. It leaves a perfect lip print. It would look better as a lipstick print.
Why on earth did I do that? Is this mirror even clean? The cleaner comes by only once a week. I wonder how many people are going to see that lipstick mark before it's cleaned off.
A lot, probably.
I leave just as another girl is coming in.
So you're not entirely helpless after all. You made her focus on certain thoughts. It's not much, but may be a way of exerting some control. Perhaps in time you'll learn how to do more...
A few gulps of water from the sink helps me feel a little better. Am I getting sick? Or is this just blood sugar?
I had cereal this morning, then went to the cafeteria after Multivariable Calc. That wasn't too long ago. I should be fine. I take my time before the mirror since the two are probably still arguing. I take a moment to correct my lip gloss and adjust my bra. By the time I'm done, I am feeling fine again.
As though with a mind of their own, my fingers type in familiar sights. My browser can already guess. Big cocks or anal are its suggestions, sometimes both at once. The cloud knows me well.
"And we will," I say, "just not tonight. Like I said, I have class in the morning, and I not feeling great."
Clare deflates a little. "Okay then. Feel better."
"I'm sure I will. Thank you."
Back at my dorm, I'm soon ready for sleep and relaxing on my bed. Cynthia won't be back for at least an hour, and it's still early. I have some time to myself. Facebook has nothing new. No emails. The only reason I'm thinking of looking at porn is because I'm bored. I should really just go to bed.
"Olivia?"
My friends, Clare and Cynthia, are eyeing me. I've slumped back from our game, but I don't remember doing so.
"Olivia?" Clare asks again. "Are you feeling okay?"
"Yeah," I say, but am I? My head is spinning. There's a ringing in my ears. Low blood pressure. "I'm tired."
"You look like you were about to pass out."
Definitely low blood pressure. "I didn't eat much today." Clare and Cynthia still have their hands on the ouija board planchette.
"Why don't we stop?" Cynthia says.
Clare spins to her. "We've barely tried."
"Don't you feel a little dumb?"
"Just for a little longer. Please."
"But we did get a message, look." Cynthia nods toward the board. The planchette is focused between the letters N and O. "It's no. As in, can we contact the spirits? and the answer is no. No, you cannot."
"You're not even taking this seriously."
"This is for children."
"No, it's not. My grandmother used to do this. This is her planchette."
"Did she use a Hasbro board too?"
"It doesn't matter what board you use. My grandmother used to just scratch letters into wood. It's about the planchette."
The arguing goes on a while. I excuse myself from Clare's dorm and went to the bathroom down the hall. I was still a little dizzy by the time even after reaching the sink mirror, and I definitely was pale. What did I eat today? Cereal this morning, then the cafeteria after Multivariable Calc. That wasn't too long ago. I should be fine.
She doesn't knows you're here. Strange, considering how ferociously she fought you when you burrowed into her. It seems there are two parts to her. One is her physical half, has her body, her mind, her memories, her thoughts. Then there is the other part of her–the transient part of her more like you, and that's where you're hiding. She's not aware of that half of her.
Though now it seems You have no control of her. All you can do is pour through her memories and learn, and observe what she does...
In endless limbo, a rent appears–an aperture leading into an alien reality of constants and rules. In that single moment, it's order pours through, causing the chaos of the limbo to coalesce, becoming masses of thoughts, and concepts, and ids, all formed from the void of noise. Every one of these new entities race toward this rent, unknowingly striving for their own existence.
One gets through, and in doing so, it closes the rent behind it. The countless beings that had existed momentarily cease to be without the order of physics that had bled into the limbo so briefly. But One still exists. Already, the rules of reality impose themselves up it, and it struggles to comprehend. Time exists here flowing in a single direction, and all must abey that passage.
This world has laws of distinction as well. The One struggles with the realization that it is a separate entity from everything else. There is it, and there is everything else. They are not the same. It develops a concept of self...
You. That's a strange idea. You. You have your own stream of thoughts, and your own desires. And you are observing this world from a point of view. Yours. There are other Yous in this world, but they're not you. They're them, and there are so many of them. And unlike you, they're fixed to this world– grounded to something... physical. That's a strange idea: A physical world–a place of energy and matter, of near and far.
You long to be anchored as they are. Drifting as you are, your helpless, already evaporating into nothing. There are three of them near you, near right there when you came through to this world, as though they had been holding the rift open. You reach out and snag one. It shudders, as though trying to shake you off, but you're stuck to it. You burrow in, attaching to it the way it's attached to its physical body.
And it's world envelops you...
But my breasts really could stand to be bigger. I've got a decent C-cup cleavage, but wouldn't it be nice to have melons like Clare?
It would. I'd never take them for granted. And I'd play with them all the time, and let other people play with them. If they wanted. Of course they'd want. I'd get so much more attention.
Oh well.
I lock the bathroom door behind me. Ohh man is this shift the worst. Drunks at the bar. A party of twelve. A family with four children. And two bitches who keep ordering off menu and talking about their diets.
I just need a quiet moment to pee, and maybe to do something... naughty.
I drop my panties and squat down over the floor drain. It's amazing how something so simple as squatting and peeing somewhere I'm not supposed to is turning me on.
But frankly, this makes sense. Look at that toilet. The seat is up, and it's sprinkled in strangers' urine. Who wants that deal with that, right? Who in their right mind would want to get germs on themselves by—
Huh? Strange thought. Guess I started daydreaming mid thought.
But that would be a nasty thing to do, wouldn't it? I peek under the seat. So much sprinkle. A dozen guys must have done that.
I finish peeing. I should go back to work now, but I crawl to the toilet and kneel. And now I'm removing my Micky's Pub shirt and pulling up my bra... I feel like I'm autopilot right now, but I can't lie. I want this.
I press my left breast to the toilet rim and slide it along. It's slick and cold. Let's make sure my nipple gets some. Fuck yeah... Now other side. Next tit. This takes some orienting on my knees. I wish my tits were bigger, but I get it done. The toilet rim looks clean now.
But in the mirror, my tits just look innocently damp. I'd squeeze them, but I still have to serve food with these hands, so instead I'll pull my clothes back on.
My bra shirt feels clammy on my tits for the rest of my shift.
...I mean, to the toilet seat.
But then who would touch this grate? It must be even filthier. The toilet here clogs often. This drain gets plenty of sludge and mop water. It must be revolting...
I lay my legs straight and sit. My urinating pussy mashes against the drain. Oh that's dirty. The crud feels rough. Fuck, I'm tingling.
I gyrate my hips slightly. Oh that hurts. The tiny holes are biting.
But If lean forward enough, my clit presses against the filthy metal. Now if I grind. "Oh God. Fuck." That hurts. I should really stop. This is so wrong. And stupid. And dirty.
The more I grind, the more it bites my labia. I'm getting close. Can I get off before I finish peeing? I'll have to go faster.
Ahhh. It's like a cheese grater. It hurts. It hurts. I'm getting a thousand tiny cuts. Shit. This is really doing it for me. Piss harder. Yess. "Fuuuck." I'm cumming. I'm actually cumming from humping a filthy bathroom drain. My piss makes it sting so badly.
And done. Oh that hurt. I roll off and examine the damage. Ooh, I'm scraped up. There are little hole indents as though my labia was waffle pressed. Am I bleeding? Hmm. No. But it stings like a skinned knee.
I pull up my panties. When the fabric touches, I hiss in pain. My pussy will be stinging all while I'm taking orders and delivering food.
This'll make my shift interesting.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
But it's not like I'll be touching it, right? I hike up my skirt, kick off my panties, squat down over the little drain, and let loose.
This is kind of dirty, isn't it? Squatted down, pissing in a drain like I'm pissing in the gutter. It's so gross looking too. The grate is mossy green with tarnish. Must be copper. It's got crud over it like barnacles on a ship. And are those hairs?
I might be playing with my clit while I pee. It's causing a little splatter. Not all pee is going right straight down the drain. It puddles a bit first. And there's the lightest sprinkle on my thighs and ankles.
I also might have played with myself for a minute afterward while just hovering my delicate little sex over that disgusting drain.
Next time Jeff mops, it'll flush the drain out. Until then, my pee smell will join with everyone else's in here.
Back to work.
I slip into the bathroom during a lull at work. It doesn't smell too bad right now. Good. I really have to pee. But today it looks like some guys decided to use the women's room, and they didn't lift the seat. There is a fair sprinkling on it.
Wait. I had a dream about this bathroom. It was really messed up. And it caused such a powerful orgasm too. Must be something screwed up about me that I'm just standing here in the bathroom, contemplating a dirty toilet?.
Stop thinking about it. Really wish I could pee somewhere though. Oh well. I'll just hold it.
But it's not like the sink is actually clean, is it? Jeff doesn't hire a proper cleaning crew. And I bet most customers don't even wash their hands. So what difference would peeing in the sink really make?
My panties drop. My skirt hikes up, and I straddle one leg along the sink and get to peeing. This is so perverted.
I'm inches from the mirror. It's like I'm inches before another girl, and we're pissing together. Our breath would be mingling. It's like we're about to kiss. And who wouldn't want to kiss her?
Look at her, standing tall, pissing in a sink. She doesn't give a shit about who uses it. They should be grateful its her Christening it and not some disgusting stranger.
I'm really turned on right now. After I've finished, I stay straddled over the sink and play with my clit. Just for a moment.
Ohh. I could actually get off like this. But I shouldn't. I rinse out the sink and get back to work. I'll think about this later in bed.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
Actually, I will pee here. It's just a little spray, right?
Panties about my ankles, I perch down on the toilet and pee. My thighs barely touch the edge of the seat.
That dream though... It was such a dirty thing. My brain must be perverted. It'd be like getting off on sitting on this toilet seat, even though it's wet. That'd be so gross.
It would. Wouldn't it?
My thighs get tired. Wetness touches my skin.
Fuck it. I sit down fully on the seat. The cold urine wets my thighs. In fact, let's sit back on the seat. My butt is touching it all along the crescent. It was so wet with urine. Now my butt is too.
I just relax. The customers can wait a moment.
My fingers find their way between my legs. I'm wet in other ways too, it seems. I could do it. I could climax like this just like I did from my dream.
But I need to return to my job.
I stand and... I don't bother wiping my legs clean. That'd just dirty my hands, and I've got customers to serve. So I just pull up my panties, and my plaid skirt, and I leave. I'll shower at home.
But I must pee.
So if I won't use the toilet, what can I use? Hmm. There's the sink. It looks pretty clean. All the customers use that though. Seems like mean thing to do to them.
There's also the little drain in the floor. Oh, that looks gross. That's for toilet overflows and mop water go, and the grime on the grate reflects that.
It's the chilly water makes my nipples stick out. I give my breasts a squeeze. My other hand still fingers my pussy frantically.
I collect more filthy toilet water and spoon it over myself. I'm bathing in it. Got it's so depraved. More water. Coat my breasts again and again, and I rub it in like lotion. They're tinged brown. Little bits of muck are stuck to them. Bits of toilet paper cling to my breasts.
I'm so fucking close now. I'm a filthy pervert who bathes in disgusting toilet water. I start to—
Oh Holy God, it's a powerful one. So fucking strong. I've got four fingers buried in my toilet cunt, and who knows how much filthy water I'm pushing into myself.cunt.
I'm screaming. I'm actually crying out. I'm thrashing. "Oh fuck Oh fuck." I'm so glad no one else is in the building. I sound like such a whore. A filthy, toilet-loving whore. I point my feet straight up and sit my butt as low into the water as I can and just torture my cunt with both hands. My toes curl. My legs kick. I have to grip the filthy rim for dear life while I torture my cunt.
Oh. It's easing off now. A little bit. The next few minutes still feel orgasmic, but this rocket is landing.
Oh fuck. Fucking fuck. I'm a mess. What the hell am I doing? There is no way in hell I can get on the bus like this. How the hell am I going to clean up?
Oh wait. Of course.
I flush the toilet.
Oooh whoa. That was like a water slide! I'm sitting in a pool of clean water now... mostly. Now to bathe. I scrub as much mess as I can from my crotch. I dig fingers in myself and clean out bits of toilet paper and dirty water. I spoon some water over my breasts too. That'll have to do.
I extricate myself from the toilet and stand nude and dripping wet. At least I'm visibly clean.
But I am going to go back and shower shower shower. These bathroom games have to stop. This was absolutely absurd, and I should feel completely ashamed and disgusted.
But I don't. This worries me.
I dry myself with my work shirt, dress, and close up the bar.
I stand and inspect myself. The mess on the rim has left my thighs dirty. I'll shower when I get back. These bathroom games are getting out of control. I should feel completely ashamed and disgusted.
But I don't. It worries me.
I pull on my clothes and close up the bar.
I take some soggy toilet paper floating in the bowl with me and drape it over my pussy. I lift my snatch out of the water it clings to my pussy. Just like that. Yeah. My working fingers are tearing it apart. Soggy pieces are getting lost in my folds.
I reach low behind my butt for more paper and I pack it against myself. It's covering my smooth mound like Papier-mâché. I'm making a mold of my cunt, which my frantic fingers disintegrate. It's carpeting my pubic hair. And I rub it in with with my palm. It tears into little pills which tangle deep in my bush. I'm sure plenty gets inside me. I'm stabbing my fingers in my gash so blindly.
I can't find any more paper. It's all either matting my genitals or floating around the murky water in little tiny pieces. So I focus down on my clit once again. Just moments later, I—
I can feel the warmth around my strumming fingers. I'm making my own contribution to this disgusting water. Oh fuck this is nice. The water's a little warmer now. I'm adding my own pollution to this sick bath of mine. Oh God. I—
A cloud of yellow builds around my strumming fingers. It's warm. It's spreading. The whole bowl is turning yellow. I'm sitting in my own piss. I'm polluting my bath. Oh God. I—
Piss jets from my cunt. My frantic fingers splatter it everywhere. God, this is so messy. I can feel it sprinkling my belly, my legs, even my breasts. It's even getting on the floor. Most of it is dripping over my cunt and into the water. My own mess is mixing with the filthy toilet water below. The amber color turns even darker. The crystal clear water turns yellow. I'm diddling myself inches over my own mess.
This is driving me crazy. I—
I start pushing out a smooth log of poop while my ass is under water.
I'm injecting it straight into the murky swamp at the bottom of the bowl. By now, my fingers have agitated the water so much that I can't even see my own pussy through the brown murk. And much of my poop is caking against my ass.
It's loose. My strumming fingers are stirring the water as it comes out, and the water starts turning brown. A murky swamp fills the bottom of the bowl. Much of it is caking against my ass, and the stench that fills the air is horrific.
I start pushing out a smooth log of poop right into the water.
It drops. It splashes. I keep clenching. My butt is cutting my log into pieces. Did water just get on me? Oh sick. My logs are disappearing into the murk at the bottom of the bowl. I'm making this filthy toilet even worse. It's dissolving at the bottom of the bowl into a disgusting soup of waste. The stench is filling the room.
How fucking sick am I that I'm playing with myself all the while? But it just feels so amazing coming out. It feels like I'm being fucked.
The very moment I finish, I—
"Whoah my God!" I just fell in! Oh fuck! I splashed all over myself. My butt is in the water. It's touching the bottom! My butt, my thighs, my vagina are submerged in this revolting soup. someone else's pee. toilet water.
Am I stuck? My thighs are tilted high. My feet dangle. I think I'm wedged in.
No, no I can get out if I try hard enough.
...if I try.
I... I slip my hand under the water and start working my clit again. What's done is done, right? And I was so close. Fuck this water is cold. I've lost a lot of ground. No problem. I've got time. I strum my clit like a lunatic.
The water is starting to brown. My turbulence is stirring the muck at the bowl's bottom. The stench gets so much worse. I'm gasping and moaning so whorishly. That's when I—
That's when I—
Yesss! In a second, I've got all of my clothes piled in the corner. I'm naked.
I lift the seat and sit down on the disgusting rim. I lower my crotch until it's just an inch above the water, and then I play with myself with everything I've got. My cunt has been dripping wet all during my shift. I've needed this.
Already, I'm trembling all over. My toes curl. My insides are winding up. That's when I—
Okay. I'm just... I'm just going to frig my pussy right above the water. I won't touch it.
Panties come off, and my bra. I'm naked now. There's a half dissolved mass lurking under that layer of brown at the bowls' bottom. I just know it. I'm breathing deep now. I'm getting accustom to the smell. The toilet water is dark gold. I think it might actually be more than one person's urine. Guys can be so gross. So horribly gross.
I lift the toilet seat rim. It's speckled with urine. I sit on it and carefully sink until my pussy is just above the water, and strum my clit. Fingers dig in. I'm so wet, I'm nearly dripping. My juices would mix with the disgusting soup so close to my intimates. It smells so awful. My most intimate part is so close to a bowl of strangers' piss. God, I can even smell it. It's pungent I can't help but breath it in.
I'm spasming now. Keeping my grip is getting tricky. Already, I'm close. Just a little more. It's welling up inside me. I'm just at the edge, and I—
All the mess flushes away with one grand toilet roar. There we go. Crystal clear water. Though let's not kid around. That water is probably a germ haven. Doing anything dirty with it would be totally gross.
My hand rests on the handle, and I just stare. Eventually, I have to breath. It smells awful in here.
Just. Awful.
I drop my backpack in the corner and lock the bathroom door. I should just flush it.
I pull off my Micky's top and shimmy out of the plaid skirt. Just flush it.
I can't believe I'm actually thinking about this. It's disgusting. Only the sick and depraved would even consider this.
I should just flush it. I should just flush it. I should just—
My shift is over, and I'm already wet with anticipation. I've seen so many customers go into the bathroom, even some drunk men! I told the cooking staff that I would close up today, and Jeff isn't in. I've got the place to myself.
I go into the bathroom.
Huh. Some customer didn't flush. The toilet water is a deep amber yellow. A few pieces of toilet paper float on top.
Hmm. This is really dirty, even for me. I think I'll just—
I go to the bathroom with my pack. I open the door.
...and I recoil.
Oh good God. Some customer has ruined the bathroom. Holding my breath, I step in and survey the damage. For whatever reason, somebody did not flush. The toilet water is amber yellow. A murk of brown sits at the bottom, and soiled toilet paper floats on top.
I've developed a weird kink for toilets, but doing anything with that toilet would be so utterly depraved. It's too much. Enough of this weird obsession. I reach for the flush handle.
Half way through one busy-as-hell shift. There's the slightest lull in serving tables, and I slip into the bathroom to have just a moment to myself.
And also, to pee. I wonder what kind of state is the toilet going to be in? Will it be smelly in there? I saw a lot of customers go in there.
My heart rate is actually picking up as I step inside and lock the door.
Oh. The toilet is actually pretty clean. That's good, I guess. Let's hike that skirt up and Let's hike my skirt up, drop those panties, and sit on down.
Yeah. The toilet seat is just fine. Nothing soaks my legs. Huh. Oh well then.
Wow. I'm actually sort of disappointed. How fucked up is that? Probably for the best then that I don't indulge this weird overnight kink I've developed just because of an erotic dream.
Then I guess I'll just pee—
I sneak a finger down and fiddle with my clit. My stream splatters around. Some reflects onto my butt. Hmm. That's dirty.
I cup my hand under my stream. It's really warm. Feels nice on my cold hand. Ooh. It feels really nice when I splash the handful against my pussy. I'm basting myself. Handful after handful.
Ooh. Now that's a dirty thought.
The bowl's inside looks clean, but looks can be deceiving, can't they? Still peeing, I reach lower. Yellowed toilet water seeps through my fingers and pools in my hand. Now I baste my pussy.
Cold! That sent a shiver up my spine. I do it again! And again. Oh! Alternating hot and cold feels amazing. Who cares how many germs am I exposing myself to? Oh fuck. This is it. I'm about to cum. I strum myself so hard, my stream splashes the floor. It's getting everywhere. "Shit... shit..." I whisper. I'm try to keep it down.
And I'm done. My stream dies too.
Hoo. That was fucked up. Panties come up. They dampen immediately.
I wash my hand in the sink. I'll shower later. Back to work.
I lift the seat, and my heart flutters. It's filthy. Sprinkled urine has dried to create congealed yellow spots, and there are little curly hairs.
I sit right down. Wet dampens my thighs. It's uncomfortable, but I'll just grip the rim for support. My pussy is an inch from the water. When I piss, it hisses. This is so depraved.
Fuck, I need to play with myself. Once I've peed, I shift to one side and finger my clit.
Woah, wait, that finger was just clutching this filthy rim.
Ohh! Now that's a filthy filthy idea!
I shift more until my pussy presses directly against the rim, and I grind. "Fuck. Yes." I gripp the rim with both hands. The porcelain is smooth, but there's enough crustiness that I can feel it in my clit. What the mother fuck is wrong with me? I'm cumming!
Rub. Hard. Along as much length as I can. Oh fuck yes. I'm dragging pubic hairs along. "Oh God." This is intense. Switch. Smear my pussy along other side. All the way along. Clean it. I'm cleaning the toilet with my pussy.
Oooh. That was so fucking depraved. I've got concentrated piss all over my thighs, and my hands, and definitely my pussy.
...And I'm already feeling a stir inside me again.
No. I should get back to work. No cleaning though. Panties on. Clothes on. I'm clammy, but I'll shower later. Probably.
Makeup could work. I should use it more often.
I crouch down before my little makeup mirror and put on some eyeliner and some highlight.
...And I guess that's it. Jeez, I hardly brought any makeup to college. Not even lipstick. I need to fix this, but later. Gotta get dressed and go to class.
No. Don't forget it. I'm going to change something up.
But looking through my stuff, I don't really have sexy clothes. I'm too used to dressing modestly. Maybe I could just wear some nice makeup. I really should really work on having a more feminine wardrobe.
What to wear? Blouses? Jeans? I rifle through my wardrobe quietly while wrapped in a towel. Cynthia is still sleeping. I was going to wear jeans and a blouse.
But... what the hell was up with that dream the other night? It was really messed up. But I can't deny that I was dressing sexier. And wasn't I just telling myself I need to show off my assets better?
Forget it. It was just a messed up dream. And I'm just dressing for class anyway.
No. I can work with this. I can do something with this wardrobe.
Let's see here. I have a frilly, patterned skirt that I normally wear to work. It conforms to Jeff's three-inch maximum, as in less than three inches under my buttocks, but isn't sexy what I'm going for? What's the big deal if I give a few panty shots.
And here's a white spaghetti-strap tank top. It's meant to have layers over it, but what if I don't bother? It is warm today. Oh my. That is showing a lot of cleavage.
But that's fine. It's okay to be sexy for a change.
Now it's time to get to class.
I'm thinking I should be sexy again today. What can I do to pull that off?
Panties first. Cynthia's stolen pair, of course. They reek. They're stained, and they're now directly against my pussy. There's a nice pair. I probably shouldn't be hiding my butt plug in my panty drawer. Cynthia's bound to find it.
Let's find another skirt, and a tank top. God, this is so revealing, but I love it! I love having my tits uncaged. My cleavage is totally on display.
Now a touch of makeup. Mascara and foundation. A nice pretty pink lipstick with a touch of glitter. Hmm. The look really doesn't quite work with brown hair, but whatever. A rich dark lipstick. Yeah. All I'm missing is the black hair and pale skin, and I'd be a perfect goth. Ruby red lipstick. And a wild wavy look to my hair. No one will resist me.
And I'm nearly out the door when one last thought occurs to me.
Why panties? That's a preconception my modest self had.
I peel my panties off from under my skirt and tuck them back in my drawer. Ohh, now suddenly my heart is racing. I know that no one can see, but this feels incredibly exposing.
I'll have to be really careful when sitting down in class. This'll be exciting!
Hmm. I really shouldn't hide my butt plug in my panty drawer. Logically, I should be hiding it up my butt. That'll definitely make today sexy.
I glance at Cynthia. Sleeping soundly.
I face away from her to wet it with my mouth. Now I face toward her as I reach under my towel and press it in. Oh, that feels nice. It'll be a delicious little stretch to last me all day.
Time to get to class.
I wake up to my alarm. Despite how warm and inviting my bed is, I force myself to get up. I've only an hour before class.
After a quick shower, I turn to my closet and peruse my clothes.
I have work later today, waiting tables at a pub named Micky's. I hate it there. Every day I come out smelling like fried food and spilt beer, but the tips are good. If I keep it up, I might actually make a dent in my student loans.
Unfortunately, they require me to wear a skirt, along with either stockings or a panty hose. Since I won't have time to stop by my room to change after class, I need to at least wear the skirt now. It's my choice, but the company actually has a maximum skirt length. Sexist, but it does help with tips.
I rifle through my closet for my usual attire. It's a pleated khaki skirt which exactly meets the length requirement, along with a pantie hose.
On second thought, I put the khaki skirt down and dig through my closet a bit more. One of my lesser used skirts near the back. It's a white denim skirt with a frayed hem. It stops only a few inches below my panties. I normally only wear it to parties, but I suppose I am trying to pay for college. I'll just have to put up with a few lecherous stares through the day.
I must be crazy, but why not?
I lean back along the couch, resting my head on the arm, and I spread my legs. My pussy is before him. From the look of him, it's as though he were staring at the holy grail.
"Is this what you wanted to see?"
He nods, enthralled. Going a little further, I hook one leg over the back of the sofa. I'm spread obscenely now. I trace one finger along my slit. I don't know what the hell has come over me, but this such a rush! Nick's mouth is literally gaping!
After he's had his show, I start dressing. He makes no complaint.
"I'm just kidding," I say. Trying to hide my blush. What the hell was I about to do? "I guess I'll... I'll just figure it out."
"You had me intrigued for a moment."
"I'm sure I did, but dream on."
"Okay then." He packs up and leaves, and I'm left to finish the homework as best I can.
"Wait," I say. "What is it you're going to?"
"I'm meeting some guys at Psi Rho."
Ah, the geek house. "A party?"
"Just some guys getting together."
"Sure you can't be fashionably late?"
He gives a pained expression. "I'm really sorry. It's just I told them I'd be there."
"It wouldn't be long if you helped do the homework for me. I promise it would just be this one time. I'd be eternally grateful. Please. I'm desperate. Save me" I lean toward him and rest my head on his shoulder. It gives him a good view down my blouse. I've almost got him, I can feel it.
He sighs. Pauses. But then shakes his head. "No, I'm sorry. I'm not going to do your homework for you. If you can give me more notice next time, maybe I can help you more. Do you have time tomorrow morning?"
"I have to submit this by midnight."
"I'm sorry." He resumes packing his stuff.
Nick typed in the command. The code compiled and ran. The output was as expected. "And it's as easy as that."
"If you say so." The code is still lightyears beyond me, no matter how simple he says the problem is.
"You should be able to figure it out the rest of the code requirements from here." He moves to rise.
"I still don't get it."
He smiles helplessly. "I have somewhere I need to be soon."
"One more code requirement?" I blink my doe eyes, and I've got him, at least for one more. It's evil, I know, but I need to get this assignment done.
I sidle close as he works. He explains what has to be done. When I don't get it, he resorts to coding it himself. All the while, my legs rest against his khakis. When I lean to look over his shoulder, my chest presses against the back of his his Rick and Morty T-shirt. Ugh. This kid is such a nerd.
He finishes. It compiles. More unit tests pass. I'm a third of the way through, but this time he does get up from the couch.
"Look," he says. "You're going to have to do the rest on your own. I need to get going."
"You said you had an hour."
"I said I had to be somewhere in an hour."
"Are you coming back tonight?"
"Not until past midnight."
"But that's the submission deadline..."
"I'm sorry." He shrugs.
"Could you just... you know... do it? I know it wouldn't take you long."
"This is your homework. The point is for you to learn."
"It's a stupid requirement. I'm never going to need to know C++ after this class. When would it ever come up in Biomedical career?"
"I'm sorry..." Another shrug. As he packs his things, he gestures to his dorm suite. "Feel free to stay here as long as you need. My suite-mates won't be back until late. I'm supposed to be somewhere."
Great, so now I'm stuck. I guess I haven't been flirty enough with him lately. Well, a third of the programming points are done. If I can just finish a few more programming requirements, I can get a reasonable grade. Surely I can manage that. Most of the recursion part is already done.
"Nope," I say. "We're done."
"But we still have two more requirements," he says, almost petulantly.
"I think I can do them myself, but thank you for your help." I grab my clothes and start dressing.
"Okay," he says, resigned, "but if you want me to do your homework again, you take clothes off starting with the first requirement."
"This was a one time thing."
"Too bad," he says. "because I'll help you all you want next time."
I grin. "We'll see."
I finish the rest of the work at the library. It's nearly 12 by the time I submit, and I couldn't figure the last ones out. Maybe I should have just done the full monty for him. I'd already debased myself that much, why not?
I return to my dorm and get ready for bed.
Reluctantly, I take my hands from my lap, but I keep my thighs squeezed. After he ogles the black triangle of fur between my legs, I reach for my panties, careful to keep my thighs together.
"Hey. That's it?" he says.
I stick my tongue out at him. "I never said anything about giving you a show."
"Fine, fine."
I quickly dress.
But it is just a little skin after all. I need this work done.
I shrug innocently. "I might take my top off."
He stares openly at my cleavage. I teasingly pull my shirt and camisole open a little, exposing my bra.
"Okay then," he says. "Show me."
"Let's get my work done first." I tug my shirt closed.
"No. Strip first."
"Work first."
"How about for every requirement I do, you take something off?"
Nine requirements are left. I count my clothes: button-down, camisole, bra, jeans, panties, flat heels, socks. I'd be naked by the end, even if I count each sock and shoes separately. That's far more than I was planning to show, but I some of those last requirements aren't worth many points. Or maybe I can do them myself.
"Agreed," I say.
We work, or rather he does. For the first requirement that he finishes, I remove my top shirt after he finishes the first requirement. My shoe come next.
"Shoes come in pairs," he says.
I stick my tongue out. "We never agreed to that."
He studies the assignment, figuring out whether he can still get me naked. "Fine," he says, but he doesn't know I'm going to stop this before the end.
One shoe and two socks later, it comes time for me to remove something else. I glance at the suite door.
"Don't worry," he says. "My suite mates aren't coming back for hours."
"You better be right." My camisole comes off. Bra revealed.
He's rather distracted for the next requirement. It's actually rather cute watching how flustered he is. It might almost be worth going through with all of it just to see his reaction.
He finishes the seventh requirement and he looks at me expectantly.
My heart is racing as I take off my bra. Bare-breasted, I lean back on the couch and let him get his eyeful.
Excited to resume, he turns back to the homework.
He's already well on his way to finishing the next requirement. I should be stopping him now, but I don't. My breasts are just inches from him as I watch over his shoulder.
The code compiles. He looks at me expectantly.
Heart racing, I steel myself and tug off my jeans. I'm sitting on the couch in just my panties. Nick stares openly. He carefully keeps his laptop squarely in his lap.
"Come on," I urge him. "stop stalling." I'm anxious to get this over with. I'm not sure why I don't just stop this now. I should have stopped it before.
The next requirement only takes a few minutes. That assignment will give me full marks.
"Okay then," he says. "Let's see it all."
After one final glance at the door, I lift my butt off the couch and tug my panties down, but I keep my thighs clamped and cover myself quickly. My body is trembling with fright. My heart is about to burst from my chest, but as scared as I am, there's something thrilling about exposing myself like this.
"Well, come on," Nick says. "Show me."
"What?"
"You're covering yourself."
"I know."
"It doesn't count if I don't see."
"You're being a little bold, aren't you?"
"It's only fair."
"Thank you for your help," I say.
"Yeah, no problem. Let me know if you need any more homework assignments. I'd be happy to help again."
"I guess this can't be a one time thing?"
"Nope."
Great.
I submit the work from my dorm room and get ready for bed.
After Nick is gone, I stick around his suite until I finish the homework. It compiles... It gives the correct output for all the sample inputs, but those numbers are all under 100. Anything over that, and my program takes forever. I have no idea why. Hopefully the sample inputs are good enough, because I've been at it for several hours, and Nick's roommates are showing up.
The submission deadline is midnight.
I submit the homework to the course website and head back to my dorm.
If I'm just a little more blunt–maybe give him a little something more direct.
I unfasten a button on my shirt. He notices immediately.
"Please?" I bite my lower lip and unfasten another button.
"What... what are you doing?"
Another button. Just a little skin; that's all. I recline on the sofa. "If you could stay just long enough to let me finish, maybe I could show you something..."
"Are you serious?"
"I really need this homework done by midnight."
"So you're going to take your clothes off if I do your homework for you?"
It sounds humiliating when he puts it like that.
But hold on. If I did get something bigger, I could just use it privately, like when I sleep, and use my smaller one when I want to walk around with a secret.
I don't want anything labeled "beginner". That doesn't leave many options left. But ooh, this one is an intermediate trainer set. Fifteen dollars, and I get a silicone set of increasing size, and more elaborate heads. It's like a row of towers, a skyline of knobs and cones. And wow do they really get bigger. It'd take me forever to work through these.
Buy!
Now I'll put away my laptop and try to sleep before the regret kicks in.
I'm in bed, under the covers, legs up to my knees, and completely naked. Cynthia, as usual, is out with friends, or else I would not be working this butt plug in my ass.
I should have gotten sex toys years ago. This is fun! I push it in. My ass slowly caves around it, and then... gulp. Work it around. Twist and work it, then pull. Ass expands outward, and then... pop.
I smell the plug. Not great. I pop the plug in my mouth. Hmm. Not as bad as I was expecting. Not like last time. I push it back in.
I've had enough fun, however. Time to leave it in and get some sleep.
I wonder why not? I haven't pooed recently.
I push the plug back inside, work it around, pull it out, and taste it again. Still not that bad. I can't see the plug under the covers, but I'm sure it'd look clean. Let's try it again. In, out, and taste. Hmm. In, out, and taste.
I slide two fingers inside of myself. I've definitely got something mushy in there. I taste my fingers. Now that's a little pooey. Maybe it's because the plug is made of glass. Nothing sticks to it very well.
I put it up against my butt, and I push with my bowels while pushing in the with the plug. It slides in super easy. And out, and taste. There we go! I was starting to wonder. There must have been a smear on that one. Peanut butter texture, but bitter and foul.
In, out, taste. In, out, taste. It's getting stronger. In, out, taste.
Oh! That was a clump. Whatever. Just swallow it. It's foul, but not that foul. I should seriously stop this though. Plug goes in. Time to sleep.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
I push the plug in and snatch my laptop from beside the bed. Dark room, naked in bed, and now searching the internet for more sex toys. What has come over me?
These plugs have, that's what. Lots of fancy choices here, but it's not like I need more than one, unless I want to graduate to something bigger, but then I couldn't exactly wear it surreptitiously, could I? The other pages just have stuff like dildos.
Maybe I should stop myself before I waste any more money and just go to bed.
Ooh. It's pretty. And it's cold! That's going to be fun fitting it up my butt. Hold on. Lube was this plug. Ah, here it is. Not sure I need it though. This glass is really smooth.
Cynthia is in class! I'm all alone. Yes? No? Yes?
Yes! Doors locked. Skirt is off. Jeans are off. Should I lay on my back? Or get on my knees? Back. On the bed.
Okay. Wow. This things kind of big, but here we go. Hmm. Not perfectly smooth. Maybe... maybe I just need to wet it. With my mouth. That was naughty! It hardly fit past my teeth. Okay, here we go.
Gently... gently... This feels strange. Push, a little more. Relax. Aaaand it's in!
Oh my. This is a whole new level. I don't think I can go on unless I rub myself off right now. Wow, I'm wet. This is going to add a whole new dimension to my private time adventures.
Ohhh. That was a good little cum. I could feel my butt clenching it.
Oh. Shit. But what now? I need to wrap this up and get rid of the packaging. The buttplug is going to be dirty. I can't just wash it in the bathroom. In the sink? That other people use? I'll just have to—
That's a dirty, dirty thought. Kind of makes me tingle.
With a nice little pop, the plug is out. It smells ripe. Quick. Before I change my mind.
Bitter. Huh. That wasn't that bad at all. I run my tongue along the ridge, but the real mess was on the cone. I suck it like a lollipop.
Look at that. I just did something I've only ever seen in porn. That was really kinky. I wonder how long I can get away with doing that before I actually have to clean it?
Time will tell. I've got to get rid of this butt plug packaging before Cynthia gets back.
This path is a stub. Later on, this will lead to more content, but for now, it doesn't unlock anything else.
I wasn't planning to shower until tomorrow morning...
This is going to be an interesting twenty hours. Let's get my panties back on. And my skirt. And my jeans. There. No one can tell. Except me. Hoo. Every way I turn reminds me it's there. This is exciting! I'm going to be so distracted in class. And at the library. And the dining hall. And when talking with my friends like nothing is amiss.
If I keep thinking about it, I'm going to soak my panties under my skirt. I'm going to soak through my jeans, and that'll be a tell. Time to dispose of this buttplug packaging.
My new butt plug are here! One day shipping is amazing. The package is large, but thankfully unmarked, so getting it from the mailing room to my dorm is no problem.
Cynthia's not here. Good. Let's open this.
Fuck! This is huge. It's like a cone got pregnant with a tennis ball. There is no way I can fit this inside me. Not yet anyway.
I like its handle though. Instead of a flat knob like my glass one, it's like a punching dagger. I'll stab you with my butt-plug. And the handles curve forward too, so it should conform to my crotch.
This'll be fun, but definitely not for casual play, and it'll definitely need lube. I'll stash it with my linens. Now I've got to tear this inner box up into tiny pieces and throw it out far away so no one around here knows somebody bought a huge-ass butt plugs.
Hmm, but it wouldn't be that messy of a challenge, would it? There's actually something kind of hot about having manual control over my movements.
I push the plug back inside myself. There's already some pressure in my bowels. I'm going to be seeing that pressure in a new light now. A kinky light. I guess I'll find out the hard way what bathroom trips will be like.
Water warm. Shower kit up. Time to shower. I close the curtain, strip off my towel, and step under the water. That feels amazing after such a long day. Time to unwind.
...Of course, there's one piece of unfinished business.
The plug is still in my ass. With a constant pull, it pops out. Brown washes off in the piece. My butt feels a little slack. Yeah, I can slide two fingers right up inside of me like it's nothing. That's kind of nice actually.
But now I have another problem. Plug is out, and it's clean, but can I really just walk back to my dorm with it?
I can just hide it in my shower kit. That seems like the perfect place for it actually. ...unless I just start wearing it twenty-four-seven.
Nah. That might leave me stretched open. Not to mention it'll make bathroom trips a messy challenge. Shower kit it is then.
But then what's the harm of stretching? It just means anal sex easier, and God knows I've got a weird fascination with that.
I push the plug back inside myself. It feels snug, like it belongs. Maybe I should even be working my way up to larger and larger plugs, right? As long as I can still close my ass, what's the harm?
Or maybe that dream wasn't so wrong after all. Let's not be so timid about this. Maybe instead of pushing while on my back, I need to use my weight.
I prop the plug underneath me on the bed and squat over it.
Okay. This is painful. Just relax. And sink down. I'm at the ball now.
Ooh! Shooting pain. It didn't hurt much though. Like splitting a chapped lip. Push just a little harder. Yes, I can feel my ass slowly engulfing it. Just one final shove, and...
Ah! Shit! Ow, that hurt. That really stings. I definitely just split my ass open a little. But holy fuck. It's in! That tennis ball-sized ball is inside me.
I'd love to plunder myself with this plug all night, or even just remove it, but I think my ring now needs time to recover. So I guess it's staying in tonight. Maybe if my anal ring heals around the plug's base like this, it'll heal permanently wider. That's a thought.
I lie back down and try to ignore the sting in my ass.
...and then I play with myself. I do feel deliciously full after all.
I'm alone in bed at night, and Cynthia is out with friends. That's because she has friends and I don't. But that's okay. I've got this giant butt plug. But jeeze is it big. I've got it slathered in lube, but I can only get the cone part inside my ass. The big tennis-ball-sized bulb at the bottom still confounds me. If I push any harder...
Ow. No. Gotta take it slow. Don't to rush and tear something.
...like that dream I had. The pain was kind of nice there, but then that was a dream.
This plug won't defeat me. It may take several nights, but this plug is destined to go up my ass. I will be sleeping with it in one day.
Ohh! Ow. Getting out of bed just reminded me that I've got a tennis-ball sized plug in my ass. I get my towel and kit, and I walk to the bathroom. It's a challenge not to waddle. My bowels are cramped. And my ring still stings like a bitch.
Water on. Nice and warm.
This plug has to come out. Squatting down, I push with my bowels and pull the handle hard. "Hmm!! Owwww!" My butt is stretching outward. This really hurts! I'm splitting my ass all over again! But it's this or the ER. Just force it.
Ah Fuck. There it goes. Ohh, my poor ass. The shower water stings. I feel the rim and inspect my fingers. Blood. It was fun last night, but my ass definitely wasn't ready for something this big.
Except now it is, isn't it? Sure, I have to heal a bit, but I can take that massive plug up my ass. I'm that much closer to plundering my ass with this giant plug. It was worth the price of a little fissuring.
I wonder how much farther I could go if I'm willing to pay a steeper price?
I take the brush from its stand beside the toilet. Somebody's used it recently. The bristles are damp, and there's discolored water pooled in the stand. I don't think they used it like I'm about to use it.
I grip the handle right by the bristle and lift one knee to my chest, then I reach it between my legs and scrub.
Ooh! Those bristles are sharp. Let's keep trying. Fuck it's painful. My anal ring is really sensitive. And I'm really scraping my crack raw.
Fuck. Fuck. Can't stop though. Must finish. Looks like it's working. There's poop on the bristles. Just scrape, and scrape. This is torture.
I wonder what it would be like to do really scrub myself out like this, inside and out. I scoot my butt forward and point the brush right at my butthole. And I push.
Nope. Ow. Shit. There is no way in absolute hell I'm getting that in there. But I can still scrub.
There. Nice and clean.
—wipe up really quickly. A couple squares of toilet paper and my butt is ready for insertion.
I push the plug into myself. Wow. My little hole is way more sensitive now that's it's been scrubbed raw. It's kind of nice. The glass is wet, and cold. My juices make it slide in so easily though. I try to make sure all that mud poop goes back into my hole, and I mostly succeed. Oh well. At least the plug's knob is capping any mess.
However, that doesn't really change the fact that I just pooed without wiping, and I have no panties to cover up with, just my skirt. Aren't I a dirty girl?
However, when I pull up my panties, I can feel the unwiped mess of my dump cling to the fabric. I might have a stain once I get home. Who cares. My skirt covers it well enough.
Ooh. I just noticed that my butthole is tingling. That must be the vomit on the plug. Very interesting.
Now a quick flush, a hand and mouth rinse, and I'm headed back to serve plates of food.
I'm a walking health code violation, and I love it.
I am at Micky's waiting tables in a short skirt and a butt plug up my ass. I've had to poop on and off all day, but I can't hold it any longer.
My tables are all busy. No orders are coming. I sneak into the bathroom. It stinks as usual. I try not to let that turn me on.
Skirt and panties off, toilet seat up, and I sit right on the rim. and I sit on the toilet seat. Gotta get this plug out of me fast before I burst. Pull, and it's out.
Aaand the shit just slithers out of me. And I'm pissing. Ohhh this feels amazing. It's like I'm shedding pounds.
I feel so empty now. Guess the plug goes back in for another... oh wow, it's caked with shit. First I'll need to—
And it fits in so easily too. Maybe because I'm dripping wet. Hmm, it feels so cold.
I know that it's actually a germ haven. So I'm polluting my pussy a bit. Who cares? I kind of like the idea actually.
Wow. The plug really tingles. Oh! It's my vomit. I'm getting my stomach acid in my pussy. Probably terrible for my PH balance, but it definitely feels nice right now.
The plug doesn't have much texture though. I think I could pump this thing in my pussy all day and not get off. Not even rubbing my clit with it does much.
Now the plug is covered in my juices. That'll make reentry into my ass simple. How practical!
—rinse the plug off in the sink. I can just reach it without getting up from the toilet.
Hmm. That is poop I'm rinsing off where people normally wash their hands.
Nah, it's fine.
Plug is clean now. Now it's time to put it back in.
I pop it in my mouth before I have time for second thoughts.
Oh God! Second thoughts! What was I thinking? I've got poop in my mouth. A lot of poop. I'm about to vomit. Just swallow. Breathe. Breathe. Stop gagging. Breathe. Hoo. That was disgusting.
I try again.
Gag! Gag! Wretch. Okay. Take it easy. If I do it again, I'm definitely going to toss my cookies. I'll just—
I mean, it's a butt plug, right? It's supposed to be a little dirty. I'll just splash it around a bit.
Hmm. Nothing's sticking to it. I guess I'll need the shit at the bowls' bottom. I sink the plug down the bowl. The water is cold. My hand is submerged nearly to the wrist. Ah, but there's the poop. I scoop the plug through the dissolving logs like I'm scooping chocolate with a strawberry.
There we go. It's got a nice little dollop. It's soggy like mud, but I like it. Time to put the plug back in.
...because I don't quit, even if it's super gross. I stick the plug in my mouth, close up, and this time I don't plan to let up until I've sucked every bit of poop off this glass.
...unless I vomit!
Ah fuck. I tried to aim it. I succeed. Mostly. I just spewed between my legs and into the bowl. Kept most of it off my thighs, but not all. At least my blouse is clean.
And I vomit again. It's mostly just tea, stomach acid, and bits of the sandwich I had at lunch. I split, spit some more, and wipe my mouth. My teeth feel gritty.
I think, I'm throwing in the towel with sucking this plug clean. I'll just—
I reach between my legs and splash the plug around in the toilet water. Poop is at at the bottom, but the top water is just some thin vomit and a little pee. a little pee. So it's fine.
The poop clumps are coming off and dissolving, but it takes some real splashing. I've stirred up the water so much it's all murky brown now. At least now the plug looks clean. Not sanitary, obviously, but the clumps are gone. In fact, once I shake the water off, the plug looks so clean, that—
Wait. Shit. I haven't wiped yet, and I definitely need to. I'll just—
Shit.
Ijust shaved my whole bush off. I guess I wasn't paying attention. But sure, might as well finish the job and make it right. Man, shaving your labia is a pain.
There we go. I don't think I've had a complete smooth pussy since I was kid. This feels neat! I think I like the look too. Maybe I'll keep it like this for a while.
I stop showering for a moment and take a proper inspection of my goods. Looks like I am getting a little wild downstairs. It has been a few weeks since I last trimmed.
Shaving is such a pain. Why did society have to decide that smooth bald pussies are sexy? Do men find razor bumps equally as sexy? I think not. Frankly I only trim at all so I don't look like a wild woman.
Let's get this landscaping underway.
You know what? Screw it. I'm going to let it get as bushy as it wants. In the rare times that someone might actually see it, they can just deal with it. I'm going to wear my bush proudly.
I put away my shaving razor and finish showering.
This page is missing. Sorry. This version is only a Proof of Concept.
That was interesting. You just injected thoughts into her mind, and she went along for a while before coming to her senses.
It was those powerful emotions she'd just been feeling. It made her weak, and You strong, if only for a moment. If she felt even stronger emotions or desires, just how much control can You gain...?
var Arr = function(arrayString, delimiter) { Array.call(this); if (delimiter) { Object.defineProperty(this, 'delimiter', { writable: true, value: delimiter }); } Object.defineProperty(this, 'length', { writable: true, value: 0 }); parseString(this, arrayString, this.delimiter || defaultDelimiter); } module.exports = Arr; Arr.prototype = Object.create(Array.prototype); var defaultDelimiter = '.'; function define(name, value) { Object.defineProperty(Arr.prototype, name, { enumerable: false, writable: true, value: value}); }; Arr.parse = function(arrayString, delimiter) { return parseString([], arrayString, delimiter || defaultDelimiter); }; Arr.stringify = function(array, delimiter) { return Arr.prototype.toString.call(array, delimiter); } define('toString', function(delimiter) { delimiter = delimiter || this.delimiter || defaultDelimiter; var anyNonEmpty = false; var rtn = this.map(function(elem) { var str = elem.toString(); anyNonEmpty = anyNonEmpty || (str.length > 0); return escapeString(str, delimiter); }).join(delimiter); // Special case. // Arrays of empty strings need an extra dot or else they // lose one element when stringified and back if (!anyNonEmpty && this.length > 0) { rtn += delimiter; }; return rtn; }); define('empty', function() { return this.length == 0; }); define('last', function() { return this[this.length-1]; }); define('remove', function() { for(var i=0; i<arguments.length; i++) { var item = arguments[i]; var index = this.indexOf(item); if (index >= 0) { this.splice(index, 1); } } }); function escapeString(string, delimiter) { var str = ''; for (var i=0; i<string.length;i++) { var c = string.charAt(i); if (c=='~' || c==delimiter) { str = str+'~'+c; } else { str = str+c; } } return str; } function parseString(array, tagString, delimiter) { if (tagString) { var str = ''; var escaped = false; var anyNonEmpty = false; for (var i=0; i<tagString.length;i++) { var c = tagString.charAt(i); if (escaped) { str += c; anyNonEmpty = true; escaped = false; } else { if (c=='~') { escaped = true; } else if (c==delimiter) { array.push(str); str = ''; } else { anyNonEmpty = true; str += c; } } } // Special case. Don't add the last thing if we have only // empty strings. '' -> [], '.' -> [''] if (anyNonEmpty) { array.push(str); } } return array; }
// Those last two characters can be: -._~ var base64map ='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_!'; exports.to64 = function(number, bitsPerByte) { number = number || 0; bitsPerByte = bitsPerByte || 6; var rtnString = ''; var mask = (1 << bitsPerByte) - 1; while (number > 0) { rtnString = base64map[number & mask] + rtnString; number >>= bitsPerByte; } return rtnString || '0'; }; exports.parse64 = function(string, bitsPerByte) { var rtnNumber = 0; bitsPerByte = bitsPerByte || 6; for (var i = 0; i < string.length; i++) { rtnNumber <<= bitsPerByte; var bit = base64map.indexOf(string[i]); if (bit < 0) { throw new Error("base64 error: Illegal character: '"+string[i]+"'"); } rtnNumber += bit; } return rtnNumber; };
var base64 = require('./base64'); var BitField = function(string, bitsPerByte) { bitsPerByte = Math.max(1, Math.min(6, bitsPerByte || 6)); this.bitsPerByte = bitsPerByte; // 30 is the maximum number of bits. Not Number.MAX_SAFE_INTEGER or // whatever, because we're using bitwise operations, which convert // to int32. 31 bits and one sign bit. I use 30 to be safer. this.bytesPerChunk = Math.floor(30 / bitsPerByte); this.bitsPerChunk = bitsPerByte * this.bytesPerChunk; this.codeArray = this.unpack(string); } module.exports = BitField; BitField.prototype.unpack = function(string) { var stringCode = string || '0'; var codeArray = []; while (stringCode.length > this.bytesPerChunk) { var cutPoint = stringCode.length - this.bytesPerChunk; var endChunk = stringCode.substr(cutPoint); codeArray.push(this.numberfyChunk(endChunk)); stringCode = stringCode.substr(0, cutPoint); } codeArray.push(this.numberfyChunk(stringCode)); return codeArray; } BitField.prototype.toString = function() { var stringCode = ''; for (var i = this.codeArray.length-1; i >= 0; --i) { var strChunk = this.stringifyChunk(this.codeArray[i]); if (i != this.codeArray.length - 1) { strChunk = BitField.pad_number(strChunk, this.bytesPerChunk); } stringCode += strChunk } return stringCode.replace(/^0+(.)/, '$1'); }; BitField.prototype.is_set = function(index) { if (index < 0) { return false; } var chunkIndex = Math.floor(index / this.bitsPerChunk); var bitIndex = index % this.bitsPerChunk; return (((this.codeArray[chunkIndex] || 0) >> bitIndex) & 1) == 1; } BitField.prototype.isSet = BitField.prototype.is_set; BitField.prototype.set = function(index) { if (index >= 0) { var chunkIndex = Math.floor(index / this.bitsPerChunk); var bitIndex = index % this.bitsPerChunk; this.codeArray[chunkIndex] |= (1 << bitIndex); } } BitField.prototype.reset = function(index) { if (index >= 0) { var chunkIndex = Math.floor(index / this.bitsPerChunk); var bitIndex = index % this.bitsPerChunk; this.codeArray[chunkIndex] &= ~(1 << bitIndex); } }; BitField.prototype.stringifyChunk = function(number) { return base64.to64(number, this.bitsPerByte); } BitField.prototype.numberfyChunk = function(string) { return base64.parse64(string, this.bitsPerByte); } BitField.range = function(n, count) { return new Array(count+1).join(n); } BitField.pad_number = function(n, width) { n = n + ''; return n.length >= width ? n: BitField.range('0', width - n.length) + n; }
var utils = require('./utils'); var Page = require('./page'); var Link = require('./link'); function Book(document) { this.document = document; this.headers = makePages(this, 'cyoa-header'); this.footers = makePages(this, 'cyoa-footer'); var pages = this.document.getElementsByClassName('cyoa-page'); this.pages = Object.create(null); for (var l=0; l<pages.length; l++) { var page = new Page(this, pages[l]); this.pages[page.id] = page; if (page.isDefault()) { this.defaultPage = page; } } // Gets called whenever user clicks link. // Method style (link, event) this.onlinkclick = undefined; var links = this.document.getElementsByClassName('tc-tiddlylink'); var self = this; var clickFunc = function(event){processClickedLink(self, this, event);}; for (var l=0; l<links.length; l++) { links[l].onclick = clickFunc; } }; module.exports = Book; function processClickedLink(book, domLink, event) { if (book.onlinkclick) { book.onlinkclick(new Link(book, domLink), event); }; }; function makePages(book, className) { var elements = book.document.getElementsByClassName(className); var pages = []; for (var i = 0; i < elements.length; i++) { pages.push(new Page(book, elements[i])); } return pages; }; Book.prototype.getPage = function(title) { return this.pages[title]; }; Book.prototype.getPageOrDefault = function(title) { return this.getPage(title) || this.defaultPage; } Book.prototype.getStartPage = function() { var starts = this.document.getElementsByClassName('cyoa-start'); if (starts.length == 0) { throw 'No starting page exists.' } if (starts.length > 1) { var ids = [] for (var i = 0; i < starts.length; i++) { ids.push(starts[i].id); } utils.warn('There are multiple starting pages: '+ids); } // Maybe it should just return the element? return this.getPage(starts[0].id); }; function onClickedLink() { }; Book.prototype.closeAll = function() { var actives = this.document.getElementsByClassName('cyoa-active'); // We convert the HTMLCollection to a list before iterating through it // because the HTMLCOllection is live, and would update after EVERY // classList modification. var array = Array.prototype.slice.call(actives, 0) for (var i = 0; i < array.length; i++) { array[i].classList.toggle('cyoa-active', false); } };
var Tags = require('./tags'); function Conversation(conversationRecord) { Tags.apply(this, arguments); Object.defineProperty(this, 'stale', { writable: true, enumerable: false, value: true }); } module.exports = Conversation; Conversation.prototype = Object.create(Tags.prototype); function defineMethod(name, method) { Object.defineProperty(Conversation.prototype, name, { writable: true, value: method}); } defineMethod('toString', function() { return (this.stale && cyoa.return === '') ? '' : Tags.prototype.toString.call(this); }); defineMethod('renew', function() { this.stale = false; }); defineMethod('push', function() { Tags.prototype.push.apply(this, arguments); this.renew(); }); //TODO: I really don't think I want this function. It's just a mildly different 'has' defineMethod('done', function(page) { return (!page) || this.has(page); });
var state = require('./state').state; var Manager = require('./uriManager'); var utils = require('./utils'); var Page = require('./page'); var Book = require('./book'); function Core(window) { this.window = window; this.document = window.document; this.book = new Book(window.document); this.topPage = undefined; this.state = state; this.loadedLinks = []; this.afterPageCallback; this.manager = new Manager(this.window); var self = this; this.manager.onpageturn = function() {self.focus_on_page();}; this.book.onlinkclick = function(link, event) {self.clicked_link(link, event);}; this.document.addEventListener('keydown', function(e) { if (!e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey && e.key.match(/[0-9]/)) { var num = parseInt(e.key); if (num <= self.loadedLinks.length) { self.loadedLinks[num-1].element.onclick(e); } } }); }; module.exports = Core; Core.prototype.openBook = function() { // Close the start page, since it's open by default this.book.closeAll(); this.focus_on_page(); }; Core.prototype.focus_on_page = function() { var self = this; utils.clearErrors(this.document); utils.safeCall(null,function(){self.state.deserialize(self.manager.getState());}); this.book.closeAll(); this.loadedLinks = []; var currentPage = this.manager.getPage(); if (!currentPage) { currentPage = this.book.getStartPage().element.id; } this.topPage = currentPage; utils.log('Page: ' + currentPage); for (var i=0; i < this.book.headers.length; i++) { var header = this.book.headers[i]; if (header.test()) { header.execute(); } } var page = this.book.getPageOrDefault(currentPage); while (page) { if (page.active) { var msg = '\''+page.title+'\' is already loaded'; utils.error(new Error(msg)); } var pageLinks = page.execute(); this.loadedLinks = this.loadedLinks.concat(pageLinks); page = page.selectAppend(); // TODO: Make better callback system than this janky piece // of shit. if (this.afterPageCallback) { this.afterPageCallback(); } } for (var i=0; i < this.book.footers.length; i++) { var footer = this.book.footers[i]; if (footer.test()) { footer.execute(); } } this.document.body.scrollTop=this.document.documentElement.scrollTop=0; }; Core.prototype.afterPage = function(method) { this.afterPageCallback = method; }; Core.prototype.clicked_link = function(linkNode, event) { var threw = false; try { this.executeOnclickScripts(linkNode); } catch(err) { threw = true; } if (!threw) { utils.safeCall(this, function() { var newState; var href = this.resolveNextPage(linkNode, cyoa); if (href) { if (linkNode.leadsToMenu) { var oldState = this.manager.getState(); var newState = this.state.amend(oldState, {"cyoa.return": this.topPage}); } else { newState = this.state.serialize(); } this.manager.pushState(newState, href); } }); } event.preventDefault(); } Core.prototype.executeOnclickScripts = function(linkNode) { var allNodes = []; var title = this.topPage; // recurse up from where we clicked to find all enclosing cyoa states. while (linkNode) { title = linkNode.title; if (linkNode.isStateful) { allNodes.push(linkNode); } linkNode = linkNode.parent; } for (var i=allNodes.length-1; i>=0; i--) { allNodes[i].click(); } } Core.prototype.resolveNextPage = function(linkElement, cyoa) { var next = undefined; if (linkElement.returnsFromMenu) { next = cyoa['return']; cyoa['return'] = undefined; } if (!next) { next = linkElement.to; } return next? cyoa.utils.encodePage(next): undefined; }
exports.BitField = require("./bitfield"); exports.Conversation = require("./conversation"); exports.Tags = require("./tags"); exports.UriManager = require("./uriManager"); exports.State = require("./state").State; exports.Array = require("./array"); exports.Map = require("./map"); exports.Core = require("./core"); exports.Book = require("./book"); exports.Page = require("./page"); exports.Node = require("./node"); exports.Link = require("./link"); exports.Version = require("./version"); exports.utils = require("./utils"); exports.scriptor = require("./scriptor"); exports.hash = require("./hash").hash; exports.cyoa = cyoa; declare(exports.cyoa, "track", exports.BitField, {namespace: "cyoa", default: "0"}); declare(exports.cyoa, "convo", exports.Conversation, {namespace: "cyoa"}); declare(exports.cyoa, "stack", exports.Array, {namespace: "cyoa"}); declare(exports.cyoa, "log", String, {namespace: "cyoa"}); declare(exports.cyoa, "return", String, {namespace: "cyoa", default: undefined});
var primes=[56369, 34231, 64063, 14197, 32911, 61861, 28411, 263, 56569, 5749, 41659, 9649, 46499, 12853, 45343, 26513, 24481]; var prime = function(i) { return primes[i % primes.length]; } function get16bits(str, index) { var char = str.charCodeAt(index); var char2 = str.charCodeAt(index+1); return (char << 8) + char2; } // Common and quick hash function ripped from the internets exports.hash = function(str) { if (str.length <= 0) { return 0; } var hash = str.length, tmp; var len = 0; /* Main loop */ while (len <= str.length-4) { hash += get16bits(str, len); // The following line is my own addition to help increase cascading. hash = hash ^ (prime(hash) * prime(hash >> 5)); tmp = (get16bits(str, len+2) << 11) ^ hash; hash = (hash << 16) ^ tmp; hash += hash >> 11; len += 4; } /* Handle end cases */ switch (str.length-len) { case 3: hash += get16bits (str, len); hash ^= hash << 16; hash ^= str.charCodeAt(len+2) << 18; hash += hash >> 11; case 2: hash += get16bits (str, len); hash ^= hash << 11; hash += hash >> 17; case 1: hash += str.charCodeAt(len); hash ^= hash << 10; hash += hash >> 1; } /* Force "avalanching" of final 127 bits */ hash ^= hash << 3; hash += hash >> 5; hash ^= hash << 4; hash += hash >> 17; hash ^= hash << 25; hash += hash >> 6; return hash; };
/*\ Represents a cyoa link, which is a type of node. \*/ var Node = require('./node'); var utils = require('./utils'); var Link = function(book, element) { Node.apply(this, arguments); }; module.exports = Link; Link.prototype = Object.create(Node.prototype); /* Returns a title */ Object.defineProperty( Link.prototype, "to", { get: function() { var href = this.element.getAttribute('href'); href = utils.stripHash(href); // the href and uri use different encoding schemes, // so we got to decode/encode if (href) { return decodeURIComponent(href); } return undefined; } }); Object.defineProperty( Link.prototype, 'leadsToMenu', { get: function() { return this.element.classList.contains('cyoa-menu'); } }); Object.defineProperty( Link.prototype, 'returnsFromMenu', { get: function() { return this.element.classList.contains('cyoa-return'); } }); Link.prototype
var Map = function(mapString, delimiter) { parseString(this, mapString, this.delimiter || Map.defaultDelimiter); }; module.exports = Map; Map.prototype = Object.create(null); Map.defaultDelimiter = '.'; function define(name, value) { Object.defineProperty(Map.prototype, name, { enumerable: false, writable: true, value: value}); }; define('toString', function(delimiter) { delimiter = delimiter || Map.defaultDelimiter; var array = []; for (var key in this) { var str = this.stringifyPair(key, this[key], delimiter); array.push(str); } // Special case. // Arrays of empty strings need an extra dot or else they // lose one element when stringified and back if (array.length == 1 && array[0] === '') { return delimiter; } return array.join(delimiter); }); define('stringifyPair', function(key, value, delim) { var strKey = escapeString(key, delim); if (value === undefined) { return strKey; } return strKey +"("+ escapeString(value) +")"; }); function escapeString(string, delim) { if (string === null) { return "~n"; } string = string.toString(); var str = ''; for (var i=0; i < string.length; i++) { var c = string.charAt(i); if (c=='~' || c=='(' || c==')' || c==delim) { str = str+'~'+c; } else { str = str+c; } } return str; }; function parseString(map, mapString, delimiter) { if (mapString) { var key = '', nest = 0, value = undefined, char_key = function(c) { if (c=='~') { state = char_keyEscaped; } else if (c=='(') { value = ''; state = char_value; } else if (c==delimiter) { map[key] = undefined; key = ''; state = char_key; } else { key += c; } }, char_keyEscaped = function(c) { key += c; state = char_key; }, char_value = function(c) { if (c=='~') { state = char_valueEscaped; } else if (c==')') { state = char_expectEnd; } else { value += c; } }, char_valueEscaped = function(c) { if (c == 'n') { value = null; } else { value += c; } state = char_value; }, char_expectEnd = function(c) { if (c != delimiter) { throw new Error(`map parse error: expected '${delimiter}' after key '${key}'`); } map[key] = value; key = ''; value = undefined; state = char_key; }, state = char_key; for (var i=0; i<mapString.length;i++) { state(mapString.charAt(i)); } map[key] = value; } return map; };
/*\ Represents a cyoa node, <$cyoa>, or <$div class="cyoa-state"/> in compile. \*/ var utils = require('./utils'); var scriptor = require('./scriptor'); var hash = require('./hash'); var Node = function(book, element) { this.book = book; this.element = element; }; module.exports = Node; function getter(name, method) { Object.defineProperty( Node.prototype, name, { get: method }); } getter("id", function() { return utils.decodePage(this.element.id); } ); getter("dependList", function() { return this.getPageList('data-depend'); } ); getter("weight", function() { var weight = parseInt(this.element.getAttribute('data-weight') || 1); return weight < 0? 0: weight; } ); getter("isElse", function() { return this.element.classList.contains('cyoa-else'); } ); getter("isLink", function() { return this.element.classList.contains('tc-tiddlylink'); } ); getter("isStateful", function() { return this.element.classList.contains('cyoa-state'); } ); getter("parent", function() { var par = this.element.parentNode; if (!par || !par.classList) { return undefined; } if (par.classList.contains('cyoa-page')) { return this.book.getPage(par.id); } else { return new Node(this.book, par); } }); Object.defineProperty(Node.prototype, "active", { get: function() { return this.element.classList.contains('cyoa-active'); }, set: function(visible) { this.element.classList.toggle('cyoa-active', visible); } }); Node.prototype.getIndex = function() { var index = this.evalSnippet('index'); if (index !== undefined && typeof index !== "number") { return Math.abs(hash.hash(index)); } return index; }; /**This processes any snippets attached to the page, as well as processing * It's inner body. * * @param activeLinks: list which will be populated with list of active link * elements which should be keyed to hotkeys. If not * supplied, a fresh list is returned. * @returns: A list of link elements which should be keyed up to number keys. */ Node.prototype.execute = function(activeLinks) { // This will contain a list of all active links on the given page which // are clickable. This is so we can make them correspond to number keys. activeLinks = activeLinks || []; if (this.isLink) { // It's a link, and it's active. activeLinks.push(this); } if (this.isStateful) { this.active = true; var options = {arguments: {value: this.evalSnippet('set')}}; this.evalSnippet('do', options); if (this.element.hasAttribute('data-write')) { var write = this.evalSnippet('write'); this.element.innerHTML = write; } else { this.executeChildren(activeLinks); } this.evalSnippet('done', options); } return activeLinks; }; Node.prototype.executeChildren = function(activeLinks) { var index = this.getIndex(); if (index !== undefined) { var whiteList = []; this._walkTree(false, function(child) {whiteList.push(child);}); var weightedLength = whiteList.reduce(function(sum, node) { return sum + (node.isStateful? node.weight: 0); }, 0); index = index % weightedLength; for (var i = 0; i < whiteList.length; i++) { if (!whiteList[i].isStateful || (index >= 0 && (index -= whiteList[i].weight) < 0)) { whiteList[i].execute(activeLinks); } } } else { this._walkTree(false, function(child) { child.execute(activeLinks); }); } }; Node.prototype._walkTree = function(skipElse, callback) { var children = this.element.children; for (var i = 0; i < children.length; i++) { var child = new Node(this.book, children[i]); if (child.isStateful) { if (!skipElse || !child.isElse ) { if (child.test()) { callback(child); skipElse = true; } else { skipElse = false; } } } else { if (child.isLink) { // This is a non-state link in active text, // so it's a visible link. callback(child); } skipElse = child._walkTree(skipElse, callback); } } return skipElse; }; /** This tests a $cyoa element or a $cyoa-page to see if it's "truthy", * meaning all it's conditionals and dependencies evaulate to true and * this can be rendered. * Should have no side-effects. */ Node.prototype.test = function() { return recursiveTest(this, {}); }; /**This is private and wrapped by another method because * getting a bad arg can cause an infinit loop. */ function recursiveTest(node, visited) { if (!node.evalSnippet('if', {default: true})) { return false; } var pageList = node.dependList; if (pageList.length > 0) { // This works, even if the first element is a $cyoa widget. // That's because no elements visited after this will also // be a $cyoa widget, only pages with IDs. visited[node.title] = true; for (var i = 0; i < pageList.length; i++) { var otherPage = pageList[i]; if (!visited[otherPage]) { var page = node.book.getPage(otherPage); if (recursiveTest(page, visited)) { return true; } } } return false; } return true; }; Node.prototype.click = function() { this.evalSnippet('onclick', {rethrow: true}); }; /**Processes a layer of cyoa elements. Properly manages if/else branch chains. */ Node.prototype.evalSnippet = function(dataKey, options) { options = options || {} try { var rtn = options.default; var script = this.element.getAttribute('data-'+dataKey); if (script) { rtn = scriptor.evalAll(script, options.arguments); utils.log('Evaluating: '+dataKey+' ('+rtn+') ['+script+']'); } return rtn; } catch(err) { var message = err.message || err.toString(); err.message = '<i>'+dataKey+'</i> attribute failed ('+script+'): ' + message; utils.error(err); if (options.rethrow) { throw(err); } return false; } }; Node.prototype.getPageList = function(attribute) { var str = this.element.getAttribute(attribute); if (str) { return str.split(' ').map(utils.decodePage); } return []; };
/*\ Represents a cyoa page. \*/ var utils = require('./utils'); var Node = require('./node'); var Page = function(book, element) { Node.apply(this, arguments); }; module.exports = Page; Page.prototype = Object.create(Node.prototype); function getter(name, method) { Object.defineProperty(Page.prototype, name, { get: method }); }; getter("title", function() { return utils.decodePage(this.element.id); } ); getter("appendList", function() { return this.getPageList('data-append'); } ); getter("isLink", function() { return false; } ); getter("isStateful", function() { return true; } ); getter("parent", function() { return undefined; } ); Page.prototype.isDefault = function() { return this.element.classList.contains('cyoa-default'); }; /** Page uses data-index a little differently than an ordinary node. */ Page.prototype.getAppendIndex = Node.prototype.getIndex; Page.prototype.getIndex = function() { return undefined; }; /**By default, returns first appendPage whose conditions are true. * Takes an optional index method which selects the nth append page instead * of the first (index 0). Indexes larger than the available pages will be * modulo'ed down to size. */ Page.prototype.selectAppend = function(index) { if (index === undefined) { index = this.getAppendIndex() || 0; } if (index < 0) { throw new Error('Subpage index cannot be less than zero ('+index+')'); } var appendArray = this.appendList; var whiteList = []; var weightedLength = 0; for (var i = 0; i < appendArray.length; i++) { var title = appendArray[i]; var optPage = this.book.getPage(title); if (!optPage) { var msg = 'append page \''+title+'\' does not exist.'; utils.error(new Error(msg)); } else { if (optPage.test()) { weightedLength += optPage.weight; if (weightedLength > index) { return optPage; } whiteList.push([weightedLength, optPage]); } } } // Looks like we have to modulo this out index = index % weightedLength; for (var i = 0; i < whiteList.length; i++) { if (whiteList[i][0] > index) { return whiteList[i][1]; } } // All appends must have been 'false' return null; };
/*\ The scriptor module is responsible for all script evalation. This includes packing and unpacking scripts, and executing them safely. \*/ var StrArray = require('./array'); exports.pack = function(scripts) { if (typeof scripts === 'string') { scripts = [scripts]; } var reducedScripts = scripts.filter(function(script) { return script; }); if (reducedScripts.length == 0) { return null; } return StrArray.stringify(reducedScripts, ';'); }; exports.unpack = function(pack) { return StrArray.parse(pack, ';'); }; /**Evaluates a pack of javascript snippets. * * 'state' argument is a hash of variables that will be globally available during snippet execution. * returns an array of values corresponding to the returned values from each snippet. */ exports.eval = function(pack, state) { state = state || {}; var keys = Object.keys(state); keys.unshift('__script__'); keys.push('return eval(__script__)'); var caller = Function.apply(Object.create(Function.prototype), keys); var packArray = exports.unpack(pack); var args = [null]; for (var st in state) { args.push(state[st]); } var rtn = []; for (var i = 0; i < packArray.length; i++) { args[0] = packArray[i]; rtn.push(caller.apply(this, args)); } return rtn; }; exports.evalAll = function(pack, state) { return exports.eval(pack, state).reduce(function(a, b) { return a && b; }, true); }
var StrArray = require('./array'); var State = function() { this.registry = {}; } exports.State = State; exports.state = new State(); /** * Options: * 'default': This is a default value for when the uri query doesn't specify * a value. * 'namespace': This is an optional namespace to avoid name collision. * 'cyoa' is reserved. */ State.prototype.declare = function(destination, name, type, options) { options = options || {}; type = type || String; var namespace = options.namespace || ''; var def = (undefined !== options.default)? options.default: defaults(type); def = valueToString(def, type); var set = this.registry[name]=this.registry[name]|| Object.create(null); set[namespace] = { 'dest': destination, 'type': type, 'def': def}; } /** Deals with unique case where we want to alter a state string without * instantiating anything else. This is used for opening menus on a new * page without giving the existing state a chance to change. */ State.prototype.amend = function(stateString, statePairs) { var pack = parseStateString(stateString); pack = Object.assign(pack, statePairs); return stringifyStateHash(pack); }; State.prototype.deserialize = function(stateString) { var pack = parseStateString(stateString); this.unpack(pack); } State.prototype.unpack = function(stateTree) { for(var name in this.registry) { var set = this.registry[name]; for (var namespace in set) { var obj = set[namespace]; var path = getPath(namespace, name); var value = stateTree[path]; if (undefined === value) { value = obj.def; } obj.dest[name] = fromString(value, obj.type); } } } State.prototype.serialize = function () { var pack = this.pack(); return stringifyStateHash(pack); } State.prototype.pack = function() { var newState = {} for(var name in this.registry) { var set = this.registry[name]; for(var namespace in set) { var obj = set[namespace]; var path = getPath(namespace, name); var value = obj.dest[name]; if (undefined !== value) { value = valueToString(value, obj.type); if (value != obj.def) { newState[path] = value; } } } } return newState; } function parseStateString(stateString) { var array = stateString? stateString.split('&'): []; var pack = {}; for (var i = 0; i < array.length; i++) { var pair = array[i]; var index = pair.indexOf('='); var key = cyoa.utils.decodePage(pair.substring(0, index)); var val = cyoa.utils.decodePage(pair.substring(index+1)); pack[key] = val; } return pack; }; function stringifyStateHash(stateHash) { var array = []; for (var key in stateHash) { var encodedKey = cyoa.utils.encodePage(key); var encodedVal = cyoa.utils.encodePage(stateHash[key]); array.push(encodedKey+'='+encodedVal); } return array.join('&'); }; function valueToString(value, type) { if (Array.isArray(value)) { return StrArray.stringify(value); } if (Boolean === type) { var bool = parseBoolean(value); return bool ? "yes": "no"; } return value.toString(); }; var defaults = function(type) { switch (type) { case Boolean: return false; case Number: return '0'; case Array: return []; default: return ''; } } function parseBoolean(bool) { if (typeof bool === "string") { var low = bool.toLowerCase(); return low.length>0 && (low!='false') && (low!='0') && (low!='no'); } return !!bool }; var fromString = function(string, type) { switch (type) { case String: return string || ''; case Boolean: return parseBoolean(string); case Number: return parseFloat(string || '0'); case Array: return new StrArray.parse(string); default: return new type(string); } } function getPath(namespace, name) { var array = new StrArray(namespace); array.push(name); return array.toString(); }
var utils = require('./utils'); function UriManager(window) { this.window = window || {}; this.html5 = !!(window.history && window.history.pushState); this.onpageturn = null; var self = this; this.popstate = this.window.onpopstate = function() { if (self.onpageturn) { self.onpageturn(); } } } Object.defineProperty(UriManager.prototype, 'location', { get: function() { return this.window.location; } }); /* newPage: string of next page. Should be encoded. Should have '#' at start. newState: string that's Uri compliant. No preceding '?' */ UriManager.prototype.pushState = function(newState, newPage) { newPage = utils.stripHash(newPage); if (this.html5) { var newurl = this.currentUrl()+this.createHtml5Component(newPage, newState); var statePushed = false; try { this.window.history.pushState({path:newurl},'',newurl); statePushed = true; } catch (err) { // TODO: This should only be warning, plus it should be using the utils.warn method (that needs to be written); console.error(err); // This will probably occur due to Chrome's stupid security error. console.log('Error occurred using history.pushState. Switching to compatability mode.'); this.html5 = false; } if (statePushed) { this.popstate(); } } if (!this.html5) { var newurl = this.createHtml4Anchor(newPage, newState); // Downside. The location.search may still be populated from previous html5 browsing. It doesn't look like we can clean it up, so we just have to ignore it. this.location.hash = newurl; } } UriManager.prototype.getPage = function() { var page_id = this.location.hash; if (page_id.indexOf('#?') == 0) { // This is an html4 compatable uri. var secondQMark = page_id.indexOf('?', 2); if (secondQMark >= 0) { page_id = page_id.substr(secondQMark); } else { page_id = '' } } if (page_id) { page_id = page_id.substring(1); page_id = cyoa.utils.decodePage(page_id); } return page_id; } UriManager.prototype.getState = function() { var uriState; if (this.location.hash.indexOf('#?') == 0) { //This is an html4 compatiable uri. var hash = this.location.hash; var secondQMark = hash.indexOf('?', 2); if (secondQMark >= 0) { uriState = hash.slice(1, secondQMark); } else { uriState = hash.substr(1); } } else { uriState = this.location.search; } // Substr to get rid of the leading question mark return uriState.substr(1); } UriManager.prototype.createHtml5Component = function(page, state) { if(state.length > 0) { state = '?' + state; } return state + '#' + page; } UriManager.prototype.createHtml4Anchor = function(page, state) { var pagePrefix = '#'; if(state.length > 0) { state = '#?' + state; pagePrefix = '?'; } else { if (this.location.search.length > 0) { state = '#?'; pagePrefix = '?'; } } if (page.length > 0) { page = pagePrefix + page; } return state + page; } // http://...blah.html UriManager.prototype.currentUrl = function() { return this.location.protocol + '//' + this.location.host + this.location.pathname; } module.exports = UriManager;
exports.getSubpages = function(pageName, document) { var encodedName = cyoa.utils.encodePageForID(pageName); var page = document.getElementById(encodedName); var strList = page.getAttribute('data-append'); if (!strList) { return []; } return strList.split(' ').map(decodeURIComponent); }; exports.getMetaContent = function(name, doc) { doc = doc || document; var list = doc.getElementsByTagName('meta'); for (var i = 0; i < list.length; i++) { var meta = list[i]; if (meta.getAttribute('name') == name) { return meta.getAttribute('content'); } } return null; }; exports.stripHash = function(anchor) { if (anchor[0] == '#') { return anchor.slice(1); } return anchor; } exports.error = cyoa.boot.reportError; exports.decodePage = cyoa.utils.decodePage; exports.encodePage = cyoa.utils.encodePage; exports.encodePageForID = cyoa.utils.encodePageForID; exports.hop = cyoa.utils.hop = function(object, property) { return object ? Object.prototype.hasOwnProperty.call(object, property): false; }; exports.clearErrors = function(document) { var elem = document.getElementById('cyoa-error'); while (elem && elem.lastChild) { elem.removeChild(elem.lastChild); } } exports.log = function(message) { if (cyoa.log) { console.log(message); } } exports.safeCall = function(thisArg, method, defaultReturn) { var rtn = defaultReturn; try { rtn = method.call(thisArg); } catch(err) { exports.error(err); if (defaultReturn === undefined) { throw(err); } } return rtn; }
function Version(version) { var str = version || this.default; this.digits = str.split('.').map(function(a) { return parseInt(a); }); }; Version.prototype.default = '0'; Version.prototype.isDefault = function() { return this.toString() === this.default; }; Version.prototype.toString = function() { // Extra effort to cut trailing zeroes var rtnArray = []; var trailing = true; for (var i = this.digits.length-1; i >= 0; i--) { var d = this.digits[i]; if ((d && d != '0') || !trailing || i==0) { rtnArray.unshift(d || '0'); trailing = false; } } return rtnArray.join('.'); }; /** Checks if major versions are the same. */ Version.prototype.isCompatibleWith = function(other) { var o = new Version(other); return this.major == o.major; }; Version.prototype.equals = function(other) { var o = new Version(other); return this.toString() == o.toString(); }; Version.prototype.split = function() { return this.digits.slice(); }; Version.prototype.gt = function(other) { var o = new Version(other); if (this.equals(o)) { return false; } for (var i = 0; i < this.digits.length; i++) { if (o.digits.length === i) { return true; } if (this.digits[i] < o.digits[i]) { return false; } if (this.digits[i] > o.digits[i]) { return true; } } return false; }; Version.prototype.gte = function(other) { var o = new Version(other); return (this.equals(o) || this.gt(o)); }; Version.prototype.lt = function(other) { return (new Version(other).gt(this)); }; Version.prototype.lte = function(other) { return new Version(other).gte(this); }; Object.defineProperty(Version.prototype, 'major', { get: function() { return this.digits[0] || 0; }, set: function(digit) { this.digits[0] = digit; } }); Object.defineProperty(Version.prototype, 'minor', { get: function() { return this.digits[1] || 0; }, set: function(digit) { this.digits[1] = digit; } }); Object.defineProperty(Version.prototype, 'patch', { get: function() { return this.digits[2] || 0; }, set: function(digit) { this.digits[2] = digit; } }); module.exports = Version;
window.mid = Object.create(null); var cyoa = require("cyoa"); declare(window.mid, "day", Number); declare(window.mid, "time"); declare(window.mid, "short", cyoa.Array); mid.setSchedule = function(list) { var index = list.indexOf(mid.time); mid.available = list.slice(index+1); }; mid.isScheduled = function(event) { return mid.available.indexOf(event) >= 0; };