2022-05-16 23:48:22 +00:00
|
|
|
|
|
|
|
label summon_luna:
|
|
|
|
|
|
|
|
$ active_girl = "luna"
|
|
|
|
$ last_character = "luna"
|
|
|
|
|
|
|
|
$ luna_busy = True
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2023-03-01 22:14:00 +00:00
|
|
|
lun "[name_genie_luna]..." ("base", "base", "base", "mid", xpos="base", ypos="base")
|
2022-05-16 23:48:22 +00:00
|
|
|
|
|
|
|
if spectrespecs_E3 and not spectrespecs_E4:
|
|
|
|
jump spectrespecs_E4
|
|
|
|
|
|
|
|
label luna_requests:
|
|
|
|
|
|
|
|
# Reset
|
|
|
|
call reset_menu_position
|
|
|
|
lun "" (xpos="base",ypos="base")
|
|
|
|
|
|
|
|
menu:
|
|
|
|
|
|
|
|
# Talk
|
|
|
|
"-Talk-" (icon="interface/icons/small/talk.webp"):
|
|
|
|
if lun_mood > 0:
|
|
|
|
lun "I have nothing to say to you sir..."
|
|
|
|
jump luna_requests
|
|
|
|
|
|
|
|
call luna_chitchat
|
|
|
|
jump luna_talk
|
|
|
|
|
|
|
|
# Personal Favors
|
|
|
|
"-Sexual Favours-" (icon="interface/icons/small/condom.webp") if luna_favors:
|
|
|
|
jump luna_favor_menu
|
|
|
|
|
|
|
|
"-Sexual Favours-" (style="disabled") if not luna_favors:
|
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
|
|
|
|
"-Wardrobe-" (icon="interface/icons/small/wardrobe.webp") if luna_wardrobe_unlocked:
|
2022-11-04 21:17:41 +00:00
|
|
|
hide luna_main with d1
|
2022-05-16 23:48:22 +00:00
|
|
|
call wardrobe
|
|
|
|
jump luna_requests
|
|
|
|
|
|
|
|
"-Wardrobe-" (style="disabled") if not luna_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
|
|
|
|
|
|
|
|
"-Give Item-" (icon="interface/icons/small/gift.webp"):
|
|
|
|
$ TBA_message()
|
|
|
|
jump luna_requests
|
|
|
|
|
|
|
|
# hide luna_main with d1
|
|
|
|
# call gift_menu
|
|
|
|
# jump luna_requests
|
|
|
|
|
|
|
|
# Dismiss
|
|
|
|
"-Dismiss her-":
|
|
|
|
stop music fadeout 3.0
|
|
|
|
|
|
|
|
if game.daytime:
|
|
|
|
if lun_mood >= 3:
|
|
|
|
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:
|
|
|
|
if lun_mood >= 3:
|
|
|
|
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:
|
|
|
|
if lun_tier == 1 and lun_whoring >= 3:
|
|
|
|
if not ll_pf_talk.is_event_complete(1, 3):
|
|
|
|
return
|
|
|
|
|
|
|
|
$ lun_level_up = 1
|
|
|
|
elif lun_tier == 2 and lun_whoring >= 6:
|
|
|
|
if not ll_pf_inspect.is_event_complete(2, 3):
|
|
|
|
return
|
|
|
|
$ lun_level_up = 2
|
|
|
|
elif lun_tier == 3 and lun_whoring >= 9:
|
|
|
|
# T4 NOT AVAILABLE
|
|
|
|
return
|
|
|
|
|
|
|
|
if not ll_pf_masturbate.is_event_complete(3, 3):
|
|
|
|
return
|
|
|
|
|
|
|
|
$ lun_level_up = 3
|
|
|
|
elif lun_tier == 4 and lun_whoring >= 13:
|
|
|
|
# T5 NOT AVAILABLE
|
|
|
|
return
|
|
|
|
|
|
|
|
# Requirement: Tier 4 - Blow me T4 E3
|
|
|
|
$ lun_level_up = 4
|
|
|
|
return
|
|
|
|
|
|
|
|
label luna_level_up(tier=None):
|
|
|
|
|
|
|
|
call bld
|
|
|
|
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")
|
|
|
|
|
|
|
|
$ lun_tier = tier+1
|
|
|
|
$ lun_level_up = None
|
|
|
|
$ lun_mood = 0
|
|
|
|
|
|
|
|
pause.5
|
2023-03-11 19:43:02 +00:00
|
|
|
nar "Luna has reached {i}favour tier{/i} [lun_tier]!"
|
2022-05-16 23:48:22 +00:00
|
|
|
|
|
|
|
call update_lun_tier
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
# Luna Favor Menu
|
|
|
|
label luna_favor_menu:
|
|
|
|
call update_luna_favors
|
|
|
|
|
|
|
|
menu:
|
|
|
|
"-Level Up-" (icon="interface/icons/small/levelup.webp") if lun_level_up != None:
|
|
|
|
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:
|
|
|
|
python:
|
|
|
|
menu_choices = []
|
|
|
|
for i in ll_favor_list:
|
|
|
|
if i in []: # Not in the game yet.
|
|
|
|
menu_choices.append(gui.menu_item("-Not available-", "na", style="disabled"))
|
|
|
|
elif i.start_tier > lun_tier:
|
|
|
|
menu_choices.append(gui.menu_item("-Not Ready-", "vague", style="disabled"))
|
|
|
|
else:
|
|
|
|
menu_choices.append(i.get_menu_item())
|
|
|
|
|
|
|
|
menu_choices.append(("-Never mind-", "nvm"))
|
|
|
|
result = renpy.display_menu(menu_choices)
|
|
|
|
|
|
|
|
if result == "nvm":
|
|
|
|
jump luna_favor_menu
|
|
|
|
elif result == "vague":
|
|
|
|
call favor_not_ready
|
|
|
|
jump .personal
|
|
|
|
elif result == "na":
|
|
|
|
call not_available
|
|
|
|
jump .personal
|
|
|
|
else:
|
|
|
|
$ renpy.jump(result)
|
|
|
|
|
|
|
|
"-Public Requests-" (icon="interface/icons/small/star_yellow.webp", style="disabled"):
|
|
|
|
call not_available
|
|
|
|
jump luna_favor_menu
|
|
|
|
|
|
|
|
"-Never mind-":
|
|
|
|
jump luna_requests
|
|
|
|
|
|
|
|
label update_luna_favors:
|
|
|
|
python:
|
|
|
|
for i in ll_favor_list:
|
|
|
|
i.tier = lun_tier
|
|
|
|
return
|
|
|
|
|
|
|
|
label luna_talk:
|
|
|
|
# General.
|
|
|
|
menu:
|
|
|
|
"-Ask her to cheer for Ravenclaw-" if cho_quid.gryffindor_failed and not cho_quid.E11_complete:
|
|
|
|
jump cho_quid_E11
|
|
|
|
|
|
|
|
"-Address me only as-" if spectrespecs_E4:
|
|
|
|
menu:
|
|
|
|
"-Sir-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_genie_luna = "Sir"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Dumbledore-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_genie_luna = "Dumbledore"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Professor-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_genie_luna = "Professor"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Partner-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_genie_luna = "Partner"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Master-" if lun_tier >= 2:
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_genie_luna = "Master"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Daddy-" if lun_tier >= 2:
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_genie_luna = "Daddy"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Custom Input-" if lun_tier >= 3:
|
2023-03-01 22:14:00 +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
|
|
|
|
|
|
|
|
"-From now on I will refer to you as-" if spectrespecs_E4:
|
|
|
|
menu:
|
|
|
|
"-Miss Lovegood-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Miss Lovegood"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Luna-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Luna"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Loony-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Loony"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Girl-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Girl"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Partner-":
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Partner"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Bimbo-" if lun_tier >= 2:
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Bimbo"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Minx-" if lun_tier >= 3:
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Minx"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Cumslut-" if lun_tier >= 5:
|
2023-03-01 22:14:00 +00:00
|
|
|
$ name_luna_genie = "Cumslut"
|
2022-05-16 23:48:22 +00:00
|
|
|
"-Custom Input-" if lun_tier >= 3:
|
2023-03-01 22:14:00 +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
|
2023-03-01 22:14:00 +00:00
|
|
|
if name_genie_luna == "Sir":
|
|
|
|
lun "Certainly, [name_genie_luna]." ("base", "base", "base", "mid")
|
|
|
|
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")
|
|
|
|
elif name_genie_luna == "Professor":
|
|
|
|
lun "Yes, [name_genie_luna]." ("base", "base", "base", "mid")
|
|
|
|
elif name_genie_luna == "Partner":
|
|
|
|
lun "[name_genie_luna]?" ("soft", "base", "raised", "mid")
|
2022-05-16 23:48:22 +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")
|
|
|
|
elif name_genie_luna == "Master":
|
|
|
|
lun "[name_genie_luna]?" ("soft", "narrow", "base", "mid")
|
|
|
|
lun "What are you a [name_genie_luna] of exactly?" ("angry", "base", "base", "mid")
|
2022-05-16 23:48:22 +00:00
|
|
|
if lun_tier >= 3:
|
|
|
|
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")
|
2023-03-01 22:14:00 +00:00
|
|
|
elif name_genie_luna == "Daddy":
|
|
|
|
lun "[name_genie_luna]?" ("open", "narrow", "base", "mid")
|
2022-05-16 23:48:22 +00:00
|
|
|
gen "Yes..." ("base", xpos="far_left", ypos="head")
|
|
|
|
lun "But wont that be confusing?" ("annoyed", "narrow", "base", "mid")
|
|
|
|
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-03-01 22:14:00 +00:00
|
|
|
lun "Oh...{w=0.3} Yes, I'm sorry [name_genie_luna]!" ("angry", "happyCl", "base", "mid")
|
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
|
2023-03-01 22:14:00 +00:00
|
|
|
if name_luna_genie == "Miss Lovegood":
|
|
|
|
lun "Of course, [name_genie_luna]." ("base", "wink", "base", "mid")
|
|
|
|
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")
|
|
|
|
lun "Teachers and students calling 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")
|
|
|
|
lun "Oh, How progressive!" ("soft", "base", "base", "stare")
|
|
|
|
lun "Then of course, you can call me that!" ("smile", "base", "base", "mid")
|
2023-03-01 22:14:00 +00:00
|
|
|
elif name_luna_genie == "Loony":
|
|
|
|
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")
|
2023-03-01 22:14:00 +00:00
|
|
|
elif name_luna_genie == "Girl":
|
|
|
|
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")
|
2023-03-01 22:14:00 +00:00
|
|
|
elif name_luna_genie == "Partner":
|
|
|
|
lun "[name_luna_genie]?" ("soft", "base", "base", "mid")
|
2022-05-16 23:48:22 +00:00
|
|
|
gen "Yes, we're partners in venture are we not?" ("base", xpos="far_left", ypos="head")
|
|
|
|
lun "Oh right!" ("angry", "base", "base", "mid")
|
|
|
|
lun "Of course, you can call me that!" ("grin", "base", "base", "mid")
|
2023-03-01 22:14:00 +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")
|
2023-03-01 22:14:00 +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")
|
2023-03-01 22:14:00 +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
|
|
|
|
lun "That's not too bad... Sure you can call me that." ("base", "base", "base", "mid")
|
|
|
|
|
|
|
|
jump luna_talk
|