2022-05-16 23:48:22 +00:00
label summon_luna:
2023-03-31 22:41:48 +00:00
$ states.active_girl = "luna"
2022-05-16 23:48:22 +00:00
2023-04-02 23:48:38 +00:00
$ states.lun.busy = True
2022-05-16 23:48:22 +00:00
call update_luna
call update_lun_tier
2022-06-17 21:05:08 +00:00
$ renpy.checkpoint(hard=True)
2023-03-16 22:55:14 +00:00
play music "music/wallpaper-by-kevin-macleod.ogg" fadein 1 if_changed
2023-03-11 22:01:39 +00:00
play sound "sounds/door.ogg"
2022-05-16 23:48:22 +00:00
call lun_chibi("stand","mid","base")
with d3
2024-09-30 13:40:36 +00:00
random:
lun "[name_genie_luna]..." ("base", "base", "base", "mid", xpos="base", ypos="base", trans=d3)
block:
if states.env.daytime:
lun "Good morning, [name_genie_luna]." ("base", "base", "base", "mid", xpos="base", ypos="base", trans=d3)
else:
lun "Good evening, [name_genie_luna]." ("base", "base", "base", "mid", xpos="base", ypos="base", trans=d3)
2022-05-16 23:48:22 +00:00
2023-04-02 23:48:38 +00:00
if states.lun.ev.spectrespecs.e3_complete and not states.lun.ev.spectrespecs.e4_complete:
2022-05-16 23:48:22 +00:00
jump spectrespecs_E4
label luna_requests:
lun "" (xpos="base",ypos="base")
menu:
# Talk
"-Talk-" (icon="interface/icons/small/talk.webp"):
2023-04-02 23:48:38 +00:00
if states.lun.mood > 0:
2022-05-16 23:48:22 +00:00
lun "I have nothing to say to you sir..."
jump luna_requests
call luna_chitchat
jump luna_talk
# Personal Favors
2023-04-02 23:48:38 +00:00
"-Sexual Favours-" (icon="interface/icons/small/condom.webp") if states.lun.favors_unlocked:
2022-05-16 23:48:22 +00:00
jump luna_favor_menu
2023-04-02 23:48:38 +00:00
"-Sexual Favours-" (style="disabled") if not states.lun.favors_unlocked:
2023-03-11 19:43:02 +00:00
nar "You haven't unlocked this feature yet."
2022-05-16 23:48:22 +00:00
jump luna_requests
# Wardrobe
2023-04-02 23:48:38 +00:00
"-Wardrobe-" (icon="interface/icons/small/wardrobe.webp") if states.lun.wardrobe_unlocked:
2022-11-04 21:17:41 +00:00
hide luna_main with d1
2024-11-08 18:40:34 +00:00
jump wardrobe
2022-05-16 23:48:22 +00:00
jump luna_requests
2023-04-02 23:48:38 +00:00
"-Wardrobe-" (style="disabled") if not states.lun.wardrobe_unlocked:
2023-03-11 19:43:02 +00:00
nar "You haven't unlocked this feature yet."
2022-05-16 23:48:22 +00:00
jump luna_requests
2023-09-18 10:24:42 +00:00
"-Give Item-" (icon="interface/icons/small/gift.webp") if states.lun.favors_unlocked:
hide luna_main with d1
call gift_menu
2022-05-16 23:48:22 +00:00
jump luna_requests
# Dismiss
"-Dismiss her-":
stop music fadeout 3.0
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2023-04-02 23:48:38 +00:00
if states.lun.mood >= 3:
2022-05-16 23:48:22 +00:00
lun "Good day..."
else:
2023-03-01 22:14:00 +00:00
lun "Sure thing, [name_genie_luna]. I will head to class."
2022-05-16 23:48:22 +00:00
else:
2023-04-02 23:48:38 +00:00
if states.lun.mood >= 3:
2022-05-16 23:48:22 +00:00
lun "Good night..."
else:
2023-03-01 22:14:00 +00:00
lun "Sure thing, good night [name_genie_luna]."
2022-05-16 23:48:22 +00:00
jump end_luna_event
label update_lun_tier:
2023-04-02 23:48:38 +00:00
if states.lun.tier == 1 and states.lun.level >= 3:
2023-07-02 15:17:44 +00:00
if not states.lun.ev.talk_to_me.t1_e3_complete:
2022-05-16 23:48:22 +00:00
return
$ lun_level_up = 1
2023-04-02 23:48:38 +00:00
elif states.lun.tier == 2 and states.lun.level >= 6:
2023-07-02 15:17:44 +00:00
if not states.lun.ev.inspect_her_body.t2_e3_complete:
2022-05-16 23:48:22 +00:00
return
2023-07-02 15:17:44 +00:00
2022-05-16 23:48:22 +00:00
$ lun_level_up = 2
2023-04-02 23:48:38 +00:00
elif states.lun.tier == 3 and states.lun.level >= 9:
2023-07-02 15:17:44 +00:00
if not states.lun.ev.play_with_yourself.t3_e3_complete:
2022-05-16 23:48:22 +00:00
return
$ lun_level_up = 3
2023-04-02 23:48:38 +00:00
elif states.lun.tier == 4 and states.lun.level >= 13:
2022-05-16 23:48:22 +00:00
# T5 NOT AVAILABLE
return
2024-04-01 20:11:08 +00:00
# unreachable
2022-05-16 23:48:22 +00:00
# Requirement: Tier 4 - Blow me T4 E3
$ lun_level_up = 4
return
label luna_level_up(tier=None):
if tier == 1:
gen "(I think it's about time to give her a proper inspection...)" ("base", xpos="far_left", ypos="head")
elif tier == 2:
gen "(Let's see if she's ready for some self-care...)" ("base", xpos="far_left", ypos="head")
elif tier == 3:
gen "(I wonder if she'll be able to get the spurts out with her mouth...)" ("base", xpos="far_left", ypos="head")
elif tier == 4:
gen "(Getting the spurts out of two people at the same time...)" ("base", xpos="far_left", ypos="head")
gen "(Now that's going to require some careful timing!)" ("grin", xpos="far_left", ypos="head")
2023-04-02 23:48:38 +00:00
$ states.lun.tier = tier+1
2022-05-16 23:48:22 +00:00
$ lun_level_up = None
2023-04-02 23:48:38 +00:00
$ states.lun.mood = 0
2022-05-16 23:48:22 +00:00
pause.5
2023-04-02 23:48:38 +00:00
nar "Luna has reached {i}favour tier{/i} [states.lun.tier]!"
2022-05-16 23:48:22 +00:00
call update_lun_tier
return
# Luna Favor Menu
label luna_favor_menu:
menu:
2023-11-16 16:53:29 +00:00
"-Level Up-" (icon="interface/icons/small/levelup.webp") if lun_level_up is not None:
2022-05-16 23:48:22 +00:00
call luna_level_up(tier=lun_level_up)
jump luna_favor_menu
"-Personal Favours-" (icon="interface/icons/small/heart_red.webp"):
call tutorial("hearts")
label .personal:
2023-07-02 15:17:44 +00:00
$ result = show_events_menu(luna_favors)
if result in ("disabled", "noncompliant"):
"You haven't unlocked this favour opportunity yet."
2022-05-16 23:48:22 +00:00
jump .personal
2023-07-02 15:17:44 +00:00
elif result == "exit":
jump luna_favor_menu
2022-05-16 23:48:22 +00:00
else:
2023-07-02 15:17:44 +00:00
$ result.start()
2022-05-16 23:48:22 +00:00
"-Public Requests-" (icon="interface/icons/small/star_yellow.webp", style="disabled"):
2023-07-02 15:17:44 +00:00
label .requests:
2022-05-16 23:48:22 +00:00
call not_available
2023-11-16 00:51:18 +00:00
2023-07-02 15:17:44 +00:00
# $ result = show_events_menu(hermione_requests)
# if result in ("disabled", "noncompliant"):
# "You haven't unlocked this request opportunity yet."
# jump .requests
# elif result == "exit":
# jump .skip_points_check
# else:
# $ result.start()
2022-05-16 23:48:22 +00:00
jump luna_favor_menu
"-Never mind-":
jump luna_requests
label luna_talk:
# General.
menu:
2023-03-31 22:41:48 +00:00
"-Ask her to cheer for Ravenclaw-" if states.cho.ev.quidditch.gryffindor_failed and not states.cho.ev.quidditch.e11_complete:
2022-05-16 23:48:22 +00:00
jump cho_quid_E11
2023-04-02 23:48:38 +00:00
"-Address me only as-" if states.lun.ev.spectrespecs.e4_complete:
2022-05-16 23:48:22 +00:00
menu:
"-Sir-":
2024-05-01 18:08:10 +00:00
$ name_genie_luna = _("Sir")
2022-05-16 23:48:22 +00:00
"-Dumbledore-":
2024-05-01 18:08:10 +00:00
$ name_genie_luna = _("Dumbledore")
2022-05-16 23:48:22 +00:00
"-Professor-":
2024-05-01 18:08:10 +00:00
$ name_genie_luna = _("Professor")
2022-05-16 23:48:22 +00:00
"-Partner-":
2024-05-01 18:08:10 +00:00
$ name_genie_luna = _("Partner")
2023-04-02 23:48:38 +00:00
"-Master-" if states.lun.tier >= 2:
2024-05-01 18:08:10 +00:00
$ name_genie_luna = _("Master")
2023-04-02 23:48:38 +00:00
"-Daddy-" if states.lun.tier >= 2:
2024-05-01 18:08:10 +00:00
$ name_genie_luna = _("Daddy")
2023-11-10 15:17:32 +00:00
"-Genie-" if states.lun.ev.gen_genie_nickname_unlocked:
2024-05-01 18:08:10 +00:00
$ name_genie_luna = _("Genie")
2023-04-02 23:48:38 +00:00
"-Custom Input-" if states.lun.tier >= 3:
2024-05-01 18:08:10 +00:00
$ name_genie_luna = renpy.input(_("(Please enter the name.)"), name_genie_luna, ALLOWED_CHARACTERS, length=14).strip() or "Professor"
2022-05-16 23:48:22 +00:00
"-Never mind-":
jump luna_talk
jump genie_luna_change
2023-05-09 13:45:34 +00:00
"-From now on, I will refer to you as-" if states.lun.ev.spectrespecs.e4_complete:
2022-05-16 23:48:22 +00:00
menu:
"-Miss Lovegood-":
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Miss Lovegood")
2022-05-16 23:48:22 +00:00
"-Luna-":
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Luna")
2022-05-16 23:48:22 +00:00
"-Loony-":
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Loony")
2022-05-16 23:48:22 +00:00
"-Girl-":
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Girl")
2022-05-16 23:48:22 +00:00
"-Partner-":
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Partner")
2023-04-02 23:48:38 +00:00
"-Bimbo-" if states.lun.tier >= 2:
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Bimbo")
2023-04-02 23:48:38 +00:00
"-Minx-" if states.lun.tier >= 3:
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Minx")
2023-11-10 15:17:32 +00:00
"-Cumslut-" if states.lun.ev.lun_cumslut_nickname_unlocked:
2024-05-01 18:08:10 +00:00
$ name_luna_genie = _("Cumslut")
2023-04-02 23:48:38 +00:00
"-Custom Input-" if states.lun.tier >= 3:
2024-05-01 18:08:10 +00:00
$ name_luna_genie = renpy.input(_("(Please enter the name.)"), name_luna_genie, ALLOWED_CHARACTERS, length=14).strip() or "Miss Lovegood"
2022-05-16 23:48:22 +00:00
"-Never mind-":
jump luna_talk
2023-03-01 22:14:00 +00:00
jump name_luna_genie
2022-05-16 23:48:22 +00:00
"-Never mind-":
jump luna_requests
label genie_luna_change:
# NickName responses
2024-05-01 18:08:10 +00:00
if name_genie_luna == _("Sir"):
2023-03-01 22:14:00 +00:00
lun "Certainly, [name_genie_luna]." ("base", "base", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_genie_luna == _("Dumbledore"):
2022-05-16 23:48:22 +00:00
lun "You want me to call you by your last name?" ("annoyed", "narrow", "base", "mid")
gen "Is that going to be a problem?" ("base", xpos="far_left", ypos="head")
2023-03-01 22:14:00 +00:00
lun "Of course not [name_genie_luna]..." ("angry", "base", "base", "mid")
lun "[name_genie_luna]..." ("angry", "base", "base", "downL")
lun "Don't think I've ever heard anyone call you just [name_genie_luna] before..." ("grin", "base", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_genie_luna == _("Professor"):
2023-03-01 22:14:00 +00:00
lun "Yes, [name_genie_luna]." ("base", "base", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_genie_luna == _("Partner"):
2023-03-01 22:14:00 +00:00
lun "[name_genie_luna]?" ("soft", "base", "raised", "mid")
2023-05-09 13:45:34 +00:00
gen "Yes, we're working together now, so it's only appropriate." ("base", xpos="far_left", ypos="head")
2023-03-01 22:14:00 +00:00
lun "Oh... Of course [name_genie_luna]." ("grin", "base", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_genie_luna == _("Master"):
2023-03-01 22:14:00 +00:00
lun "[name_genie_luna]?" ("soft", "narrow", "base", "mid")
lun "What are you a [name_genie_luna] of exactly?" ("angry", "base", "base", "mid")
2023-04-02 23:48:38 +00:00
if states.lun.tier >= 3:
2022-05-16 23:48:22 +00:00
gen "A master baiter!" ("grin", xpos="far_left", ypos="head")
lun "Oh, right!" ("smile", "base", "base", "mid")
2023-03-01 22:14:00 +00:00
lun "Thank you for allowing me to be your pupil, [name_genie_luna]." ("base", "base", "base", "mid")
2022-05-16 23:48:22 +00:00
else:
gen "*Err*...{w=0.4} Of the arts?" ("base", xpos="far_left", ypos="head")
lun "What arts?" ("angry", "narrow", "base", "mid")
gen "Avoiding confrontation." ("base", xpos="far_left", ypos="head")
lun "*Huh*?" ("mad", "base", "base", "mid")
gen "..." ("base", xpos="far_left", ypos="head")
lun "..." ("annoyed", "base", "base", "mid")
gen "..." ("base", xpos="far_left", ypos="head")
lun "Sir?" ("soft", "narrow", "base", "mid")
gen "..." ("base", xpos="far_left", ypos="head")
2023-03-01 22:14:00 +00:00
lun "[name_genie_luna]?" ("open", "base", "base", "mid")
2022-05-16 23:48:22 +00:00
gen "That's me." ("base", xpos="far_left", ypos="head")
2023-03-01 22:14:00 +00:00
lun "Okay, I'll call you [name_genie_luna] from now on." ("soft", "base", "base", "mid")
2022-05-16 23:48:22 +00:00
gen "(Another confrontation expertly avoided...)" ("base", xpos="far_left", ypos="head")
2024-05-01 18:08:10 +00:00
elif name_genie_luna == _("Daddy"):
2024-09-15 18:22:49 +00:00
$ achievements.unlock("daddy")
2023-03-01 22:14:00 +00:00
lun "[name_genie_luna]?" ("open", "narrow", "base", "mid")
2022-05-16 23:48:22 +00:00
gen "Yes..." ("base", xpos="far_left", ypos="head")
2023-05-09 13:45:34 +00:00
lun "But won't that be confusing?" ("annoyed", "narrow", "base", "mid")
2022-05-16 23:48:22 +00:00
gen "Would it?" ("base", xpos="far_left", ypos="head")
lun "Yes, that's usually what I call my father..." ("open", "base", "base", "R")
gen "I'm your daddy now..." ("base", xpos="far_left", ypos="head")
lun "*Huh*?" ("angry", "base", "base", "mid")
gen "Call me daddy you naughty girl!" ("angry", xpos="far_left", ypos="head")
2023-11-10 15:17:32 +00:00
lun "Oh...{w=0.4} Yes, I'm sorry [name_genie_luna]!" ("angry", "happyCl", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_genie_luna == _("Genie"):
2023-11-10 15:17:32 +00:00
lun "[name_genie_luna]..." ("open", "narrow", "base", "mid")
lun "Wouldn't it be a bit weird if I called you that?" ("annoyed", "base", "base", "mid")
gen "Why would it?" ("base", xpos="far_left", ypos="head")
lun "Wouldn't me calling you \"genie\" be the same as you calling me \"human\"?" ("soft", "narrow", "base", "mid")
gen "Genie's my name..." ("base", xpos="far_left", ypos="head")
lun "Oh...{w=0.4} How convenient!" ("soft", "base", "base", "stare")
2022-05-16 23:48:22 +00:00
else: #custom/fallback
2023-03-01 22:14:00 +00:00
lun "Okay, I'll call you [name_genie_luna] from now on..." ("base", "base", "base", "mid")
2022-05-16 23:48:22 +00:00
jump luna_talk
2023-03-01 22:14:00 +00:00
label name_luna_genie:
2022-05-16 23:48:22 +00:00
# NickName responses
2024-05-01 18:08:10 +00:00
if name_luna_genie == _("Miss Lovegood"):
2023-03-01 22:14:00 +00:00
lun "Of course, [name_genie_luna]." ("base", "wink", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_luna_genie == _("Luna"):
2022-05-16 23:48:22 +00:00
lun "But that's my first name!" ("angry", "base", "base", "mid")
gen "So?" ("base", xpos="far_left", ypos="head")
lun "Isn't it against the law?" ("mad", "narrow", "base", "mid")
gen "... Is what against the law?" ("base", xpos="far_left", ypos="head")
2023-05-09 13:45:34 +00:00
lun "Teachers and students referring to each other by their first name. I read an article about it in the quibbler." ("angry", "narrow", "raised", "mid")
gen "*Err*... No, they recently made it legal." ("base", xpos="far_left", ypos="head")
2022-05-16 23:48:22 +00:00
lun "Oh, How progressive!" ("soft", "base", "base", "stare")
2023-05-09 13:45:34 +00:00
lun "In that case, you can call me that!" ("smile", "base", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_luna_genie == _("Loony"):
2023-03-01 22:14:00 +00:00
lun "Do you really need to call me that, [name_genie_luna]?" ("upset", "base", "base", "mid")
2022-05-16 23:48:22 +00:00
lun "Other students call me that to make fun of me." ("upset", "base", "base", "R")
gen "I like it." ("grin", xpos="far_left", ypos="head")
lun "Alright then..." ("annoyed", "base", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_luna_genie == _("Girl"):
2023-03-01 22:14:00 +00:00
lun "Just [name_luna_genie]?" ("soft", "base", "raised", "mid")
2022-05-16 23:48:22 +00:00
gen "Yep." ("base", xpos="far_left", ypos="head")
lun "Alright, I suppose I am a girl after all." ("grin", "narrow", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_luna_genie == _("Partner"):
2023-03-01 22:14:00 +00:00
lun "[name_luna_genie]?" ("soft", "base", "base", "mid")
2023-03-20 14:56:52 +00:00
gen "Yes, we're partners in this venture, are we not?" ("base", xpos="far_left", ypos="head")
2022-05-16 23:48:22 +00:00
lun "Oh right!" ("angry", "base", "base", "mid")
lun "Of course, you can call me that!" ("grin", "base", "base", "mid")
2024-05-01 18:08:10 +00:00
elif name_luna_genie == _("Bimbo"):
2022-05-16 23:48:22 +00:00
lun "A what?" ("soft", "base", "base", "mid")
gen "A Bimbo..." ("base", xpos="far_left", ypos="head")
lun "Oh... Okay..." ("base", "base", "base", "mid")
gen "(...{w} Maybe she doesn't know what that means...)" ("base", xpos="far_left", ypos="head")
2024-05-01 18:08:10 +00:00
elif name_luna_genie == _("Minx"):
2022-05-16 23:48:22 +00:00
lun "A mink?" ("soft", "base", "base", "mid")
gen "No, a--" ("base", xpos="far_left", ypos="head")
lun "I love minks!" ("smile", "wide", "base", "mid")
gen "...{w=0.3} Great." ("base", xpos="far_left", ypos="head")
2024-05-01 18:08:10 +00:00
elif name_luna_genie == _("Cumslut"):
2022-05-16 23:48:22 +00:00
lun "Well I do love helping you cum..." ("grin", "narrow", "base", "downL")
lun "Sure, you can call me that." ("grin", "base", "base", "mid")
else: #Custom/fallback
2023-05-09 13:45:34 +00:00
lun "Sure, you can call me that!" ("base", "base", "base", "mid")
2022-05-16 23:48:22 +00:00
jump luna_talk