Johnny28 8ae7db622b Jerk-off writing and Hermione cat outfit unlock
* PT.1 implementation of "Use Hermione's, Cho's or Luna's panties when jerking off".
* Removed "Locked" jerk-off menu option when you don't have any of the girls' panties, replaced it with a check inside the main option.
* Added Hermione's cat outfits as an incremental wardrobe unlock when progressing through potion event.
* Added more randomised Jerk-off writing.
2025-01-15 17:15:50 +01:00

790 lines
50 KiB
Plaintext

### Genie jerk off ###
label jerk_off:
$ states.jerked_off_times += 1
call gen_chibi("jerk_off_behind_desk")
with d3
pause 1
nar "You decide to spend some time by jerking off..."
gen "(How should I finish this thing?)" ("base", xpos="far_left", ypos="head")
menu .choice:
"-Think about Hermione!-" if not states.her.ev.panty_thief.acquired and states.her.unlocked:
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")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
nar "You cum on the floor..."
"-Use Hermione's panties!-" if states.her.unlocked:
if states.her.ev.panty_thief.acquired:
$ her_outfit_last.save()
$ hermione.equip(her_outfit_default)
$ hermione.strip("panties")
nar "You begin jerking off onto Hermione's panties."
gen "(*Hmm*... I wonder what Hermione would think if she saw me doing this to her panties...)" ("base", xpos="far_left", ypos="head")
menu:
"-She'd love it!-":
gen "(*Mmm*... That's right... I'm sure that little know-it-all would love it...)" ("base", xpos="far_left", ypos="head")
jump panty_jerk_hg_love
"-She'd hate it!-":
gen "(*Mmm*... Yes... I'm sure she'd hate it if she knew what was happening to her favourite underwear...)" ("base", xpos="far_left", ypos="head")
jump panty_jerk_hg_hate
else:
nar "You lack the item required for this option."
jump .choice
"-Think about Cho!-" if not states.cho.ev.panty_thief.acquired and states.cho.unlocked:
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")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
nar "You cum on the floor..."
"-Use Cho's panties!-" if states.cho.unlocked:
if states.cho.ev.panty_thief.acquired:
#TODO Girl doll could perhaps be slightly transparent
$ cho_outfit_last.save()
$ cho.equip(cho_outfit_default)
$ cho.strip("panties")
nar "You begin jerking off onto Cho's panties."
gen "(*Hmm*... I wonder what Cho would think if she saw me doing this to her panties...)" ("base", xpos="far_left", ypos="head")
menu:
"-She'd love it!-":
gen "(*Mmm*... That's right... I'm sure that little broomstick riding witch would love it...)" ("base", xpos="far_left", ypos="head")
jump panty_jerk_cc_love
"-She'd hate it!-":
gen "(*Mmm*... Yes... I'm sure she'd hate it if she knew what was happening to her favourite underwear...)" ("base", xpos="far_left", ypos="head")
jump panty_jerk_cc_hate
else:
nar "You lack the item required for this option."
jump .choice
"-Think about Luna!-" if not states.lun.ev.panty_thief.acquired and states.lun.unlocked:
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")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
nar "You cum on the floor..."
"-Use Luna's panties!-" if states.lun.unlocked:
if states.lun.ev.panty_thief.acquired:
#TODO Girl doll could perhaps be slightly transparent
$ lun_outfit_last.save()
$ luna.equip(lun_outfit_default)
$ luna.strip("panties")
nar "You begin jerking off onto Luna's panties."
gen "(*Hmm*... I wonder what Luna would think if she saw me doing this to her panties...)" ("base", xpos="far_left", ypos="head")
menu:
"-She'd love it!-":
gen "(*Mmm*... That's right... I'm sure that horny little witch would love it...)" ("base", xpos="far_left", ypos="head")
jump panty_jerk_ll_love
"-She'd hate it!-":
gen "(*Mmm*... Yes... I'm sure she'd hate it if she knew what was happening to her favourite underwear...)" ("base", xpos="far_left", ypos="head")
jump panty_jerk_ll_hate
else:
nar "You lack the item required for this option."
jump .choice
"-Think about Tonks!-" if states.ton.unlocked:
nar "You fantasise about Tonks."
random:
gen "(Now, let me show you how I use my genie magic!)" ("grin", xpos="far_left", ypos="head")
gen "({bounce}*Ah*...{/bounce} Yes... It's time for you to receive a magic facial, containing the power drawn from my balls!)" ("grin", xpos="far_left", ypos="head")
gen "(Yes... Teach me how a professional witch handles a wand...)" ("grin", xpos="far_left", ypos="head")
gen "(That's it... Let me teach you a lesson you'll never forget!)" ("grin", xpos="far_left", ypos="head")
gen "(That's it... Swish and flick my wand with your tongue.)" ("grin", xpos="far_left", ypos="head")
gen "(Praise my cock and I'll drown your sorrows in cum rather than Firewhisky...)" ("grin", xpos="far_left", ypos="head")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
nar "You cum on the floor..."
"-Think about Susan!-" if states.sus.unlocked:
nar "You fantasise about Susan."
random:
gen "(Yes... Make those fun-bags bounce for me, you big-titted harlot!)" ("angry", xpos="far_left", ypos="head")
gen "(That's it... Feel my magic power sliding down your tits!)" ("grin", xpos="far_left", ypos="head")
gen "(Don't be shy, girl... Spread that pussy wide...)" ("grin", xpos="far_left", ypos="head")
gen "(Yes... Now use those magical titties to make my cock disappear...)" ("grin", xpos="far_left", ypos="head")
gen "(Distracting titties... Yes, that's at least a week worth of detentions...)" ("grin", xpos="far_left", ypos="head")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
nar "You cum on the floor..."
"-Think about Astoria!-" if states.ast.unlocked:
nar "You fantasise about Astoria."
random:
gen "(Time for you to be put in your place, you bully! Get on top of this dick!)" ("grin", xpos="far_left", ypos="head")
gen "(Students don't usually ask for a spanking, but I'll make an exception...)" ("grin", xpos="far_left", ypos="head")
gen "(I've got the prefect liquid to wash that filthy mouth with.)" ("grin", xpos="far_left", ypos="head")
gen "(Time for you to get a taste of my medicine...)" ("grin", xpos="far_left", ypos="head")
gen "(Yes... Moan the most unforgivable of curses as I cum inside you...)" ("grin", xpos="far_left", ypos="head")
gen "(Let me show you how I cast the curse of uncontrollable wetness without using my hands...)" ("grin", xpos="far_left", ypos="head")
gen "(You must not have been spanked enough yet... Let me fix that...)" ("grin", xpos="far_left", ypos="head")
gen "(Let's break some rules together, shall we?)" ("grin", xpos="far_left", ypos="head")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
nar "You cum on the floor..."
"-Think about that one specific girl!-":
random:
block:
nar "You fantasise about Eden."
gen "({bounce}*Ah*...{/bounce} Yes... Sway that tail for me, you green-skinned beauty!)" ("base", xpos="far_left", ypos="head")
gen "(See you in a lifetime!)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a crafty woman..."
gen "(That's it... Poke me with those triangle-shaped titties...)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a princess of Hylian origins."
gen "(*Mmm*... Yes, that's a good princess...)" ("base", xpos="far_left", ypos="head")
gen "(I'm gonna...{w=0.4} {shake}HYAH!{/shake})" ("angry", xpos="far_left", ypos="head")
block:
nar "You fantasise about that nerdy girl who wears a turtleneck."
gen "(Oh yes... I'll solve the mystery of your wet panties for you...)" ("base", xpos="far_left", ypos="head")
gen "(Let's find out what's hiding underneath...)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a superheroine with the power of storms."
gen "(Your powers are nothing compared to the thunderous claps I'm about to unleash against your ass!)" ("angry", xpos="far_left", ypos="head")
block:
nar "You fantasise about Jasmine."
gen "(Princess... I'm coming--{w=0.4} {shudder}home!{/shudder})" ("angry", xpos="far_left", ypos="head")
block:
nar "You fantasise about an avatar... Not the blue one..."
gen "(What do you mean, you've never heard of cum-bending? Just give it a try...)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a damsel in distress."
gen "(I'll fuck your peachy behind so hard your castle will crumble under the weight of my orgasm!)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a British time-traveller with a pulse pistol."
gen "(Hold onto something love, because I'm about to teleport my dick inside you.)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a badass zombie slayer."
gen "(Oh yes... Once I've finished fucking your brains out, no zombie will come for you.)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a blonde woman wearing a power-suit."
gen "(I hope that suit of yours has stabilizers, because my meat roid's primed.)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a sexy android."
gen "(Once I get my hand on a Senzu Bean, I'll have you screaming for eight episodes straight!)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a busty Shinigami Lieutenant."
gen "(I'm gonna senbonzakura your petals until you turn hollow.)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about an android girl with a phat butt and a blindfold."
gen "(To cum, or not to cum, that is the question.)" ("base", xpos="far_left", ypos="head")
block:
nar "You fantasise about one of the witches of sin."
gen "(Once I'm done with you, all other witches will envy you instead.)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a red-haired trainer."
gen "(Now take my monster balls.)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a reporter in a yellow jumpsuit."
gen "(News just in, reporter drowns in cum.)" ("grin", xpos="far_left", ypos="head")
block:
nar "You fantasise about a crazy clown."
gen "(Time to apply your face paint!)" ("grin", 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
random: #Post orgasm dialogue
gen "(That's the stuff...)" ("grin", xpos="far_left", ypos="head")
gen "(There we go... One nut a day keeps the existential dread at bay...)" ("base", xpos="far_left", ypos="head")
block:
gen "(...)" ("base", xpos="far_left", ypos="head")
gen "(This was a pretty sweet jerk-off session...)" ("base", xpos="far_left", ypos="head")
gen "(Back to being productive!)" ("base", xpos="far_left", ypos="head")
block:
gen "({bounce}*Ah*...{/bounce} Nothing beats that moment of pure bliss...)" ("base", xpos="far_left", ypos="head")
gen "(Aaaand it's gone...)" ("base", xpos="far_left", ypos="head")
call gen_chibi("sit_behind_desk")
if states.jerked_off_times >= 10:
$ achievements.unlock("jerkoff")
if states.env.daytime:
jump night_start
else:
jump day_start
### Hermione's Panties ###
label panty_jerk_hg_love:
#Hermione doll appears with base clothing but without her panties
her "(...)" ("base", "base", "base", "mid")
her "(Oh my... So, you did plan to use my panties to jerk yourself off...)" ("base", "base", "base", "mid")
her "(Aren't I a lucky girl...)" ("base", "base", "base", "mid")
gen "(That's right... And once I'm finished with them, you can count yourself even luckier...)" ("base", xpos="far_left", ypos="head")
her "(*Giggles*)" ("base", "base", "base", "mid")
gen "(*Mmm*... Yes... Watch me, [name_hermione_genie]... Watch as I jerk off with your panties...)" ("base", xpos="far_left", ypos="head")
her "(It'll be my pleasure, [name_genie_hermione]...)" ("base", "base", "base", "mid")
gen "(Now why don't you be a good girl, and...)" ("base", xpos="far_left", ypos="head")
menu:
"\"Keep standing there, looking pretty!\"":
her "(Of course, [name_genie_hermione]... Anything for you...)" ("base", "base", "base", "mid")
her "(...)" ("base", "base", "base", "mid") #smiling
gen "(Yes... That's it...)" ("base", xpos="far_left", ypos="head")
gen "(*Mmm*... Good girl...)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
gen "(Keep watching me, as I jerk off with your panties...)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
gen "(Yes...)" ("base", xpos="far_left", ypos="head")
gen "(Now, talk dirty to me...)" ("base", xpos="far_left", ypos="head")
"\"Take off your top!\"" if states.her.status.show_tits or states.her.status.stripping:
her "(Of course, [name_genie_hermione]... Anything for you...)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("top")
gen "(Very good... Now your bra...)" ("base", xpos="far_left", ypos="head")
her "(Certainly...)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("bra")
gen "(Yes... Good girl...)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
gen "(Now, talk dirty to me...)" ("base", xpos="far_left", ypos="head")
"\"Take off your bottoms!\"" if states.her.status.show_pussy or states.her.status.stripping:
her "(Of course, [name_genie_hermione]... Anything for you...)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("bottom")
gen "(Yes... Show me that cute pussy...)" ("base", xpos="far_left", ypos="head")
her "(I'm glad you like it, [name_genie_hermione]...)" ("base", "base", "base", "mid")
gen "(Now, talk dirty to me...)" ("base", xpos="far_left", ypos="head")
"\"Take off your clothes!\"" if states.her.status.stripping:
her "(Of course, [name_genie_hermione]... Anything for you...)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("clothes")
her "(There you are, [name_genie_hermione]...)" ("base", "base", "base", "mid")
her "(Anything else I can do for you?)" ("base", "base", "base", "mid")
gen "(Yes... Talk dirty to me...)" ("base", xpos="far_left", ypos="head")
her "(*Giggles*... Certainly, [name_genie_hermione]...)" ("base", "base", "base", "mid")
her "(Please, keep rubbing that fat, juicy cock, [name_genie_hermione]...)" ("base", "base", "base", "mid")
her "(Release your delicious cum all over my panties...)" ("base", "base", "base", "mid")
her "(I... I beg of you...)" ("base", "base", "base", "mid")
gen "(Yes... That's it, slut...)" ("base", xpos="far_left", ypos="head")
gen "(Beg for it!)" ("base", xpos="far_left", ypos="head")
her "(Please, give it to me, [name_genie_hermione]!)" ("base", "base", "base", "mid")
her "(Please, give me your delicious cum!)" ("base", "base", "base", "mid")
gen "(Ngh--)" ("base", xpos="far_left", ypos="head")
her "(Yes! Faster, [name_genie_hermione! Faster!)" ("base", "base", "base", "mid")
her "(Coat my panties in your delicious cum!)" ("base", "base", "base", "mid")
jump hg_panties_jerk_off_end
label panty_jerk_hg_hate:
#Hermione doll appears with base clothing but without her panties
her "(What the--{w=0.2} What the hell are you doing with my panties!)" ("base", "base", "base", "mid")
gen "(*Mmm*... What does it look like I'm doing with them, girl?)" ("base", xpos="far_left", ypos="head")
her "(You--{w=0.2} You're jerking yourself off with them!)" ("base", "base", "base", "mid")
her "(How could you do this to me!)" ("base", "base", "base", "mid")
gen "(*Mmm*... Don't pretend like you didn't know this was coming...)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
gen "(You knew exactly what I was going to do the moment you handed them over to me... You little slut!)" ("base", xpos="far_left", ypos="head")
her "([name_genie_hermione]!)" ("base", "base", "base", "mid")
gen "(Quiet, slut!)" ("base", xpos="far_left", ypos="head")
gen "(Now serve your purpose, and...)" ("base", xpos="far_left", ypos="head")
menu:
"\"Be quiet!\"":
her "(What do you--)" ("base", "base", "base", "mid")
gen "(Quiet, slut!)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
gen "(Good...{w=0.4} Now just stand there looking pretty, so I may coat your panties in peace...)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
gen "(Yes... This is so much better than when you're actually here...)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
gen "(Although... A picture would probably serve the same purpose...)" ("base", xpos="far_left", ypos="head")
nar "You keep imagining the girl, watching you jerking off with her underwear..."
nar "An expression of anger and disdain paints her face, as if she were itching to give you a piece of her mind..."
gen "(Alright, you may speak...)" ("base", xpos="far_left", ypos="head")
her "(You--)" ("base", "base", "base", "mid")
gen "(If you talk dirty to me...)" ("base", xpos="far_left", ypos="head")
"\"Take off your top!\"" if states.her.status.show_tits or states.her.status.stripping:
her "*(Hmph*... Jerk.)" ("base", "base", "base", "mid")
gen "(Indeed I am...)" ("base", xpos="far_left", ypos="head")
her "(...)"("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("top")
gen "(Don't forget your--)" ("base", xpos="far_left", ypos="head")
her "(Shut up!)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("bra")
gen "(That's a good slut...)" ("base", xpos="far_left", ypos="head")
her "(*Grr*...)" ("base", "base", "base", "mid")
nar "You begin jerking your cock even faster, as you stare intently at Hermione's tits..."
gen "(Now, talk dirty to me...)" ("base", xpos="far_left", ypos="head")
"\"Take off your bottoms!\"" if states.her.status.show_pussy or states.her.status.stripping:
her "(W-What, are you out of your mind? I'm not--)" ("base", "base", "base", "mid")
gen "(Do it now!)" ("base", xpos="far_left", ypos="head")
her "(I am not going to give you even more to look at!)" ("base", "base", "base", "mid")
gen "(Suit yourself... The longer it takes, the messier the outcome...)" ("base", xpos="far_left", ypos="head")
her "(I hate you...)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("bottom")
gen "(Now, talk dirty to me...)" ("base", xpos="far_left", ypos="head")
"\"Take off your clothes!\"" if states.her.status.stripping:
her "(You want me to--)" ("base", "base", "base", "mid")
gen "(The longer you draw this out, the more sweat will get on your panties...)" ("base", xpos="far_left", ypos="head")
her "(...)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ hermione.strip("clothes")
gen "(Impressive...{w=0.4} Now, If only you could take your clothes off that quickly in real life...)" ("base", xpos="far_left", ypos="head")
her "(*Hmph*...)" ("base", "base", "base", "mid")
nar "You begin jerking your cock even faster, as you stare intently at Hermione's naked body..."
gen "(Now, talk dirty to me...)" ("base", xpos="far_left", ypos="head")
her "(I will not! You disgusting pig!)" ("base", "base", "base", "mid")
gen "(Yes...{w=0.4} That's right...)" ("base", xpos="far_left", ypos="head")
her "(I can't believe you're doing this... Taking my panties is one thing, but jerking off with them!)" ("base", "base", "base", "mid")
her "(You've ruined me! Before you started buying favours from me, I could never have imagined someone jerking off using a girl's panties!)" ("base", "base", "base", "mid")
her "(Even if I had... I would never, ever have imagined the headmaster--)" ("base", "base", "base", "mid")
jump hg_panties_jerk_off_end
label hg_panties_jerk_off_end:
gen "That's it!"("angry", xpos="far_left", ypos="head")
gen "Suck my almighty cock, you little whore!!!" ("angry", xpos="far_left", ypos="head")
gen "Ngh--{w=0.4} Aaaargh!!!" ("angry", xpos="far_left", ypos="head")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
her "([name_genie_hermione]!)" ("base", "base", "base", "mid")
#Slow fade of Hermione doll
hide hermione_main
with d8
#Finished cumming
call gen_chibi("cum_behind_desk_done")
with d3
pause.2
gen "*Ah*...{w=0.4} *Ah*...{w=0.4} *Ah*..." ("base", xpos="far_left", ypos="head")
gen "..." ("base", xpos="far_left", ypos="head")
random:
gen "(Well then...{w=0.4} Another pair of underwear ruined...)" ("base", xpos="far_left", ypos="head")
gen "(Genie one...{w=0.4} Panties, zero...)" ("base", xpos="far_left", ypos="head")
gen "(Looks like I ruined another pair of panties... Oh, well...)" ("base", xpos="far_left", ypos="head")
gen "(I suppose I better return these to Miss Granger...)" ("base", xpos="far_left", ypos="head")
# Reset Hermione clothing.
$ hermione.equip(her_outfit_last)
if states.jerked_off_times >= 10:
$ achievements.unlock("jerkoff")
if states.env.daytime:
jump night_start
else:
jump day_start
### Cho's Panties ###
label panty_jerk_cc_love:
#Cho doll appears with base clothing but without her panties
cho "(...)" ("base", "base", "base", "mid")
cho "(I see... I suppose I should've realised my panties would end up around your cock...)" ("base", "base", "base", "mid")
gen "(That's right... And when I'm done with them, you'll be wearing them every time you get on that broomstick of yours...)" ("base", xpos="far_left", ypos="head")
cho "(*Mmm*... Is that right...)" ("base", "base", "base", "mid")
gen "(Now then...)" ("base", xpos="far_left", ypos="head")
menu:
"\"Better not let you wait any longer...\"":
nar "You begin jerkin even faster, imagining the girl's reaction..."
cho "(Oh my... Look at you go...)" ("base", "base", "base", "mid")
gen "(*Ah*... Yes... Look at me... Watch, as your coach jerks off in front of you...)" ("base", xpos="far_left", ypos="head")
cho "(*Mmm*... Very impressive...)" ("base", "base", "base", "mid")
cho "(Why, my grip-strength could never compare to this...)" ("base", "base", "base", "mid")
cho "(Well, the grip of my hand at least...)" ("base", "base", "base", "mid")
gen "(Yes... That's it... Talk dirty to me...)" ("base", xpos="far_left", ypos="head")
cho "(Hurry, coach... Give me that hot, sticky load... Cover my panties...)" ("base", "base", "base", "mid")
"\"Show me those marvellous bludgers...\"": #Tell her to show her tits, she strips fully
cho "(Finally! An excuse to take off my clothes!)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ cho.strip("clothes")
cho "(There you go, coach!)" ("base", "base", "base", "mid")
gen "(I only told you to show off your tits though.)" ("base", xpos="far_left", ypos="head")
cho "(*Pfft*... Where's the fun in that?)" ("base", "base", "base", "mid")
cho "(This way you'll achieve your goal much more quickly...)" ("base", "base", "base", "mid")
gen "(If only every girl wanted their partner to finish quickly...)" ("base", xpos="far_left", ypos="head")
cho "(The faster you finish, the sooner I'll get my cum covered panties returned to me...)" ("base", "base", "base", "mid")
gen "(She certainly is perfect...)" ("base", xpos="far_left", ypos="head")
cho "(Why are you talking about me in third person? I'm right here!)" ("base", "base", "base", "mid")
gen "(Oh... Yes, you certainly are...)" ("base", xpos="far_left", ypos="head")
cho "(Now, give me your cum already!)" ("base", "base", "base", "mid")
"\"Show me that slippery snitch...\"": #Tell her to show her pussy, she strips fully
cho "(Right away, coach!)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ cho.strip("clothes")
cho "(There you are... One slippery snitch!)" ("base", "base", "base", "mid")
gen "(And a pair of bludgers, as well!)" ("base", xpos="far_left", ypos="head")
cho "(Of course! What's the point in stripping if I can't strip fully?" ("base", "base", "base", "mid")
gen "(You little show off!)" ("base", xpos="far_left", ypos="head")
cho "(Now, are you going to reward my panties with your hot load, or what?)" ("base", "base", "base", "mid")
gen "(*Mmm*... Yes, I'm getting there...)" ("base", xpos="far_left", ypos="head")
"\"Show me that athletic body...\"": #strip
cho "(Of course! I'll take any chance I can get to show off my body!)" ("base", "base", "base", "mid")
gen "(Oh yes, you certainly do...)" ("base", xpos="far_left", ypos="head")
play sound "sounds/cloth_sound3.ogg"
$ cho.strip("clothes")
cho "(There you go, coach...)" ("base", "base", "base", "mid")
cho "(Anything else I can do for you?)" ("base", "base", "base", "mid")
cho "(I'll do anything... Anything you want...)" ("base", "base", "base", "mid")
cho "(As long as you reward my panties with your sticky, hot... load...)" ("base", "base", "base", "mid")
gen "(*Ah*... Yes... Talk dirty to me...)" ("base", xpos="far_left", ypos="head")
cho "(Keep rubbing that hard, magnificent wood for me...)" ("base", "base", "base", "mid")
cho "(Give me your delicious cum...)" ("base", "base", "base", "mid")
cho "(I want to feel it on my pussy as I rub against my broomstick...)" ("base", "base", "base", "mid")
gen "(You dirty little whore... When I'm finished, you won't be able to win a single game without my cum between your legs...)" ("base", xpos="far_left", ypos="head")
cho "(Yes, coach! I need your cum!)" ("base", "base", "base", "mid")
cho "(I need to smell it before the game! To feel it against my skin!)" ("base", "base", "base", "mid")
cho "(I need to rub it on my pussy!)" ("base", "base", "base", "mid")
cho "(I need it...)" ("base", "base", "base", "mid")
cho "(To win!!)" ("base", "base", "base", "mid")
jump cc_panties_jerk_off_end
label panty_jerk_cc_hate:
#Cho doll appears with base clothing but without her panties
cho "(What the--{w=0.2} What the hell are you doing with my panties!)" ("base", "base", "base", "mid")
gen "(I'm giving my favourite quidditch player what she asked for...)" ("base", xpos="far_left", ypos="head")
cho "(What I asked--{w=0.2} I never asked you to jerk off using my favourite underwear!)" ("base", "base", "base", "mid")
gen "(*Hmm*... Yes, they certainly must be your favourite seeing how wet they were already...)" ("base", xpos="far_left", ypos="head")
cho "(I hate you...)" ("base", "base", "base", "mid")
gen "(Last time I checked, people generally refrain from handing their panties to someone they hate...)" ("base", xpos="far_left", ypos="head")
cho "(That's--)" ("base", "base", "base", "mid")
menu:
"\"Now, shut up so I can finish this!\"":
nar "You begin jerking your cock even faster, imagining Cho's reaction watching her favourite panties being covered in your impending load."
cho "(You're seriously expecting me to just stand here, watching you defile my panties?)" ("base", "base", "base", "mid")
gen "(Of course not... If I had expected that, I would've invited the real one.)" ("base", xpos="far_left", ypos="head")
gen "(Wait a minute... The real one handed me their panties...)" ("base", xpos="far_left", ypos="head")
gen "(Maybe she would've loved this after all!)" ("base", xpos="far_left", ypos="head")
cho "(Of course not...)" ("base", "base", "base", "mid")
gen "(So, you're saying that the real you isn't smart enough to realise what I was going to do to her panties?)" ("base", xpos="far_left", ypos="head")
cho "(...)" ("base", "base", "base", "mid")
gen "(Is she that stupid?)" ("base", xpos="far_left", ypos="head")
cho "(Of course I knew!)" ("base", "base", "base", "mid")
gen "(I knew it... You're all the same... You're all just cum-hungry sluts.)" ("base", xpos="far_left", ypos="head")
"\"Now, show me your tits!\"":
cho "(You want me to strip?!?)" ("base", "base", "base", "mid")
gen "(It'd certainly allow me to achieve my goal quicker...)" ("base", xpos="far_left", ypos="head")
cho "(...)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ cho.strip("clothes")
cho "(There... Is this what you wanted?)" ("base", "base", "base", "mid")
gen "(Your tits would've been enough, but if you can't stop yourself from showing off your body, I suppose it will do...)" ("base", xpos="far_left", ypos="head")
cho "(That's not--)" ("base", "base", "base", "mid")
gen "(Or perhaps you're just eager to receive my cum?!)" ("base", xpos="far_left", ypos="head")
cho "(I...)" ("base", "base", "base", "mid")
gen "(I knew it... You're all the same... You're all just cum-hungry sluts.)" ("base", xpos="far_left", ypos="head")
"\"Now, show me your pussy!\"":
cho "(My pussy?!)" ("base", "base", "base", "mid")
gen "(Oh, right... I should've said \"snitch\", shouldn't I?)" ("base", xpos="far_left", ypos="head")
cho "(I will not--)" ("base", "base", "base", "mid")
gen "(Fine... If you'd rather watch me jerk off all day...)" ("base", xpos="far_left", ypos="head")
play sound "sounds/cloth_sound3.ogg"
$ cho.strip("clothes")
gen "There you are... Now we're both getting what we wanted...)" ("base", xpos="far_left", ypos="head")
cho "*Pfft*... I have no idea what you're talking about...)" ("base", "base", "base", "mid")
gen "(I only told you to show your pussy, but you immediately stripped down completely.)" ("base", xpos="far_left", ypos="head")
cho "(You're despicable...)" ("base", "base", "base", "mid")
gen "(You're naked.)" ("base", xpos="far_left", ypos="head")
cho "(...{w} Why do I put up with you.)" ("base", "base", "base", "mid")
gen "(I tolerate and encourage your exhibitionistic tendencies.)" ("base", xpos="far_left", ypos="head")
cho "(I don't have exhibitionistic--)" ("base", "base", "base", "mid")
gen "(Well, I'd say there are only two probable possibilities why you'd strip down so eagerly...)" ("base", xpos="far_left", ypos="head")
cho "(Oh, yeah?)" ("base", "base", "base", "mid")
gen "(You either can't help but show off your body at any opportunity...)" ("base", xpos="far_left", ypos="head")
gen "(Or, you're just another cum-hungry whore!)" ("base", xpos="far_left", ypos="head")
cho "(I...)" ("base", "base", "base", "mid")
gen "(I knew it... You're all the same... You're all just cum-hungry whore.)" ("base", xpos="far_left", ypos="head")
"\"Now, strip!\"":
cho "(*Ugh*...{w=0.4} Fine!)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ cho.strip("clothes")
gen "(...)" ("base", xpos="far_left", ypos="head")
cho "(What?)" ("base", "base", "base", "mid")
gen "(Well, I suppose even if you were hating this, there's no way you'd resist an opportunity to show off your body...)" ("base", xpos="far_left", ypos="head")
cho "(Fuck you...)" ("base", "base", "base", "mid")
gen "(Giving in to your urges is nothing to be ashamed of...)" ("base", xpos="far_left", ypos="head")
cho "(...)" ("base", "base", "base", "mid")
gen "(Who am I kidding... You already know this...)" ("base", xpos="far_left", ypos="head")
gen "(Stripping down one day, guzzling cum the next, it's the circle of life...)" ("base", xpos="far_left", ypos="head")
cho "(That's not--)" ("base", "base", "base", "mid")
gen "(Don't correct me inside my own fantasy...)" ("base", xpos="far_left", ypos="head")
cho "(...)" ("base", "base", "base", "mid")
gen "(Yep... You're all just birds of a feather... Cum-hungry sluts.)" ("base", xpos="far_left", ypos="head")
gen "(I bet you can't wait to put your cum-soiled panties back on.)" ("base", xpos="far_left", ypos="head")
gen "(Imagine it...)" ("base", xpos="far_left", ypos="head")
gen "(The sensation of your broom pressing against your panties, which once used to signify your love for the game... Now only filling you with the insatiable desire to feel my cock deep inside you...)" ("base", xpos="far_left", ypos="head")
gen "(The fresh air, replaced by my intoxicating aroma...)" ("base", xpos="far_left", ypos="head")
gen "(Your head spinning, as you lose all focus on the game... As goal after goal is being scored by the opposing team...)" ("base", xpos="far_left", ypos="head")
cho "(No, that will never happen...)" ("base", "base", "base", "mid")
gen "(You'll never care about Quidditch ever again... The only thing you'll ever want is my cum!)" ("base", xpos="far_left", ypos="head")
cho "(No! I don't--{w=0.2} My panties!)" ("base", "base", "base", "mid")
jump cc_panties_jerk_off_end
label cc_panties_jerk_off_end:
gen "That's it!"
gen "Suck my almighty cock, you hot-headed slut!!!" ("angry", xpos="far_left", ypos="head")
gen "Ngh--{w=0.4} Aaaargh!!!" ("base", xpos="far_left", ypos="head")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
gen "*Ah*... There you go... Your prize..." ("base", xpos="far_left", ypos="head")
cho "(My... prize...)" ("base", "base", "base", "mid")
#Slow fade of Cho doll
hide cho_main
with d8
#Finished cumming
call gen_chibi("cum_behind_desk_done")
with d3
pause.2
random:
gen "(Well then...{w=0.4} Another pair of underwear ruined...)" ("base", xpos="far_left", ypos="head")
gen "(Genie one...{w=0.4} Panties, zero...)" ("base", xpos="far_left", ypos="head")
gen "(Looks like I ruined another pair of panties... Oh, well...)" ("base", xpos="far_left", ypos="head")
gen "(I suppose I better return these to Miss Chang...)" ("base", xpos="far_left", ypos="head")
# Reset Cho clothing.
$ cho.equip(cho_outfit_last)
if states.jerked_off_times >= 10:
$ achievements.unlock("jerkoff")
if states.env.daytime:
jump night_start
else:
jump day_start
### Luna's Panties ###
label panty_jerk_ll_love:
#Luna doll appears with base clothing but without her panties
lun "(...)" ("base", "base", "base", "mid")
lun "({wave}Oooooh...{/wave} So this is the research that you're doing.)" ("base", "base", "base", "mid")
lun "(How curious...)" ("base", "base", "base", "mid")
lun "(But why would you need my panties for this, I wonder...)" ("base", "base", "base", "mid")
lun "(Do they feel nice, wrapped around your wand?)" ("base", "base", "base", "mid")
gen "(*Mmm*... That's right...)" ("base", xpos="far_left", ypos="head")
menu:
"\"Talk dirty to me...\"":
lun "(When you touch me, my body gets increasingly sweaty...)" ("base", "base", "base", "mid")
lun "(Even more sweaty than when I have to go up the stairs to the astronomy tower on a warm day.)" ("base", "base", "base", "mid")
lun "(More than that time I had a heavy fever... You know the one...)" ("base", "base", "base", "mid")
lun "(I feel so dirty when you touch me... But in a good way...)" ("base", "base", "base", "mid")
gen "(Yes! That's exactly what she would say!)" ("base", xpos="far_left", ypos="head")
"\"Compliment my penis...\"":
random:
lun "(Your penis... Is very impressive when erect.)" ("base", "base", "base", "mid")
lun "(Your penis is magnificent, its length, its girth, its... rigidness.)" ("base", "base", "base", "mid")
lun "(I love your penis... Its rhythmical pulsing is like the beat of a magical drum.)" ("base", "base", "base", "mid")
lun "(Your penis is so big, it could reach the stars!)" ("base", "base", "base", "mid")
lun "(The veins running down your penis are like the intricate carvings on a wand, each one containing immense power.)" ("base", "base", "base", "mid")
gen "(Yes! That's exactly what she would say!)" ("base", xpos="far_left", ypos="head")
"\"Sing me a song...\"":
gen "(Wait, why would I imagine this...)" ("base", xpos="far_left", ypos="head")
lun "(Okay!)" ("base", "base", "base", "mid")
gen "(...)" ("base", xpos="far_left", ypos="head")
lun "(Stroke it up, stroke it down, this is no time, to frown!)" ("base", "base", "base", "mid")
lun "(Stroke it fast, or take it slow, do it well, and it will grow!)" ("base", "base", "base", "mid")
lun "(Rub it stiff, and make it twitch, while you're staring, at this witch!)" ("base", "base", "base", "mid")
lun "(Stroke it hard, like you don't care, until you spurt, everywhere!)" ("base", "base", "base", "mid")
gen "(*Ah*... That's it! My lyrical genius is making me rock solid!)" ("base", xpos="far_left", ypos="head")
"\"Cheer me on!\"":
lun "(You can do it, [name_genie_luna]!)" ("base", "base", "base", "mid")
lun "(Stroke it harder! Rub it faster!)" ("base", "base", "base", "mid")
lun "(Faster! Faster!)" ("base", "base", "base", "mid")
gen "{shake}*Nnnn-gh*!{/shake}" ("base", xpos="far_left", ypos="head")
lun "(*Mmm*... Look at you go!)" ("base", "base", "base", "mid")
lun "(I hope you don't mind if my panties are a little bit wet.)" ("base", "base", "base", "mid")
lun "(I've been fantasising about our research, and... Well...)" ("base", "base", "base", "mid")
gen "({bounce}*Ah*...{/bounce} Yes...)" ("base", xpos="far_left", ypos="head")
lun "(I'm glad my body can be of use to you...)" ("base", "base", "base", "mid")
lun "(I really can't thank you enough for what you've done for me...)" ("base", "base", "base", "mid")
lun "(We've spent so much time together, doing research...)" ("base", "base", "base", "mid")
lun "(You're the best headmaster a girl could ask for!)" ("base", "base", "base", "mid")
gen "(That's right... Show me more of that unfiltered sincerity...)" ("base", xpos="far_left", ypos="head")
lun "(I love it when you touch me between my legs!)" ("base", "base", "base", "mid")
if states.lun.status.gokkun:
lun "(The sensation of wrackspurts, pushing against the insides of my throat as you release them into my belly!)" ("base", "base", "base", "mid")
lun "(I just...{w=0.5} can't...{w=0.5} get enough of you!!!)" ("base", "base", "base", "mid")
else:
lun "(It's all I ever think about!)" ("base", "base", "base", "mid")
gen "({bounce}*Ah*...{/bounce} That's it!)" ("base", xpos="far_left", ypos="head")
play sound "sounds/cloth_sound3.ogg"
$ luna.strip("clothes")
lun "(Please! Look at me as you release them!)" ("base", "base", "base", "mid")
lun "(I want you to stare at my naked body!)" ("base", "base", "base", "mid")
lun "(Please! Use me to satiate your needs!)" ("base", "base", "base", "mid")
lun "(Use me, [name_genie_luna]! Use me!)" ("base", "base", "base", "mid")
lun "({shake}Please!{/shake})" ("base", "base", "base", "mid")
jump ll_panties_jerk_off_end
label panty_jerk_ll_hate:
#Luna doll appears with base clothing but without her panties
lun "(...)" ("base", "base", "base", "mid")
lun "(Whoa! What kind of research is this?!)" ("base", "base", "base", "mid")
gen "(The practical kind!)" ("base", xpos="far_left", ypos="head")
lun "(But... Those are my favourite panties...)" ("base", "base", "base", "mid")
lun "(They'll... You'll ruin them if you--)" ("base", "base", "base", "mid")
gen "(That's the plan.)" ("base", xpos="far_left", ypos="head")
lun "(I... No! Give them back to me!)" ("base", "base", "base", "mid")
gen "(Impossible... You're a figment of my imagination.)" ("base", xpos="far_left", ypos="head")
lun "(Fuck you! I hate you!)" ("base", "base", "base", "mid")
gen "(... No way she'd ever say that.)" ("base", xpos="far_left", ypos="head")
menu:
"\"Keep insulting me like that!\"":
lun "(I never would've let you borrow my panties, had I known you'd use them to jerk off!)" ("base", "base", "base", "mid")
lun "(You always stare at my body whenever you stroke yourself--)" ("base", "base", "base", "mid")
lun "(But here you are, not putting any thought into how I'd feel about you being more interested in my clothes than me!)" ("base", "base", "base", "mid")
gen "(*Ah*....{w=0.4} That's--{w=0.2} Wait, hold on...)" ("base", xpos="far_left", ypos="head")
"\"Stay in character!\"":
lun "(...)" ("base", "base", "base", "mid") #annoyed
lun "(If you release the spurts on my panties, it could attract a Machana!)" ("base", "base", "base", "mid") # A Machana is an obscure Aladdin TV series character.
gen "(*Ngh*! Now that's more like it!)" ("base", xpos="far_left", ypos="head")
lun "([name_genie_luna]! Stop!)" ("base", "base", "base", "mid")
gen "(Not a chance!)" ("base", xpos="far_left", ypos="head")
"\"Tell me how this makes you feel!\"":
lun "(I feel... I feel...)" ("base", "base", "base", "mid")
lun "(I feel jealous!)" ("base", "base", "base", "mid")
lun "(I thought I could be useful to you...)" ("base", "base", "base", "mid")
lun "(But if my panties are enough to achieve the same result...)" ("base", "base", "base", "mid")
lun "(Then what am I good for?)" ("base", "base", "base", "mid")
lun "(Why, [name_genie_luna]?)" ("base", "base", "base", "mid")
lun "(Why would you use my panties for this?)" ("base", "base", "base", "mid")
lun "(Is my body not enough?)" ("base", "base", "base", "mid")
gen "(*Mmm*...)" ("base", xpos="far_left", ypos="head")
lun "(Please, [name_genie_luna]!)" ("base", "base", "base", "mid")
"\"I bet you wish you were these panties!\"":
lun "(I do!)" ("base", "base", "base", "mid")
lun "(I want to watch, as you stroke magnificent staff!)" ("base", "base", "base", "mid")
lun "(To hear the sounds of your soft groans.)" ("base", "base", "base", "mid")
lun "(To savour the expression of pure bliss as you get closer and closer to erupting!)" ("base", "base", "base", "mid")
lun "(I want you to cover me in wrackspurts!)" ("base", "base", "base", "mid")
lun "(Please, [name_genie_luna]!)" ("base", "base", "base", "mid")
lun "(At least imagine my naked body when you're doing it!)" ("base", "base", "base", "mid")
play sound "sounds/cloth_sound3.ogg"
$ luna.strip("clothes")
lun "(Look at me! Me, [name_genie_luna]!)" ("base", "base", "base", "mid")
gen "(Damn it all!)" ("base", xpos="far_left", ypos="head")
jump ll_panties_jerk_off_end
label ll_panties_jerk_off_end:
gen "Ngh--{w=0.4} Aaaargh!!!" ("base", xpos="far_left", ypos="head")
call gen_chibi("cum_behind_desk")
with hpunch
pause 1
gen "*Ah*... That was..." ("base", xpos="far_left", ypos="head")
lun "(You did it...)" ("base", "base", "base", "mid") #smile
#Slow fade of Luna doll
hide luna_main
with d8
#Finished cumming
call gen_chibi("cum_behind_desk_done")
with d3
pause.2
random:
gen "(It's a shame, really. These were such nice panties.)" ("base", xpos="far_left", ypos="head")
gen "(Genie one...{w=0.4} Panties, zero...)" ("base", xpos="far_left", ypos="head")
gen "(Looks like I ruined another pair of panties... Oh, well...)" ("base", xpos="far_left", ypos="head")
gen "(I suppose I better return these to Miss Lovegood...)" ("base", xpos="far_left", ypos="head")
# Reset Luna clothing.
$ luna.equip(lun_outfit_last)
if states.jerked_off_times >= 10:
$ achievements.unlock("jerkoff")
if states.env.daytime:
jump night_start
else:
jump day_start