From 57a5c4b2faaee64efa6f27b9f8b89dc3448cbdc1 Mon Sep 17 00:00:00 2001 From: Johnny28 Date: Mon, 4 Mar 2024 17:39:09 +0100 Subject: [PATCH] Luna Talk to me - First implementation, vars, writing checks * First implementation of Luna T4 "Talk to me" favour. * Added writing checks and vars. * Minor adjustments. --- .../luna/events/favors/inspect_her_body.rpy | 2 +- .../characters/luna/events/favors/suck_it.rpy | 12 +- .../luna/events/favors/talk_to_me.rpy | 543 +++++++++++++++++- game/scripts/characters/luna/favors.rpy | 5 +- game/scripts/characters/luna/vars.rpy | 4 + 5 files changed, 553 insertions(+), 13 deletions(-) diff --git a/game/scripts/characters/luna/events/favors/inspect_her_body.rpy b/game/scripts/characters/luna/events/favors/inspect_her_body.rpy index d6c44fe1..2ff4cde4 100644 --- a/game/scripts/characters/luna/events/favors/inspect_her_body.rpy +++ b/game/scripts/characters/luna/events/favors/inspect_her_body.rpy @@ -2040,8 +2040,8 @@ label ll_pf_inspect_T4_E1_repeat: lun "Could you perhaps assist me with testing the sensitivity of my nipples?" gen "Certainly..." - with hpunch show lun_inspect arms_touch_tits eyebrows_angry eyes_wide_stare mouth_open as cg with d3 + with hpunch nar "You give Luna's nipples a quick pinch, and in return, you feel her ass clench around your cock." lun "*Ngh*!" diff --git a/game/scripts/characters/luna/events/favors/suck_it.rpy b/game/scripts/characters/luna/events/favors/suck_it.rpy index b2a8819f..c8d92f75 100644 --- a/game/scripts/characters/luna/events/favors/suck_it.rpy +++ b/game/scripts/characters/luna/events/favors/suck_it.rpy @@ -1,4 +1,4 @@ -#TODO Add event checks for the existing writing variants once the other T4 Luna events are added + ### Luna Suck It ### @@ -48,6 +48,8 @@ label ll_pf_blowjob_end: label ll_pf_blowjob_T4_E1_intro: + $ states.lun.ev.ll_pf_blowjob_T4_E1_intro_complete = True + call ll_pf_blowjob gen "I think it's about time we try a new technique to deal with those wankspurs." ("base", xpos="far_left", ypos="head") @@ -96,9 +98,9 @@ label ll_pf_blowjob_T4_E1_intro: lun "..." ("soft", "wide", "base", "stare") gen "Out of my cock." ("base", xpos="far_left", ypos="head") - #TODO if you've not played label ll_pf_talk_T4_E1_repeat: - #lun "..." ("base", "base", "base", "mid") - #gen "*Sigh*... My Penis... [name_luna_genie]." ("base", xpos="far_left", ypos="head") + if not states.lun.ev.ll_pf_talk_T4_E1_repeat_complete: + lun "..." ("soft", "wide", "base", "stare") + gen "*Sigh*...{w=0.4} My Penis... [name_luna_genie]." ("base", xpos="far_left", ypos="head") lun "Using \"Accio\"?" ("soft", "wide", "base", "mid") gen "Using your mouth..." ("base", xpos="far_left", ypos="head") @@ -500,6 +502,8 @@ label ll_pf_blowjob_T4_E1_intro: label ll_pf_blowjob_T4_E2_intro: + $ states.lun.ev.ll_pf_blowjob_T4_E2_intro_complete = True + call ll_pf_blowjob gen "I've got another theory that I'd like us to try today, [name_luna_genie]." ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/luna/events/favors/talk_to_me.rpy b/game/scripts/characters/luna/events/favors/talk_to_me.rpy index 2f9e5080..19211ff9 100644 --- a/game/scripts/characters/luna/events/favors/talk_to_me.rpy +++ b/game/scripts/characters/luna/events/favors/talk_to_me.rpy @@ -48,7 +48,7 @@ label ll_pf_talk_T1_E1_intro: $ states.gen.masturbating = False gen "So... About the infestation..." ("base", xpos="far_left", ypos="head") - lun "*Sniff* *Sniff*" ("soft", "narrow", "base", "L") + lun "*Sniff* *Sniff*" ("soft", "narrow", "base", "L", xpos="base", ypos="base", trans=d3) gen "[name_luna_genie]?" ("base", xpos="far_left", ypos="head") lun "*Sniff* *Sniff*" ("soft", "base", "raised", "down") gen "Are you alright?" ("base", xpos="far_left", ypos="head") @@ -182,7 +182,7 @@ label ll_pf_talk_T1_E2_intro: call ll_pf_talk gen "Let's continue with your training." ("base", xpos="far_left", ypos="head") - lun "My training, [name_genie_luna]?" ("soft", "base", "raised", "mid") + lun "My training, [name_genie_luna]?" ("soft", "base", "raised", "mid", xpos="base", ypos="base", trans=d3) gen "*Err*... To become the best and first ever spurt hunter!" ("angry", xpos="far_left", ypos="head") lun "Oh!" ("grin", "base", "base", "mid") lun "Okay!" ("grin", "happyCl", "base", "mid") @@ -350,7 +350,7 @@ label ll_pf_talk_T1_E3_intro: call ll_pf_talk gen "Right then... Let's have another crack at this shall we." ("base", xpos="far_left", ypos="head") - lun "We're going to try and expel the wrackspurts again, [name_genie_luna]?" ("soft", "base", "base", "mid") + lun "We're going to try and expel the wrackspurts again, [name_genie_luna]?" ("soft", "base", "base", "mid", xpos="base", ypos="base", trans=d3) gen "That's right, [name_luna_genie]." ("base", xpos="far_left", ypos="head") lun "Can I see how you do it this time?" ("grin", "base", "raised", "mid") gen "*Err*... I'm not sure that's such a good idea..." ("base", xpos="far_left", ypos="head") @@ -539,7 +539,7 @@ label ll_pf_talk_T1_E4_repeat: call ll_pf_talk gen "How are you feeling, [name_luna_genie]?" ("base", xpos="far_left", ypos="head") - lun "I...{w=0.4} I'm okay..." ("open", "narrow", "base", "down") + lun "I...{w=0.4} I'm okay..." ("open", "narrow", "base", "down", xpos="base", ypos="base", trans=d3) lun "But I'm still worried about this burning sensation between my legs, [name_genie_luna]." ("upset", "narrow", "base", "mid") gen "I'm sure we'll find a way for you to deal with them once I've had a thorough inspection of your body...." ("base", xpos="far_left", ypos="head") @@ -658,7 +658,7 @@ label ll_pf_talk_T2_E1_repeat: call ll_pf_talk gen "Tell me some more about these spurts..." ("base", xpos="far_left", ypos="head") - lun "Again, [name_genie_luna]?" ("open", "base", "raised", "mid") + lun "Again, [name_genie_luna]?" ("open", "base", "raised", "mid", xpos="base", ypos="base", trans=d3) gen "Yes... I still don't think I'm quite done with my personal research..." ("base", xpos="far_left", ypos="head") lun "Oh... Okay then..." ("soft", "base", "base", "mid") gen "One moment please." ("base", xpos="far_left", ypos="head") @@ -763,7 +763,7 @@ label ll_pf_talk_T3_E1_repeat: call ll_pf_talk gen "Able to help me deal with those spurts again?" ("base", xpos="far_left", ypos="head") - lun "Of course, what would you need me to do?" ("grin", "base", "raised", "mid") + lun "Of course, what would you need me to do?" ("grin", "base", "raised", "mid", xpos="base", ypos="base", trans=d3) gen "Just stand there for a bit." ("base", xpos="far_left", ypos="head") lun "Oh... Okay, [name_genie_luna]." ("base", "happyCl", "base", "mid") @@ -922,3 +922,534 @@ label ll_pf_talk_T3_E1_repeat: call lun_walk(action="leave") jump ll_pf_talk_end + +label ll_pf_talk_T4_E1_repeat: + + $ states.lun.status.cumshot = True + $ states.lun.ev.ll_pf_talk_T4_E1_repeat_complete = True + + call ll_pf_talk + + gen "Fancy checking out my ding-dong?" ("base", xpos="far_left", ypos="head") + lun "Your ding-dong, [name_genie_luna]?" ("base", "base", "base", "mid", xpos="base", ypos="base", trans=d3) + lun "Is that another word for clock?" ("base", "base", "base", "mid") + gen "Remove the \"L\", and you've got it." ("base", xpos="far_left", ypos="head") + lun "Cock?" ("base", "base", "base", "mid") + gen "Ding-ding-ding!" ("base", xpos="far_left", ypos="head") + lun "I'm confused..." ("base", "base", "base", "mid") + gen "Yes, I probably shouldn't have made a dinging sound..." ("base", xpos="far_left", ypos="head") + lun "" ("base", "base", "base", "mid") #confused stare + call ctc + + if states.lun.ev.ll_pf_blowjob_T4_E1_intro_complete: + lun "Oh, you mean \"penis\"!" ("base", "base", "base", "mid") + lun "All these different terms for it are so confusing!" ("base", "base", "base", "mid") + gen "Yes, remembering them all can be a bit difficult at times..." ("base", xpos="far_left", ypos="head") + lun "How many words for it are there?" ("base", "base", "base", "mid") + gen "Hundreds... Perhaps thousands..." ("base", xpos="far_left", ypos="head") + else: + lun "You've got a rooster in here?" ("base", "base", "base", "mid") + gen "No, there's no rooster... It's just another word for \"penis\"." ("base", xpos="far_left", ypos="head") + lun "Oh, that makes more sense!" ("base", "base", "base", "mid") + lun "I never imagined that there could be so many words for a single object." ("base", "base", "base", "mid") + gen "Oh, there's hundred of words for it... Thousands, perhaps." ("base", xpos="far_left", ypos="head") + + lun "What?! Really?! Wow!" ("base", "base", "base", "mid") + lun "Teach me, teach me, teach me!" ("base", "base", "base", "mid") + gen "Such enthusiasm! However, it's not exactly the reason I asked you to--" ("base", xpos="far_left", ypos="head") + lun "..." ("base", "base", "base", "mid") #Expectant smile + gen "Alright...{w=0.4} I suppose I could teach you another one." ("base", xpos="far_left", ypos="head") + lun "Yay!" ("base", "base", "base", "mid") + gen "How about..." ("base", xpos="far_left", ypos="head") + menu: + "\"Chode!\"": + $ name_geniepenis_luna = "Chode" + lun "Chode?" ("base", "base", "base", "mid") + gen "Yep, although that one is used to describe a particular shape." ("base", xpos="far_left", ypos="head") + lun "They come in different shapes?" ("base", "base", "base", "mid") + gen "Of course!" ("base", xpos="far_left", ypos="head") + lun "Wow!" ("base", "base", "base", "mid") + lun "I wanna see a triangle-shaped one!" ("base", "base", "base", "mid") + gen "..." ("base", xpos="far_left", ypos="head") + "\"Donkey Kong!\"": + $ name_geniepenis_luna = "Donkey Kong" + lun "Donkey... Kong?" ("base", "base", "base", "mid") + gen "That's right." ("base", xpos="far_left", ypos="head") + gen "Or was it Wonky Dong..." ("base", xpos="far_left", ypos="head") + "\"Knob!\"": + $ name_geniepenis_luna = "Knob" + lun "Knob?" ("base", "base", "base", "mid") + gen "Yep." ("base", xpos="far_left", ypos="head") + lun "Like a door?" ("base", "base", "base", "mid") + gen "You can adore a knob if you're into that." ("base", xpos="far_left", ypos="head") + lun "*Huh*?" + "\"Member!\"": + $ name_geniepenis_luna = "A member" + lun "A member?" ("base", "base", "base", "mid") + gen "Yep." ("base", xpos="far_left", ypos="head") + lun "A member of what?" ("base", "base", "base", "mid") + gen "No, it's just called a \"member\"." ("base", xpos="far_left", ypos="head") + lun "\"A member\"... I see..." ("base", "base", "base", "mid") + "\"One-eyed trouser snake!\"": + $ name_geniepenis_luna = "One-eyed trouser snake" + lun "A snake?!" ("base", "base", "base", "mid") + gen "Not an actual snake..." ("base", xpos="far_left", ypos="head") + lun "Oh... So, like a cock?" ("base", "base", "base", "mid") + gen "How is a cock similar to a snake?" ("base", xpos="far_left", ypos="head") + lun "But I thought..." ("base", "base", "base", "mid") + "\"Pecker!\"": + $ name_geniepenis_luna = "Pecker" + lun "Pecker?" ("base", "base", "base", "mid") + gen "Yep." ("base", xpos="far_left", ypos="head") + lun "So, like...{w=0.4] A woodpecker?" ("base", "base", "base", "mid") + gen "That's right... Except this pecker pecks for pussy." ("base", xpos="far_left", ypos="head") + lun "Pussy?!" ("base", "base", "base", "mid") + gen "That's right." ("base", xpos="far_left", ypos="head") + lun "Sounds like I've got a lot more to learn about peckers than I thought..." ("base", "base", "base", "mid") + "\"Schlong!\"": + $ name_geniepenis_luna = "Schlong" + lun "Schlong?" ("base", "base", "base", "mid") + gen "That's right." ("base", xpos="far_left", ypos="head") + lun "Such a peculiar name...{w=0.4} Did you come up with it yourself, [name_genie_luna]?" ("base", "base", "base", "mid") + gen "Of course!" ("base", xpos="far_left", ypos="head") + gen "Anything above 5.5 inches, is a \"schlong\"... Anything below 5.1 is a \"schlort\"." ("base", xpos="far_left", ypos="head") + lun "And between those two?" ("base", "base", "base", "mid") + gen "\"schlaverage\"." ("base", xpos="far_left", ypos="head") + "\"Skin flute!\"": + $ name_geniepenis_luna = "Skin flute" + lun "Skin... Flute?" + if states.lun.ev.ll_pf_blowjob_T4_E1_intro_complete: + gen "Because you can blow on it." ("base", xpos="far_left", ypos="head") + lun "Blow? Don't you mean suck, [name_genie_luna]?" ("base", "base", "base", "mid") + gen "Yeah, I guess..." ("base", xpos="far_left", ypos="head") + gen "Although a \"suckjob\" sounds a lot less appealing." ("base", xpos="far_left", ypos="head") + lun "Suck... Job?" ("base", "base", "base", "mid") + else: + gen "Yes, since you can blow--" ("base", xpos="far_left", ypos="head") + gen "(Hold on... She doesn't have the context for it to make sense...)" ("base", xpos="far_left", ypos="head") + lun "Yes?" ("base", "base", "base", "mid") + gen "Because...{w=0.4} It has the shape of a flute!" ("base", xpos="far_left", ypos="head") + lun "It has?" ("base", "base", "base", "mid") + gen "Think about it! It's long, and it's got a shapely tip, and--" ("base", xpos="far_left", ypos="head") + gen "Hold on... Is that actually the true reason?" ("base", xpos="far_left", ypos="head") + lun "*Huh*?" ("base", "base", "base", "mid") + "\"Wang!\"": + $ name_geniepenis_luna = "Wang" + lun "Wang?" ("base", "base", "base", "mid") + gen "Yep." ("base", xpos="far_left", ypos="head") + gen "Like the surname of that Asian girl." ("base", xpos="far_left", ypos="head") + lun "Cho Chang?" ("base", "base", "base", "mid") + gen "Are there any other Asian girls in this school?" ("base", xpos="far_left", ypos="head") + gen "Wait, did you say \"Chang\"?" ("base", xpos="far_left", ypos="head") + lun "Yes... Cho Chang, [name_genie_luna]." ("base", "base", "base", "mid") + gen "That can't be right... That's neither funny nor thematic..." ("base", xpos="far_left", ypos="head") + lun "[name_genie_luna]?" ("base", "base", "base", "mid") + gen "Why would the author name you \"Lovegood\" if they weren't trying to go for a theme..." ("base", xpos="far_left", ypos="head") + lun "*Ehm*... Who are you talking about exactly?" ("base", "base", "base", "mid") + if states.sus.unlocked: + gen "Luna Lovegood...{w=0.4} Susan Bones...{w=0.4} Hermione--{w=0.2} Hold on..." ("base", xpos="far_left", ypos="head") + gen "There never was a theme!" ("base", xpos="far_left", ypos="head") + gen "Such a wasted opportunity..." ("base", xpos="far_left", ypos="head") + lun "[name_genie_luna]?" ("base", "base", "base", "mid") + "\"Weiner!\"": + $ name_geniepenis_luna = "Weiner" + lun "Weiner?" ("base", "base", "base", "mid") + lun "Like a sausage weiner?" ("base", "base", "base", "mid") + gen "Yep." ("base", xpos="far_left", ypos="head") + gen "Because it resembles a weiner, you see?" ("base", xpos="far_left", ypos="head") + lun "I see!" ("base", "base", "base", "mid") + lun "So, like a banana!" ("base", "base", "base", "mid") + gen "*Hmm*... I don't know if I'd call it a banana." ("base", xpos="far_left", ypos="head") + lun "Oh...{w=0.4} How come?" ("base", "base", "base", "mid") + gen "Well, first of...{w=0.4} A banana is something that you can peel, and you can't peel a--" ("base", xpos="far_left", ypos="head") + gen "..." ("base", xpos="far_left", ypos="head") + lun "Yes?" ("base", "base", "base", "mid") + "\"Third leg!\"": + $ name_geniepenis_luna = "Third leg" + lun "A leg?!" ("base", "base", "base", "mid") + gen "A \"third leg\", specifically." ("base", xpos="far_left", ypos="head") + lun "Wait... Does that mean you can walk on it?!" ("base", "base", "base", "mid") + gen "Depends on the situation..." ("base", xpos="far_left", ypos="head") + gen "Sometimes, you'll find yourself in a situation where you have no leg to stand on." ("base", xpos="far_left", ypos="head") + lun "Really? When would that be?" ("base", "base", "base", "mid") + gen "..." ("base", xpos="far_left", ypos="head") + gen "Let's say you've just told a hilarious pun, but your audience doesn't get it." ("base", xpos="far_left", ypos="head") + lun "I see..." ("base", "base", "base", "mid") + + gen "Anyway... Teaching you various words for penis wasn't the purpose of me summoning you today--" ("base", xpos="far_left", ypos="head") + + if luna.is_any_worn("clothes"): + $ _wearing_clothes = True + + if luna.is_any_worn("robe", "accessory"): + $ renpy.sound.play("sounds/cloth_sound3.ogg") + $ luna.strip("robe", "accessory") + with d3 + pause .5 + + gen "*Ehm*..." + + if luna.is_worn("top"): + $ renpy.sound.play("sounds/cloth_sound3.ogg") + $ luna.strip("top") + with d3 + pause .5 + + if luna.is_worn("bottom"): + + $ renpy.sound.play("sounds/cloth_sound3.ogg") + $ luna.strip("bottom") + with d3 + pause .5 + + gen "[name_luna_genie]?" ("base", xpos="far_left", ypos="head") + + call lun_walk("desk", "base") + + gen "What are you doing?" ("base", xpos="far_left", ypos="head") + lun "Oh, I just thought...{w=0.4} My apologies." ("base", "base", "base", "mid") + gen "No need to apologise, [name_luna_genie]! I just wasn't prepared for the eagerness." ("base", xpos="far_left", ypos="head") + lun "Always ready to serve! *Ehm*... I mean, always ready to assist with your research!" ("base", "base", "base", "mid") + gen "Commendable." ("base", xpos="far_left", ypos="head") + + if luna.is_any_worn("clothes"): + gen "In that case, why don't you undress fully, and take a seat right over here..." ("base", xpos="far_left", ypos="head") + $ renpy.sound.play("sounds/cloth_sound3.ogg") + $ luna.strip("clothes") + with d3 + pause .5 + else: + gen "In that case, why don't you take a seat right over here..." ("base", xpos="far_left", ypos="head") + + lun "On the desk?" ("base", "base", "base", "mid") + gen "On the desk..." ("base", xpos="far_left", ypos="head") + lun "Okay then!" ("base", "base", "base", "mid") + + #TODO Fade to Luna sitting on desk CG + + lun "You are going to bait the wrackspurts again, [name_genie_luna]?" + gen "That's right." + lun "Then my purpose for today is to display my naked body as a way to assist with the completion of this task, correct?" + gen "*Err*..." + gen "(Why is she suddenly speaking like that?)" + lun "You taught me previously that observing my naked body is of great assistance when you're baiting wrackspurts." + gen "Right?" + lun "Yep!" + gen "Well...{w=0.4} Good job on listening...{w=0.4} I guess?" + lun "*Mmm*...{w=0.4} Thank you [name_genie_luna]." + lun "I'm delighted that you've recognized my sincere efforts in paying close attention and retaining all the knowledge we've acquired thus far!" + gen "(Is she trying to fish for compliments?)" + gen "*Ahem*... Excellent work [name_luna_genie]... Speaking of attention." + + nar "You clutch at your robes, as you feel your cock pushing against it..." + + lun "Oh, go right ahead, [name_genie_luna]!" + + nar "You pull out your cock and start stroking it." + + gen "There we go... Finally free from that wretched prison." + lun "I hope you haven't had to endure it for too long, [name_genie_luna]." + lun "I can't imagine what it would feel like to have a penis stuck in such a tight space." + gen "I'm sure we can satiate that curiosity, one way or another...{w=0.4} Or three if you're really kinky." + lun "Three, [name_genie_luna]? But I've only ever seen you wear the one set of trousers." + gen "...{w=0.4} Let's focus on the task." + lun "Sure thing! What do you need me to do?" + gen "Simply sitting there and looking as beautiful as you always do should be more than sufficient." + lun "Oh... Okay..." + gen "*Ahem*... Although, you'd be of great help if you pushed your breasts together a little bit." + lun "My breasts?" + gen "Yes... Push those beautiful breasts together for me, will you?" + + #Breasts pushed together pose + + nar "*Fap* *Fap* *Fap*..." + + lun "..." + lun "..." #Blushing + gen "[name_luna_genie]?" + lun "Y-- Yes [name_genie_luna], is everything okay?" + gen "I was just about to ask you the same question." + lun "Me? What do you mean?" + gen "You're blushing." + lun "I am?" + gen "Very much so." + lun "Please don't tell me it's a {b}case of the vapours{/b}!" + gen "The vapours? Yes, it must be! Fortunately, I have the ideal treatment for--" + gen "(Hold on... Didn't that bogus get disproven hundreds of years ago?)" + lun "So, it is the vapours! Tell, me [name_genie_luna], how much steam is coming out of my ears!?" + gen "...{w=0.4} There's no steam coming out of your ears, [name_luna_genie]." + lun "Oh... Thank heavens..." + lun "But if not the vapours, what else could have caused this?" + gen "Let me think..." + gen "Did something particular cross your mind before your cheeks turned all rosy?" + lun "*Hmm*..." + lun "I was just thinking about what you had just said." + gen "Which was?" + lun "You were saying I was looking beautiful..." + gen "Thinking about that made you blush?" + lun "I believe so..." + lun "When you complimented me on my looks previously, I figured that it was merely a tactic to help me master baiting." + lun "But this time, I'm not the one doing it, so it made me realise that you must have been sincere." + gen "..." + + #Base pose + lun "*Sigh*...{w=0.4} I suppose I've become accustomed to guys only saying things like that sarcastically, mocking my choice of attire." + + #Genie stops jerking + nar "You stop masturbating, and move your eyes away from Luna's body to look into her eyes..." + + gen "Yes, unfortunately, this school is teeming with exceptionally shallow individuals." + lun "[name_genie_luna]?" + gen "Allow me to pose you a question, [name_luna_genie]." + lun "Oh, of course [name_genie_luna]." + gen "Do you like the clothing that you wear?" + lun "Very much so!" + gen "Then if it brings you joy, why worry about what others think?" + lun "I suppose..." + gen "In fact, I feel bad for them." + lun "You do?!" + gen "Of course I do." + gen "If you lack the capability to look past someone's clothing, then you'll never get the chance to learn and experience what's underneath." + lun "I... I've never thought of it that way..." + gen "Try not to take what they say to heart, [name_luna_genie]." + gen "As long as you continue to be yourself, I have no doubt that the friendships you make will feel more authentic and genuine." + lun "Yes... Perhaps you're right..." + + nar "You watch Luna, as she unconsciously moves her hand to between her legs and starts fingering herself..." + + gen "Take me, for example – I consistently approach people with both an open heart and an open mind." + gen "If I had their mindset, I might've ended up walking right past all the unique and beautiful individuals such as yourself." + lun "..." #Looks down + + nar "Luna goes quiet for a moment, taking in what you just said..." + + gen "Not only that... I firmly believe that we should celebrate each other's uniqueness." + lun "*Mmm*... Truly?" + gen "Of course!" + gen "How about you share something you believe is unique about yourself, and I'll explain why I think it makes you truly exceptional!" + lun "Oh...{w=0.4} *Ehm*...{w=0.4} Something unique..." + lun "*Mmm*... You've put me on the spot..." + gen "What about your clothing?" + lun "Oh... Well, I suppose my fondness for wearing my own creations is quite a unique trait." + gen "To me, this clearly indicates that you're a creative, free-spirited, and adventurous individual." + lun "..." + gen "What else?" + lun "*Ah*...{w=0.4} I...{w=0.4} Well, I've never really thought about it before..." + gen "Then, let me share a couple of things I've learned about you from the time we've spent researching together..." + lun "[name_genie_luna], you don't have to--" + gen "You show great enthusiasm about everything you do...{w=0.4} And that energy and passion make any task more enjoyable..." + lun "[name_genie_luna]..." + gen "Your ability to adapt and pick up new skills quickly is remarkable..." + lun "..." + gen "And you always go above and beyond to ensure that we reach the desired result..." + gen "All excellent qualities, don't you think?" + lun "..." + gen "[name_luna_genie]?" + + nar "As you address Luna once more, you can't help but notice that her attention has been somewhat diverted towards her nether regions..." + + gen "(*Hmm*... Looks like she's getting off from being validated...)" + gen "Tell me a little bit about your creations that you're particularly proud off..." + lun "*Ah*... *Ehm*... Well, there's my cork necklace..." + gen "A cork necklace?" + gen "(That's one of the dumbest things I've ever heard...)" + lun "Well, I just figured--{w=0.2} *Ah*...{w=0.4} Why not create a necklace that's not only stylish but also practical." + gen "Hold on..." + gen "That's brilliant!" + lun "You--{w=0.2} *Ah*...{w=0.4} You really think so?" + gen "Most assuredly! I've found myself presented with plenty of holes in the need of being plugged!" + gen "But I never thought about carrying a cork for that specific usage before." + lun "Oh... Well, if you ever need one..." + gen "Yes, I'm sure we could find a use for it in our research." + lun "In--{w=0.2} *Ah*...{w=0.4} Our research?" + gen "Certainly!" + gen "Speaking of necklace... Since you've been so helpful, I think I better reward you with a \"pearl necklace\"." + + nar "Luna's eyes glaze over once again, and she begins panting slightly." + + lun "*Ah*...{w=0.4} That...{w=0.4 That's very kind of you, [name_genie_luna]..." + lun "But--{w=0.4} *Ah*...{w=0.4} I'm not doing this for the sake of being rewarded." + gen "I'm aware of that, although that doesn't mean I can't show you my appreciation." + gen "Not everyone would agree to undress inside the headmaster's office..." + lun "*Ah*...{w=0.4} Because it's--{w=0.2} *Mmm*...{w=0.4} Chilly, [name_genie_luna]?" + gen "Sure!" + + nar "Luna smiles and glances down at your cock, but as she does, her expression quickly shifts into one of shock..." + + lun "*Don't worry, I'm--" + + #stops fingering + + lun "[name_genie_luna]! You stopped stroking your [name_geniepenis_luna]!" + gen "My what? Oh...{w=0.4} So I have..." + lun "Please, [name_genie_luna], resume the baiting before it's too late!" + gen "Right." + + nar "Grabbing your cock once more, you resume your stroking, fixing your gaze back towards Luna's naked body..." + + gen "There we are... No need to panic." + lun "*Phew*..." + lun "I'm sorry [name_genie_luna]... I didn't realise that I had been distracting you..." + gen "No harm done, [name_luna_genie]... In fact, it appears your distraction may have excited the spratters even more." + lun "It did? But how--" + gen "I'm not only talking about the ones afflicting myself... If you hadn't realised, you were touching yourself just a moment ago." + lun "I was?!" + lun "I...{w=0.4 How did I not realise..." + lun "We... We were only talking about..." + + nar "Luna's eyes glaze over slightly, as a dreamy and distant expression spreads across her face..." + + lun "{size=-4}But why would that result in me touching myself...{/size}" + + nar "Luna suddenly goes quiet, as if pondering on what to say next..." + + lun "The only thing I can remember being at the forefront of my mind..." + lun "Is how glad I am to have someone who genuinely listens and understands me..." + lun "And how before I sought your assistance, I had become so accustomed to people trying to distance themselves from me..." + lun "How before I stepped foot inside your office, not a single soul would even dare to..." + lun "{size=-4}Touch me...{/size}" + + #speed lines + nar "Suddenly snapping back to reality, Luna's legs begin quivering..." + + lun "[name_genie_luna], something's happening to me!" + gen "No need to worry, [name_luna_genie]... Just tell me what's going on." + lun "My body...{w=0.4} It feels hot!" + lun "And for some reason..." + lun "The only thing I can think about is you, stroking your penis!" + gen "That's hardly difficult to imagine, since it's precisely what I'm doing." + lun "I know... But it's so clear in my mind...{w=0.2} And...{w=0.2} And..." + lun "Please, [name_genie_luna]...{w=0.4} Can I--{w=0.2} I need to touch myself--" + gen "Not yet, [name_luna_genie]! I'm not there yet!" + lun "But, [name_genie_luna]!" + gen "Close your eyes for a bit, and allow me to catch up to you." + lun "But, how is that going to--" + gen "Do it, [name_luna_genie]!" + + #Base pose #closed eyes + lun "!!!" + gen "Good." + gen "Now, just wait for a little bit to see if the feeling subsides." + + #squeezing breasts pose + nar "You keep stroking your cock, while watching the girl squirm uncomfortably." + + gen "Is it working?" + lun "I--{w=0.2} I don't think so [name_genie_luna]...{w=0.4} The image of your penis is still at the forefront of my mind." + gen "Even just thinking about it is making you feel this hot and bothered?" + lun "I--{w=0.2} Yes, I think so!" + gen "Good... Then we've learned something today." + lun "[name_genie_luna], please!" + menu: + "-Deny her for a bit longer-": + gen "I'm not there yet, [name_luna_genie]." + lun "But--" + lun "Tell me what to do! How can I help?!" + gen "*Hmm*..." + #Luna opens her eyes + lun "Wait, I know!" + #Luna spreads her pussy + gen "By the great--" + lun "Is it working [name_genie_luna]? Can I do it now, can I, can I?" + gen "Oh, yes!" + lun "Thank you!!" + "-Allow her to join you-": + gen "Alright then, [name_luna_genie]... I'm almost there." + gen "You may open your eyes and join me." + lun "Thank you, [name_genie_luna]!" #open eyes + + + #fingering pose + nar "Luna immediately plunges her fingers inside her wet pussy." + nar "As she does, an expression of ecstasy spreads across her face as her oncoming orgasm rushes through her body." + + lun "[name_genie_luna]!" + gen "That's it, girl! Take this!" + #Luna and Genie "*Nnngh*!!" + + #Luna and genie cums, Luna squiring on desk, and genie shooting ropes across her face and tits + + with kissiris + lun "{heart}{heart}*Ah*!!!{heart}{heart}" + call cum_block + gen "*Argh*!!" + lun "{heart}[name_genie_luna]!{heart}" + lun "They won't stop--" + lun "{size=+5}{heart}{heart}Coming!{heart}{heart}{/size}" + gen "Then let them--" + gen "Come!" + call cum_block + pause .5 + with kissiris + gen "*Argh*-- *heavy panting*" + lun "{size=+4}{heart}*Ah*!!!{heart}{/size}" + + gen "*Ah*...{w=0.4} *Ah*...{w=0.4} *Ah*..." + lun "*Ah*...{w=0.4} Wow...{w=0.4} That was..." + lun "Amazing..." + gen "Great job, [name_luna_genie]." + lun "*Mmm*... Thank you, [name_genie_luna]." + lun "*Hmm*... I'm all sticky now..." + + #Luna squeezes her breasts together again. + gen "*Ngh*!!" + lun "[name_genie_luna], are you alright?" + gen "Yes, I'm fine... But you should probably stop doing that, or I might have to go again..." + lun "Oh... Sorry, [name_genie_luna]!" + + show screen blkfade + with d5 + + #TODO hide CG + + nar "As Luna swiftly attempts to get off your desk, she accidentally slides off the edge, which causes her to tumble and land on the tiled floor with a soft slapping sound." + nar "As you peer over the edge, you're met with a shocked and bewildered looking Luna." + nar "She looks up at you, and you can't help but laugh a little at how silly she looks, down on the floor and still covered in cum." + nar "Before you get the chance to check on her properly, she lets out a giggle and stands up." + + hide screen blkfade + with d5 + + #TODO Add cum on Luna's face (may cut this if Loafy wants cum elsewhere) + + lun "*Giggles*..." ("base", "base", "base", "mid") + gen "*Ahem*... I believe you've still got something on your face and chest..." ("base", xpos="far_left", ypos="head") + lun "I do?" ("base", "base", "base", "mid") + + if not states.lun.ev.ll_pf_blowjob_T4_E1_intro_complete: + gen "Yes, and you should probably clean it up before you leave..." ("base", xpos="far_left", ypos="head") + lun "Oh...{w=0.4} Okay then!" ("base", "base", "base", "mid") + #TODO remove cum + else: + lun "Oh, your cum!" ("base", "base", "base", "mid") + lun "How did that happen?" ("base", "base", "base", "mid") + gen "*Err*..." ("base", xpos="far_left", ypos="head") + lun "Weird... I must've blanked out for a moment..." ("base", "base", "base", "mid") + #TODO remove cum + + if states.lun.ev.ll_pf_blowjob_T4_E2_intro_complete: + lun "Sorry, [lun_genie_name]... I know I should probably have tried to swallow them..." ("base", "base", "base", "mid") + gen "Don't worry about that..." ("base", xpos="far_left", ypos="head") + + lun "Are you feeling better, [name_genie_luna]?" ("base", "base", "base", "mid") + gen "*Huh*? Oh yes, very much so!" ("base", xpos="far_left", ypos="head") + lun "Great! I am as well!" ("base", "base", "base", "mid") + lun "Of course... It's not really the same when you're not the one touching me..." ("base", "base", "base", "mid") + gen "..." ("grin", xpos="far_left", ypos="head") + + if _wearing_clothes: + $ luna.wear("all") + + lun "Well then, I better be off!" ("base", "base", "base", "mid") + gen "Right." ("base", xpos="far_left", ypos="head") + lun "Please, don't hesitate to inform me whenever you need my help again." ("base", "base", "base", "mid") + gen "Already thinking about next time, [name_luna_genie]? We just finished!" ("base", xpos="far_left", ypos="head") + lun "Oh...{w=0.4} *Ehm*...{w=0.4} Bye then!" ("base", "base", "base", "mid") + + #Luna leaves + call lun_walk(action="leave") + + gen "(And here I thought Genie's had strong libido's...)" ("base", xpos="far_left", ypos="head") + + $ _wearing_clothes = False #reset + jump ll_pf_talk_end diff --git a/game/scripts/characters/luna/favors.rpy b/game/scripts/characters/luna/favors.rpy index 9c61d9d9..cf12bf5a 100644 --- a/game/scripts/characters/luna/favors.rpy +++ b/game/scripts/characters/luna/favors.rpy @@ -4,7 +4,8 @@ default lun_ev_talk_to_me_t1_e2 = Event(id="lun_ev_talk_to_me_t1_e2", label="ll_ default lun_ev_talk_to_me_t1_e3 = Event(id="lun_ev_talk_to_me_t1_e3", label="ll_pf_talk_T1_E3_intro", req="states.lun.tier == 1", queue="lun_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, repeat=False) default lun_ev_talk_to_me_t1_e4 = Event(id="lun_ev_talk_to_me_t1_e4", label="ll_pf_talk_T1_E4_repeat", req="states.lun.tier == 1", queue="lun_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False) default lun_ev_talk_to_me_t2_e1 = Event(id="lun_ev_talk_to_me_t2_e1", label="ll_pf_talk_T2_E1_repeat", req="states.lun.tier == 2", queue="lun_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False) -default lun_ev_talk_to_me_t3_e1 = Event(id="lun_ev_talk_to_me_t3_e1", label="ll_pf_talk_T3_E1_repeat", req="states.lun.tier >= 3", queue="lun_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False) +default lun_ev_talk_to_me_t3_e1 = Event(id="lun_ev_talk_to_me_t3_e1", label="ll_pf_talk_T3_E1_repeat", req="states.lun.tier == 3", queue="lun_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False) +default lun_ev_talk_to_me_t4_e1 = Event(id="lun_ev_talk_to_me_t4_e1", label="ll_pf_talk_T4_E1_repeat", req="states.lun.tier >= 4", queue="lun_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False) default lun_ev_inspect_her_body_t2_e1 = Event(id="lun_ev_inspect_her_body_t2_e1", label="ll_pf_inspect_T2_E1_intro", req="states.lun.tier == 2", queue="lun_eventqueue_inspect_her_body", autoenqueue=True, autodequeue=False, repeat=False) default lun_ev_inspect_her_body_t2_e2 = Event(id="lun_ev_inspect_her_body_t2_e2", label="ll_pf_inspect_T2_E2_intro", req="states.lun.tier == 2", queue="lun_eventqueue_inspect_her_body", autoenqueue=True, autodequeue=False, repeat=False) @@ -21,4 +22,4 @@ define luna_favors = [ ("lun_eventqueue_talk_to_me", "Talk to me!"), ("lun_eventqueue_inspect_her_body", "Let me inspect you!"), ("lun_eventqueue_play_with_yourself", "Play with yourself!"), -] \ No newline at end of file +] diff --git a/game/scripts/characters/luna/vars.rpy b/game/scripts/characters/luna/vars.rpy index 8fbb1525..236054e9 100644 --- a/game/scripts/characters/luna/vars.rpy +++ b/game/scripts/characters/luna/vars.rpy @@ -46,6 +46,9 @@ default states.lun.ev.inspect_her_body.t2_e3_complete = False default states.lun.ev.play_with_yourself.t3_e3_complete = False default states.lun.ev.gen_genie_nickname_unlocked = False default states.lun.ev.lun_cumslut_nickname_unlocked = False +default states.lun.ev.ll_pf_blowjob_T4_E1_intro_complete = False +default states.lun.ev.ll_pf_blowjob_T4_E2_intro_complete = False +default states.lun.ev.ll_pf_talk_T4_E1_repeat_complete = False # Flags default lun_level_up = None @@ -53,3 +56,4 @@ default lun_level_up = None # Names default name_genie_luna = "Professor" default name_luna_genie = "Miss Lovegood" +default name_geniepenis_luna = "Penis"