label gen_use_lollipop: $ lollipop_ITEM.owned -= 1 nar "You suck on the lollipop." random: gen "(Tastes like the childhood I've never had.)" ("base", xpos="far_left", ypos="head") gen "(I'd prefer to suck on a nipple, but this will have to do for now.)" ("grin", xpos="far_left", ypos="head") gen "(Baked beans flavoured...{w=0.4} Yummy...)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_chocolate: $ chocolate_ITEM.owned -= 1 nar "You unwrap the chocolate from the packaging..." random: block: nar "You eat the chocolate frog." gen "(This tastes nothing like frog...)" ("angry", xpos="far_left", ypos="head") block: nar "As you're about to eat the chocolate frog, it jumps out the window." gen "(...{w=0.4} Who thought that was a good idea?)" ("base", xpos="far_left", ypos="head") block: nar "You kiss the chocolate frog." gen "(...{w=0.4} Worth a shot.)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_plush_owl: $ plush_owl_ITEM.owned -= 1 play sound "sounds/woosh.ogg" nar "You throw the owl plush out the window." gen "Fly, you fool! Fly!" ("open", xpos="far_left", ypos="head") jump main_room_menu label gen_use_butterbeer: $ butterbeer_ITEM.owned -= 1 play sound "sounds/gulp.ogg" nar "You uncork the bottle and chug the butterbeer." random: gen "(Tasty...)" ("base", xpos="far_left", ypos="head") gen "(This tastes nothing like beer...)" ("base", xpos="far_left", ypos="head") gen "(*Mmm*...{w=0.4} Buttery...)" ("base", xpos="far_left", ypos="head") gen "(Nothing like a room temperature drink...)" ("base", xpos="far_left", ypos="head") gen "*Licks foam off lips*" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_science_mag: $ science_mag_ITEM.owned -= 1 play sound "sounds/pageflip.ogg" nar "You flip to a random page in the science magazine." random: gen "(How to remove sticky substances from hard to reach locations...{w=0.4} Is this targeted advertising?)" ("base", xpos="far_left", ypos="head") gen "(This magazine uses biscuits for targeted advertisements...{w=0.4} What does that even mean?)" ("base", xpos="far_left", ypos="head") gen "(How to make your own fizzy pop at home...{w=0.4} Is that some sort of euphemism?)" ("base", xpos="far_left", ypos="head") block: gen "(An article on wand care...{w=0.4} Polishing... Maintenance... Oiling...)" ("base", xpos="far_left", ypos="head") gen "(Doesn't appear to include anything that I'm not already doing...)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_girls_mag: $ girls_mag_ITEM.owned -= 1 play sound "sounds/pageflip.ogg" nar "You flip to a random page in the girls magazine." random: gen "(These makeup guides don't seem to include anything for blue skintones...)" ("base", xpos="far_left", ypos="head") gen "(So many advertisements... To think I paid for this thing...)" ("base", xpos="far_left", ypos="head") gen "(How to cast a spellbinding smile...)" ("base", xpos="far_left", ypos="head") gen "(An article about a wizard boy band called \"The Magic Touch\"...{w=0.4} I guess my trademark doesn't extend to this universe...)" ("base", xpos="far_left", ypos="head") block: gen "(How to pick the perfect wand...{w=0.4} Now we're talking!)" ("base", xpos="far_left", ypos="head") gen "(Oh...{w=0.4} Of course that's what they meant...)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_adult_mag: $ adult_mag_ITEM.owned -= 1 play sound "sounds/pageflip.ogg" nar "You flip to a random page in the adult magazine." random: gen "(Now that's a proper witch's outfit...)" ("grin", xpos="far_left", ypos="head") gen "(Nude Yoga? Isn't this pushing the limits even for an adult magazine?)" ("base", xpos="far_left", ypos="head") gen "(How the length of your beard could affect your sex life...)" ("base", xpos="far_left", ypos="head") gen "(Sheer lingerie review...{w=0.4} Intriguing...)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_porn_mag: $ porn_mag_ITEM.owned -= 1 play sound "sounds/pageflip.ogg" nar "You flip to a random page in the porn magazine." random: gen "(Such a rip-off... I could get the real deal at a whore house in Agrabah for the same price.)" ("angry", xpos="far_left", ypos="head") gen "(Now that's how you're supposed to use a wand...)" ("base", xpos="far_left", ypos="head") gen "(Penis enlargement potions... Side effects may include impotence...{w=0.4} Then what's the point?)" ("base", xpos="far_left", ypos="head") block: gen "(There's a hags section?)" ("base", xpos="far_left", ypos="head") play sound "sounds/pageflip.ogg" gen "(*Huh*... Never knew you could do that with a nose...)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_krum_poster: $ krum_poster_ITEM.owned -= 1 nar "You look at the Victor Krum poster with a tinge of contempt." random: gen "(This is the body type people of this world are into?)" ("base", xpos="far_left", ypos="head") gen "(*Hmph*...{w=0.4} I could totally get this jacked if I tried.)" ("base", xpos="far_left", ypos="head") gen "(Sellout...)" ("base", xpos="far_left", ypos="head") gen "(NTR? Not in my universe...)" ("base", xpos="far_left", ypos="head") nar "You crumple the poster into a ball and toss it out the window." jump main_room_menu label gen_use_sexy_lingerie: $ sexy_lingerie_ITEM.owned -= 1 nar "You unwrap and put on the sexy lingerie." random: gen "(My balls feels itchy now...)" ("base", xpos="far_left", ypos="head") nar "Your charisma score stays the same." gen "(If only there was a mirror, so I could decide if this is working for me or not...)" ("base", xpos="far_left", ypos="head") gen "(My love for sexy lingerie has been tainted.)" ("base", xpos="far_left", ypos="head") nar "The thought of Snape barging in and catching you runs across your mind." nar "You take off the lingerie and stuff them into an interdimensional rubbish bin, never to be seen again." jump main_room_menu label gen_use_sexy_stockings: $ sexy_stockings_ITEM.owned -= 1 random: block: nar "You remove the packaging and put on the sexy stockings." gen "(And here comes the sexual awakening...{w=0.4} Nope, nothing...)" ("base", xpos="far_left", ypos="head") nar "You take off the stockings and contemplate your life decisions." block: nar "You put the strength of the stockings fabric to the test." play sound "sounds/cloth_rip.ogg" pause 0.5 gen "(*Hmm*... Next time I should ask one of the girls to bend over while wearing a pair of these...)" ("base", xpos="far_left", ypos="head") block: nar "You take the stockings out and decide to rip some aesthetic holes in them." play sound "sounds/cloth_rip.ogg" gen "(A little bit around the knee...)" ("base", xpos="far_left", ypos="head") play sound "sounds/cloth_rip.ogg" gen "(Can't forget the big toe...)" ("base", xpos="far_left", ypos="head") gen "(And--)" ("base", xpos="far_left", ypos="head") play sound "sounds/cloth_rip.ogg" gen "(Dammit... Another pair ruined.)" ("base", xpos="far_left", ypos="head") block: nar "You sniff the stockings..." gen "*Ah*...{w=0.4} Nothing like the smell of fast fashion." ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_pink_condoms: $ pink_condoms_ITEM.owned -= 1 nar "You put on a condom." random: block if states.her.status.cumshot: jump hg_condom_balloon block if states.cho.status.cumshot: jump hg_condom_balloon block if states.lun.status.cumshot: jump hg_condom_balloon random: #Plays if none of the above meet their requriement gen "(Now isn't this a great fashion statement...)" ("base", xpos="far_left", ypos="head") gen "(Feels like a condom...)" ("base", xpos="far_left", ypos="head") gen "(This feels almost as tight as being trapped in my lamp...)" ("base", xpos="far_left", ypos="head") gen "(I'm not sure this is what they meant when they tell you to always be prepared...)" ("base", xpos="far_left", ypos="head") gen "(Safety first, my ass... I'm not feeling any more safe than before I put it on.)" ("base", xpos="far_left", ypos="head") gen "(If I cum inside this thing, it's just going to explode like a water balloon...)" ("base", xpos="far_left", ypos="head") gen "(Well, it's on...{w=0.4} So why am I not cumming?)" ("base", xpos="far_left", ypos="head") gen "(*Mmm*...{w=0.4} Tastes like strawberry.)" ("base", xpos="far_left", ypos="head") gen "(Wait, does it only go over the shaft or the balls as well? Meh... This is way too complicated for me.)" ("base", xpos="far_left", ypos="head") gen "(Too bad I'm not going to bed, or I could've used this in case I get a wet dream...)" ("base", xpos="far_left", ypos="head") gen "(So... This thing is supposed to prevent me from cumming?)" ("base", xpos="far_left", ypos="head") nar "You remove the condom and throw it out the window." jump main_room_menu label gen_use_vibrator: $ vibrator_ITEM.owned -= 1 gen "(*Hmm*... I suppose I could give it a test-run..." ("base", xpos="far_left", ypos="head") menu: "\"(Low setting should do it...)\"": nar "You put the vibrator against your balls." gen "(I feel like this isn't what this thing is designed for, but I ain't getting out of this seat.)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" play background "sounds/vibrator_low.ogg" gen "(That's nice... It's like music to my balls...)" ("base", xpos="far_left", ypos="head") nar "You can feel your cock starting to strain against the fabric of your pants." gen "... Might as well take it out." ("base", xpos="far_left", ypos="head") call gen_chibi("jerk_off_behind_desk") with d3 pause 1 gen "({bounce}*Ah*...{/bounce}{w=0.4} Yes...{w=0.4} Lick my balls, slut...)" ("base", xpos="far_left", ypos="head") call gen_chibi("cum_behind_desk") with hpunch pause 1 nar "You cum on the floor..." #Finished cumming call gen_chibi("cum_behind_desk_done") with d3 pause.2 gen "({bounce}*Ah*...{/bounce} I could get used to this...)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" stop background "\"(Medium setting sounds good...)\"": nar "You put the vibrator against your balls." gen "(I feel like this isn't what this thing is designed for, but I ain't getting out of this seat.)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" play background "sounds/vibrator_medium.ogg" gen "(Whoa... That's--{w=0.2} {shudder}*Ngh...{/shudder}{w=0.4} Way too good for what it's doing.)" ("base", xpos="far_left", ypos="head") nar "You can feel your cock starting to strain against the fabric of your pants." gen "(Must... Turn off... Before--)" ("base", xpos="far_left", ypos="head") gen "{shake}*Ngh*!{/shake}" ("base", xpos="far_left", ypos="head") gen "(Dammit...)" ("base", xpos="far_left", ypos="head") gen "(Well... at least it's on the inside of my pants...)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" stop background "\"(Go big or go home!)\"": nar "You put the vibrator against your balls." gen "(I feel like this isn't what this thing is designed for, but I ain't getting out of this seat.)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" play background "sounds/vibrator_high.ogg" gen "{shake}*Ngh*!{/shake}" ("base", xpos="far_left", ypos="head") gen "(Did I just...)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" stop background gen "(There's definitely some foul magic at play here...)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" play background "sounds/vibrator_high.ogg" gen "(...{w=0.4} Must've only had enough magic for one nut.)" ("base", xpos="far_left", ypos="head") play sound "sounds/click4.ogg" stop background "\"(Wait, what am I thinking!)\"": play sound "sounds/woosh.ogg" nar "You throw the vibrator out the window." gen "(... I suppose I could've kept it and given it to someone...)" ("base", xpos="far_left", ypos="head") jump main_room_menu play sound "sounds/sniff.ogg" gen "*Sniff*" ("base", xpos="far_left", ypos="head") gen "Eww... Ball sweat..." ("base", xpos="far_left", ypos="head") play sound "sounds/woosh.ogg" nar "You throw the vibrator out the window." jump main_room_menu label gen_use_anal_lube: $ anal_lube_ITEM.owned -= 1 random: block: nar "You take out the jar of anal lube and pop it open." gen "*Dips a finger in then tastes it*" ("base", xpos="far_left", ypos="head") gen "(Such a scam...{w=0.4} It doesn't taste like anal at all.)" ("base", xpos="far_left", ypos="head") block: nar "You try to take the lid off the jar of anal lube." gen "{shudder}*Ngh*!{/shudder}" ("base", xpos="far_left", ypos="head") gen "(Why is this cork...{w=0.4} So...{w=0.4} Slippery!)" ("base", xpos="far_left", ypos="head") play sound "sounds/drop.ogg" pause 0.5 gen "..." ("base", xpos="far_left", ypos="head") block: nar "You take out the jar of anal lube and pop it open." gen "(Alright then, let's see what it says on the instructions...)" ("base", xpos="far_left", ypos="head") gen "(Apply a generous amount to your penis...)" ("base", xpos="far_left", ypos="head") nar "You apply a generous amount of lube to your penis." gen "(Hold on... There's no other steps... How am I supposed to know what to do next?!)" ("angry", xpos="far_left", ypos="head") jump main_room_menu label gen_use_ballgag_and_cuffs: $ ballgag_and_cuffs_ITEM.owned -= 1 play sound "sounds/rustling_metal.ogg" nar "You put on the cuffs, locking them." random: gen "(Err...{w=0.4} Where's the key?)" ("base", xpos="far_left", ypos="head") gen "(Uhh...{w=0.4} I forgot what's my safeword.)" ("base", xpos="far_left", ypos="head") gen "(Probably should've read the instructions how to unlock these before putting them on...)" ("base", xpos="far_left", ypos="head") gen "(Well then... I suppose there's no other way...)" ("base", xpos="far_left", ypos="head") gen "{shudder}*Ngh*!{/shudder}" ("base", xpos="far_left", ypos="head") play sound "sounds/punch02.ogg" jump main_room_menu label gen_use_anal_plugs: $ anal_plugs_ITEM.owned -= 1 gen "(The male G-spot is up the ass, I suppose...)" ("base", xpos="far_left", ypos="head") menu: "-Test your anal sphincter-": pass "-Put the butt-plug away-": gen "(*Hmm*... Now where should I put it away...)" ("base", xpos="far_left", ypos="head") menu: "-Put it up your ass-": pass "-Just get rid of the thing already-": nar "You throw the butt-plug out the window..." gen "(Why did I just do that?)" ("base", xpos="far_left", ypos="head") gen "(*Hmm*... Some higher force must've willed it...)" ("base", xpos="far_left", ypos="head") jump main_room_menu nar "You roll down your pants and put the plug in your ass." play sound "sounds/gltch.ogg" gen "{shudder}*Ngh*!{/shudder}" ("angry", xpos="far_left", ypos="head") gen "..." ("base", xpos="far_left", ypos="head") gen "(This thing isn't even close to reaching the male G-spot!)" ("angry", xpos="far_left", ypos="head") play sound "sounds/gltch.ogg" gen "{shudder}*Ngh*!{/shudder}" ("angry", xpos="far_left", ypos="head") play sound "sounds/pop01.ogg" pause 0.5 gen "..." ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_thestral_strapon: $ testral_strapon_ITEM.owned -= 1 nar "You inspect the strap-on." random: gen "(I'm sure there are plenty of girls who love this type of thing...)" ("base", xpos="far_left", ypos="head") gen "(I have to be careful who I gift this to. Otherwise, they might get the wrong idea...)" ("base", xpos="far_left", ypos="head") gen "(Two cocks? Now that's not fair at all...)" ("base", xpos="far_left", ypos="head") gen "(Wait, what does this button do?)" ("base", xpos="far_left", ypos="head") nar "The moment you press the hidden button, the strap-on magically disappears from your grasp." gen "(... Must be some sort of post-nut clarity feature...)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_broom_2000: $ broom_2000_ITEM.owned -= 1 nar "You take out and inspect the broom." random: gen "(Typical! Even regular brooms aren't designed with the existence of testicles in mind, there's no way I'd be able to sit on this.)" ("base", xpos="far_left", ypos="head") gen "(I'd prefer a wild carpet ride.)" ("base", xpos="far_left", ypos="head") gen "(So that's how they stay in place while mid-air, riding these things...)" ("base", xpos="far_left", ypos="head") gen "(I wonder if it comes with a vibrate function or if that's an extra paid feature...)" ("base", xpos="far_left", ypos="head") gen "(This looks more suitable for someone who doesn't already have a piece of wood between their legs...)" ("base", xpos="far_left", ypos="head") nar "The broom suddenly takes off and flies out the window." random: gen "(... Someone will have some explaining to do.)" ("base", xpos="far_left", ypos="head") gen "(... I'm sure Snape can come up with an explanation for that... Thing...)" ("base", xpos="far_left", ypos="head") gen "(... Well, I guess some lucky witch just got their wish granted... You've done it again, Genie.)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_sexdoll: $ sexdoll_ITEM.owned -= 1 nar "You rummage through your inventory and take out the sex doll." random: gen "(Don't mind if I do...)" ("base", xpos="far_left", ypos="head") gen "(Oh my sweet Joanne...)" ("base", xpos="far_left", ypos="head") gen "(I missed you, babe...)" ("base", xpos="far_left", ypos="head") show screen blkfade with d3 play background "sounds/sexloopveryfast.ogg" fadein 1 gen "That's right, you just enjoy yourself... Let daddy do all the work..." ("base", xpos="far_left", ypos="head") gen "Yeah... I love that blank stare on your face, babe...{w=0.4} Keep doing it." ("base", xpos="far_left", ypos="head") gen "Get ready honey... I'm about to fill you up! And I don't mean with air!" ("base", xpos="far_left", ypos="head") gen "{shudder}*Ngh*!{/shudder}" ("base", xpos="far_left", ypos="head") gen "{shake}*Ah*!!!{/shake}" ("base", xpos="far_left", ypos="head") play sound "sounds/gltch.ogg" stop background fadeout 2 hide screen blkfade with d3 gen "{bounce}*Ah*...{/bounce} That was great, how was it for you?" ("base", xpos="far_left", ypos="head") gen "..." ("base", xpos="far_left", ypos="head") gen "*Puts on a girly voice* {color=#ff69b4}{i}Oh, that was great Genie, you're the best!{/i}{/color}" ("open", xpos="far_left", ypos="head") gen "You know it, sweetheart!" ("smile", xpos="far_left", ypos="head") gen "..." ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_anal_beads: $ anal_beads_ITEM.owned -= 1 nar "You put your finger through the loop and twirl the beads." gen "(One bead will make your day, seven will make your {i}hole weak{/i}...)" ("grin", xpos="far_left", ypos="head") play sound "sounds/woosh.ogg" nar "With a final twirl, you lose the grip on the beads and they fly out the window." gen "(Well... whoever finds them is going to enjoy them.)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_wine: $ wine_ITEM.owned -= 1 play sound "sounds/gulp.ogg" nar "You chug the bottle." random: gen "(There... Now I cannot be pestered into sharing.)" ("base", xpos="far_left", ypos="head") gen "({bounce}*Ah*...{/bounce} All gone... Now what?)" ("base", xpos="far_left", ypos="head") gen "(A bottle a day, keeps the existential dread at bay.)" ("base", xpos="far_left", ypos="head") jump main_room_menu label gen_use_firewhisky: $ firewhisky_ITEM.owned -= 1 play sound "sounds/gulp.ogg" nar "You chug the bottle." random: gen "(Bloody hell... The burn in my throat sure is spot-on for this brand.)" ("angry", xpos="far_left", ypos="head") gen "(In hindsight, I probably could've enjoyed it more if I didn't drink it all in one go...)" ("base", xpos="far_left", ypos="head") jump main_room_menu # CONDOM EVENTS label hg_condom_balloon: $ states.her.ev.condom_event = True gen "(... I suppose it would prevent a mess if I were to jerk off into this thing.)" ("base", xpos="far_left", ypos="head") #Genie jacks off call gen_chibi("jerk_off_behind_desk") with d3 pause 1 nar "You fantasise about Hermione." random: gen "(Ah, yes... Spread that pussy for me, you know-it-all whore!)" ("angry", xpos="far_left", ypos="head") gen "(That's it... Let me cover that bushy little head of yours in spunk, shall we?)" ("grin", xpos="far_left", ypos="head") gen "(Yes! Take my seed, you Gryffindor whore!)" ("angry", xpos="far_left", ypos="head") gen "(That's right, slut... I'll fuck your brains out so hard you'll forget how to read!)" ("angry", xpos="far_left", ypos="head") gen "(Yes! Feel the power of the most cunning linguist!)" ("angry", xpos="far_left", ypos="head") gen "(You may think you're clever, but I can read you like an open book... Now spread those pages for me!)" ("angry", xpos="far_left", ypos="head") gen "(Gryffindor's pride... Yes, you'll wear my cum as a badge of honour...)" ("grin", xpos="far_left", ypos="head") gen "(Such a bright witch you are... Although you'd look even brighter with your face glazed in cum.)" ("grin", xpos="far_left", ypos="head") gen "(Let's do a practical lesson, where we find out just how far down your throat my cock can reach...)" ("grin", xpos="far_left", ypos="head") gen "(I've heard you're hungry for knowledge... Let me teach you a few positions.)" ("grin", xpos="far_left", ypos="head") gen "{shudder}*Ngh*!{/shudder}" ("angry", xpos="far_left", ypos="head") nar "You cum inside the condom..." call gen_chibi("sit_behind_desk") with d3 pause 1 gen "(What do I do with this now?)" ("base", xpos="far_left", ypos="head") gen "..." ("smile", xpos="far_left", ypos="head") play sound "sounds/woosh.ogg" nar "You tie off the cum-filled condom in a knot and fling it out the window." gen "(Problem solved...)" ("grin", xpos="far_left", ypos="head") call blkfade pause 2 centered "{size=+7}{color=#cbcbcb}A couple of minutes later...{/color}{/size}" pause 1 call hide_blkfade # Equip Hermione default clothing. $ her_outfit_last.save() # Store current outfit. $ hermione.equip(her_outfit_default) $ hermione.set_cum(hair="heavy") call her_walk(action="enter", xpos="mid", ypos="base") gen "Ah... [name_hermione_genie], for what do I owe--" ("base", xpos="far_left", ypos="head") #Variants depending on level if states.her.tier >= 6: #Tier 6 (Sex level) her @ cheeks blush "" ("soft", "narrow", "base", "stare", xpos="mid", ypos="base",trans=d3) gen "-- The pleasure..." ("base", xpos="far_left", ypos="head") her @ cheeks blush "{bounce}*Ah*...{/bounce} Why...{w=0.4} Why would you do such a thing to me..." ("soft", "narrow", "base", "stare") gen "*Huh*?" ("base", xpos="far_left", ypos="head") her @ cheeks blush "Making me walk all the way up here with your cum in my hair..." ("open", "narrow", "base", "stare") gen "Oh... That..." ("base", xpos="far_left", ypos="head") her @ cheeks blush "I knew I said I'd do these favours for you in exchange for house points." ("open", "closed", "worried", "mid") her @ cheeks blush "But I thought you'd at least warn me..." ("soft", "narrow", "base", "down") gen "Just keeping you on your toes, [name_hermione_genie]... You know me." ("base", xpos="far_left", ypos="head") her @ cheeks blush "I see..." ("base", "narrow", "base", "down") $ states.env.gryffindor += 10 gen "Ten points to Gryffindor." ("base", xpos="far_left", ypos="head") her @ cheeks blush "Thank you, [name_genie_hermione]." ("open", "closed", "base", "mid") call her_walk(action="leave") elif states.her.tier >= 5: #Tier 5 (BJ level) her "" ("annoyed", "base", "angry", "mid", xpos="mid", ypos="base",trans=d3) gen "-- The pleasure..." ("base", xpos="far_left", ypos="head") her "Twenty house points please." ("open", "narrow", "annoyed", "mid") gen "*Huh*?" ("base", xpos="far_left", ypos="head") her "For ejaculating on my hair, I'd like twenty house points." ("open", "narrow", "base", "mid") gen "But I didn't--{w=0.2} Well, I suppose technically..." ("base", xpos="far_left", ypos="head") her "..." ("annoyed", "narrow", "base", "mid") gen "But surely this doesn't count!" ("base", xpos="far_left", ypos="head") her "Why wouldn't it?" ("annoyed", "narrow", "annoyed", "mid") gen "You know what... I don't really have an argument against it." ("base", xpos="far_left", ypos="head") $ states.env.gryffindor += 20 gen "Twenty points to Gryffindor." ("base", xpos="far_left", ypos="head") her "..." ("base", "closed", "annoyed", "mid") call her_walk(action="leave") gen "(Well, that went better than expected...)" ("base", xpos="far_left", ypos="head") else: #Tier 4 (HJ level) her "" ("angry", "base", "angry", "mid", xpos="mid", ypos="base",trans=d3) gen "Oh..." ("base", xpos="far_left", ypos="head") her "I knew it had to be you!" ("angry", "narrow", "angry", "mid") gen "I have absolutely no idea what you're talking about." ("base", xpos="far_left", ypos="head") her "My head is covered in semen!" ("scream", "closed", "angry", "mid") gen "Are you certain that's semen? Looks like owl droppings to me." ("base", xpos="far_left", ypos="head") her "I highly doubt that..." ("disgust", "narrow", "angry", "mid") gen "Well, I suppose I've got a better view of--" ("base", xpos="far_left", ypos="head") her "Owls do not drop their excrement in a condom!" ("scream", "base", "annoyed", "mid") gen "I'm pretty sure they don't deliver post either, but here we are." ("base", xpos="far_left", ypos="head") her "That's-- That's different... They were trained to do that..." ("angry", "narrow", "annoyed", "mid") gen "Then who's to say the owl wasn't trained to do their business in a condom." ("base", xpos="far_left", ypos="head") her "Why would anyone train an owl to do that?" ("disgust", "narrow", "annoyed", "mid") gen "I don't know... Hygienic reasons?" ("base", xpos="far_left", ypos="head") her "... Even if an owl was trained to do that, owls cannot knot!" ("open", "closed", "annoyed", "mid") gen "They can knot?" ("base", xpos="far_left", ypos="head") her "They cannot..." ("open", "closed", "angry", "mid") gen "I thought you said they can knot." ("base", xpos="far_left", ypos="head") her "What are you--{w=0.2} {shake}*Gah*!{/shake} I can't believe you!" ("angry", "narrow", "angry", "mid") gen "Can't, or won't?" ("grin", xpos="far_left", ypos="head") call her_walk(action="leave") play sound "sounds/door_down.ogg" with hpunch $ states.her.mood += 10 pause 1.0 gen "..." ("base", xpos="far_left", ypos="head") # Reset clothing. $ hermione.equip(her_outfit_last) $ hermione.set_cum(None) #TODO achievement popup jump main_room_menu label ll_condom_balloon: $ states.lun.ev.condom_event = True gen "(... I suppose it would prevent a mess if I were to jerk off into this thing.)" ("base", xpos="far_left", ypos="head") #Genie jacks off call gen_chibi("jerk_off_behind_desk") with d3 pause 1 nar "You fantasise about Luna." random: gen "(Yes... Bounce on my cock, you hot crazy bitch!)" ("angry", xpos="far_left", ypos="head") gen "(Once I'm done with you, it will be more than just nonsense flowing out of your mouth.)" ("grin", xpos="far_left", ypos="head") gen "(You better be careful girl... If you flick my wand the wrong way, it'll make you moan like a lunatic...)" ("grin", xpos="far_left", ypos="head") gen "(Yes... My cock will surely bring you back from lunacy to reality...)" ("grin", xpos="far_left", ypos="head") gen "(Damn... The wild look in those eyes of yours could easily make a man go wild...)" ("grin", xpos="far_left", ypos="head") gen "(Spread those legs! I'll fuck the silly out of you!)" ("angry", xpos="far_left", ypos="head") gen "{shudder}*Ngh*!{/shudder}" ("base", xpos="far_left", ypos="head") nar "You cum inside the condom..." call gen_chibi("sit_behind_desk") with d3 pause 1 gen "(What do I do with this now?)" ("base", xpos="far_left", ypos="head") gen "..." ("base", xpos="far_left", ypos="head") play sound "sounds/woosh.ogg" nar "You tie off the cum-filled condom in a knot and fling it out the window." gen "(Problem solved...)" ("base", xpos="far_left", ypos="head") call blkfade pause 2 centered "{size=+7}{color=#cbcbcb}A couple of minutes later...{/color}{/size}" pause 1 call hide_blkfade $ lun_outfit_last.save() #Save Luna clothing $ luna.equip(lun_outfit_default) #Equip Luna Default clothing $ luna.set_cum(face="heavy") call lun_walk(action="enter", xpos="mid", ypos="base") gen "Ah... [name_luna_genie], what can I do for--" ("base", xpos="far_left", ypos="head") lun "" ("base", "base", "base", "mid", xpos="mid", ypos="base",trans=d3) gen "-- You..." ("base", xpos="far_left", ypos="head") lun "I'd like to report that your latest experiment is a failure, [name_genie_luna]." ("open", "base", "base", "mid") gen "My experiment?" ("base", xpos="far_left", ypos="head") lun "The attempt to trap wrackspurts inside balloons, [name_genie_hermione]." ("open", "closed", "base", "mid") gen "Oh... That experiment..." ("base", xpos="far_left", ypos="head") lun "Yes, it appears that balloons aren't durable enough to contain large quantities of wracksputs..." ("open", "base", "base", "L") lun "Mere moments ago, one such wrackspurt balloon managed to escape through your window, only to drop onto my head and burst open." ("open", "base", "base", "L") gen "Right...{w=0.4} Well it's lucky it was your head and nobody else's. I might have got into a lot of trouble otherwise..." ("base", xpos="far_left", ypos="head") gen "Anything else to report?" ("base", xpos="far_left", ypos="head") lun "That's it, [name_genie_luna]." ("base", "base", "base", "mid") gen "... great work, I suppose." ("base", xpos="far_left", ypos="head") lun @ cheeks blush "*Mhm*... Thank you [name_genie_luna]." ("grin", "narrow", "base", "down") call lun_walk(action="leave") # Reset clothing. $ luna.equip(lun_outfit_last) $ luna.set_cum(None) #TODO achievement popup jump main_room_menu label cc_condom_balloon: $ states.cho.ev.condom_event = True gen "(... I suppose it would prevent a mess if I were to jerk off into this thing.)" ("base", xpos="far_left", ypos="head") #Genie jacks off call gen_chibi("jerk_off_behind_desk") with d3 pause 1 nar "You fantasise about Cho." random: gen "(After just a single taste, they always beg for more... You're no different, you Ravenclaw whore!)" ("angry", xpos="far_left", ypos="head") gen "(That's it... Cum for me, cum while my hard piece of wood rubs against your snitch!)" ("angry", xpos="far_left", ypos="head") gen "(*Mmm*... You better think again, if you believe the speed of your broomstick can compare to the speed of my pumping fingers in your cunny...)" ("base", xpos="far_left", ypos="head") gen "(Yes... My dick will take you higher than any broomstick ever could...)" ("base", xpos="far_left", ypos="head") gen "(Today's match has been cancelled due to slippery conditions!)" ("grin", xpos="far_left", ypos="head") gen "(Let's break some speed records together... You'll be the rider, I'll be the broomstick.)" ("grin", xpos="far_left", ypos="head") gen "{shudder}*Ngh*!{/shudder}" ("base", xpos="far_left", ypos="head") nar "You cum inside the condom..." call gen_chibi("sit_behind_desk") with d3 pause 1 gen "(What do I do with this now?)" ("base", xpos="far_left", ypos="head") gen "..." ("base", xpos="far_left", ypos="head") play sound "sounds/woosh.ogg" nar "You tie off the cum-filled condom in a knot and fling it out the window." gen "{i}He shoots, he scores...!{/i}" ("grin", xpos="far_left", ypos="head") play sound "sounds/squelch.ogg" femv "{shake}Aah!!{/shake}" gen "Cho?" ("base", xpos="far_left", ypos="head") if states.cho.tier >= 4 and not states.env.weather in ("blizzard", "storm", "snow", "rain"): $ cho.strip("clothes") $ cho.set_cum(face="heavy", hair="light") call cho_chibi("stand", xpos=441, ypos=400, flip=False) call cho_walk("desk", "base") with d3 gen "[name_cho_genie], what were you doing out there?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "Oh...{w=0.4} *Ehm*...{w=0.4} Nothing much. How about you?" ("angry", "narrow", "base", "down", xpos="mid", ypos="base", trans=d3) gen "..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "*Heh*...{w=0.4} *He-heh*." ("base", "narrow", "worried", "downR") if states.env.daytime: gen "Isn't it a bit risky for you to be doing this during the day?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "Very..." ("base", "narrow", "base", "downR") else: gen "Taking a little tour of the castle grounds this fine evening I presume..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "Yeah..." ("base", "narrow", "worried", "downR") gen "Completely naked..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "Y-Yeah..." ("base", "narrow", "base", "downR") gen "That's my girl." ("grin", xpos="far_left", ypos="head") gen "Well then, carry on..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "Thank you [name_genie_cho]..." ("base", "base", "base", "mid") else: $ cho_outfit_last.save() # Store current outfit. $ cho.equip(cho_outfit_default) $ cho.set_cum(face="heavy") "Female voice from outside the window" "{shake}*cough* *splutter*{/shake}" gen "[name_cho_genie], get in here at once!" ("base", xpos="far_left", ypos="head") call cho_chibi("stand", xpos=441, ypos=400, flip=False) call cho_walk("desk", "base") with d3 cho @ cheeks blush "*Ehm*...{w=0.4} This isn't what it looks like." ("disgust", "narrow", "base", "mid") gen "Then explain to me, what exactly were you doing outside my window?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "I was just--{w=0.2} Passing by...{w=0.4} Yes... Doing my usual rounds around the castle." ("disgust", "narrow", "base", "downR") cho @ cheeks blush "I must have told you about my... evening broom riding routine?" ("angry", "narrow", "base", "mid") gen "*Hmm*... Not that I can recall..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "Well, you're quite old, so I don't blame you for forgetting..." ("open", "narrow", "base", "down") gen "(Is she trying to gaslight me?)" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "I'll just be on my way then, shall--" ("disgust", "base", "base", "L") gen "Before you go, why don't you tell me what's that you've got on your face?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "*Huh*? My face? Isn't it your--" ("angry", "base", "base", "stare") gen "My what?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "I mean...{w=0.4} It's just my sunscreen! Yes, you need lots of it when you spend as much time outside as I do." ("base", "happyCl", "base", "mid") gen "Sunscreen, you say..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "That's right." ("base", "base", "base", "mid") if states.env.daytime: gen "*Hmm*..." ("base", xpos="far_left", ypos="head") if states.env.weather in ("blizzard", "storm", "snow", "rain"): gen "You are aware it's not sunny, right?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "...{w=0.4} It's also good for your skin..." ("disgust", "narrow", "base", "down") else: gen "You are aware that the sun went down quite some time ago?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "...{w=0.4} It's also good for your skin..." ("disgust", "narrow", "base", "down") gen "If you say so..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "(Phew! Saved...)" ("base", "narrow", "base", "R") gen "Although...{w=0.4} It appears you haven't rubbed it into your skin properly..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "I beg your pardon...?" ("disgust", "base", "base", "mid") gen "For sunscreen to be effective, you have to rub it thoroughly into your skin." ("grin", xpos="far_left", ypos="head") cho @ cheeks blush "Oh...{w=0.4} *Ehm*..." ("angry", "narrow", "base", "down") gen "Come here, and I'll--" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "No, I'll do it!" ("base", "base", "base", "mid") hide cho_main with d3 $ cho.set_cum(None) play sound "sounds/slick_01.ogg" pause 1 play sound "sounds/slick_02.ogg" pause 1 play sound "sounds/slick_03.ogg" pause 1 cho @ cheeks blush "There!" ("angry", "narrow", "base", "mid", xpos="mid", ypos="base", trans=d3) gen "*Huh*..." ("base", xpos="far_left", ypos="head") cho @ cheeks blush "Something wrong?" ("soft", "narrow", "base", "mid") gen "I suppose not..." ("grin", xpos="far_left", ypos="head") cho @ cheeks blush "Well then... If you'll excuse me... It's time for my daily shower." ("open", "closed", "base", "mid") gen "A shower? Right after you properly applied the sunscreen?" ("base", xpos="far_left", ypos="head") cho @ cheeks blush "...{w=0.4} It's waterproof." ("disgust", "narrow", "base", "down") gen "I'm sure it is, enjoy." ("grin", xpos="far_left", ypos="head") call cho_walk(xpos=437, ypos=400) hide cho_main with d3 pause .5 play sound "sounds/boing05.ogg" call cho_chibi("hide") # Reset clothing. if states.cho.tier >= 4: $ cho.wear("all") else: $ cho.equip(cho_outfit_last) #TODO achievement popup jump main_room_menu