Menus and bug fixes

* Reimplemented named menu options and a back/cancel button support
* Reimplemented icon harts
* Fixed flag check in blowjob public request
* Fixed a potential resolution glitch in gui initialisation
* Fixed a potential label parsing bug in Hermione's summon menu
This commit is contained in:
LoafyLemon 2023-06-28 19:03:29 +01:00
parent 2f74221abb
commit dd128db58c
6 changed files with 58 additions and 44 deletions

View File

@ -132,7 +132,7 @@ label end_hg_pr_blowjob:
$ hermione.set_cum(None)
# Increase Points
if _events_filtered_completed_all:
if not _events_filtered_completed_all:
$ states.her.public_level += 1
jump end_hermione_event

View File

@ -87,13 +87,13 @@ default her_ev_anal_t6_e2 = Event(id="anal_t6_e2", label="hg_anal_sex_2_intro",
default her_ev_anal_t6_e3 = Event(id="anal_t6_e3", label="hg_anal_sex_3", priority=7, req="states.her.tier >= 6", queue="her_eventqueue_anal", autoenqueue=True, autodequeue=False)
define hermione_favors = [
"her_eventqueue_talk_to_me",
"her_eventqueue_admire_panties",
"her_eventqueue_admire_breasts",
"her_eventqueue_grope",
"her_eventqueue_strip_for_me",
"her_eventqueue_handjob",
"her_eventqueue_titjob",
"her_eventqueue_blowjob",
"her_eventqueue_sex",
("her_eventqueue_talk_to_me", "Talk to me!"),
("her_eventqueue_admire_breasts", "Show me your tits!"),
("her_eventqueue_admire_panties", "Show me your panties!"),
("her_eventqueue_grope", "Grope her!"),
("her_eventqueue_strip_for_me", "Strip for me!"),
("her_eventqueue_handjob", "Give me a handy!"),
("her_eventqueue_titjob", "Give me a tittyjob!"),
("her_eventqueue_blowjob", "Suck it!"),
("her_eventqueue_sex", "Let's have sex!"),
]

View File

@ -148,12 +148,12 @@ default her_ev_sex_public_t6_e2_hub = Event(id="sex_public_t6_e2_hub", label="hg
default her_ev_sex_public_t6_e3_hub = Event(id="sex_public_t6_e3_hub", label="hg_pr_sex", req="states.her.tier >= 6", autoenqueue=True, autodequeue=False, queue="her_eventqueue_sex_public", subevents=["her_ev_sex_public_t6_e4"])
define hermione_requests = [
"her_eventqueue_flirt_students",
"her_eventqueue_flirt_teachers",
"her_eventqueue_grope_public",
"her_eventqueue_flash_public",
"her_eventqueue_kiss_public",
"her_eventqueue_handjob_public",
"her_eventqueue_blowjob_public",
"her_eventqueue_sex_public"
("her_eventqueue_flirt_students", "Flirt with students!"),
("her_eventqueue_flirt_teachers", "Flirt with teachers!"),
("her_eventqueue_grope_public", "Let them grope you!"),
("her_eventqueue_flash_public", "Flash your tits!"),
("her_eventqueue_kiss_public", "Kiss a girl!"),
("her_eventqueue_handjob_public", "Give a handjob!"),
("her_eventqueue_blowjob_public", "Give a blowjob!"),
("her_eventqueue_sex_public", "Have sex!")
]

View File

@ -151,7 +151,7 @@ label hermione_favor_menu:
if not is_in_lead(gryffindor):
label silver_requests_root:
label .skip_points_check:
if her_level_up != None:
call tutorial("milestones")
@ -165,13 +165,15 @@ label hermione_favor_menu:
call tutorial("hearts")
$ result = show_events_menu(hermione_favors)
$ result.start()
if result:
$ result.start()
jump hermione_favor_menu
"-Public requests-" (icon="interface/icons/small/star_yellow.webp", style="disabled") if not game.daytime:
nar "Public requests are available during the day only."
jump silver_requests_root
jump .skip_points_check
"-Public requests-" (icon="interface/icons/small/star_yellow.webp") if game.daytime:
if states.her.public_level >= 16 and not "public" in states.her.ev.yule_ball.variant:
@ -186,16 +188,18 @@ label hermione_favor_menu:
$ states.her.ev.yule_ball.variant = "public"
"No, go back.":
$ renpy.music.set_volume(1.0, 1.0)
jump silver_requests_root
jump .skip_points_check
$ result = show_events_menu(hermione_requests)
$ result.start()
if result:
$ result.start()
jump hermione_favor_menu
"-Public Shaming-" (icon="interface/icons/small/star_pink.webp", style="disabled") if not game.daytime:
nar "Public Shaming events are available during the day only."
jump silver_requests_root
jump .skip_points_check
"-Public Shaming-" (icon="interface/icons/small/star_pink.webp")if game.daytime:
label not_now_ps:
@ -210,7 +214,7 @@ label hermione_favor_menu:
result = renpy.display_menu(menu_choices)
if result == "nvm":
jump silver_requests_root
jump .skip_points_check
elif result == "vague":
call favor_not_ready
jump not_now_ps
@ -227,19 +231,19 @@ label hermione_favor_menu:
her "But I'll do anything for you, [name_genie_hermione]..." ("smile", "happy", "base", "mid")
her "But if you really need it, I may as well..." ("smile", "happy", "base", "mid")
her "But I'll do it anyway..." ("smile", "happy", "base", "mid")
jump silver_requests_root
jump .skip_points_check
elif states.her.level >=20 and states.her.favors_convinced_stage == 2:
random:
her "But an even bigger lead wouldn't hurt, I suppose..." ("base", "happy", "base", "mid")
her "But since you've been helping me earn points for my house, I'll do it anyway..." ("base", "happy", "base", "mid")
her "But since I'm already here, I might as well do it..." ("base", "happy", "base", "mid")
jump silver_requests_root
jump .skip_points_check
elif states.her.level >=18 and states.her.favors_convinced_stage == 2:
random:
her "Although, considering what you said before... I'll do it anyway." ("soft", "wink", "base", "mid")
her "Although, I suppose another house may catch up... Okay, I'll do it." ("soft", "wink", "base", "mid")
her "Although, an ever bigger lead would really show the Slytherins which house is the best." ("base", "wink", "base", "mid")
jump silver_requests_root
jump .skip_points_check
elif states.her.level >=16:
her "I have told you before, [name_genie_hermione], it was just a one time thing..." ("open", "happy", "base", "mid")
gen "What about tomorrow though?" ("base", xpos="far_left", ypos="head")
@ -263,7 +267,7 @@ label hermione_favor_menu:
her "Yes... Just like that." ("base", "closed", "base", "mid")
gen "That's my girl!" ("grin", xpos="far_left", ypos="head")
$ states.her.favors_convinced_stage = 2
jump silver_requests_root
jump .skip_points_check
gen "If you do it, you could secure the win for your house you know..." ("base", xpos="far_left", ypos="head")
@ -271,12 +275,12 @@ label hermione_favor_menu:
her "You really know how to talk me through, [name_genie_hermione]." ("soft", "narrow", "worried", "down")
her "Okay I agree." ("open", "narrow", "base", "down")
$ states.her.favors_convinced_stage = 2
jump silver_requests_root
jump .skip_points_check
elif states.her.level >=16 and not states.her.favors_convinced_stage == 1:
her "I guess you're right..." ("open", "happy", "base", "mid_soft")
her "I'll do it... But just this once okay?" ("grin", "happyCl", "base", "mid")
$ states.her.favors_convinced_stage = 1
jump silver_requests_root
jump .skip_points_check
else:
her "I could..." ("soft", "narrow", "base", "mid_soft")
her "But I don't want to." ("normal", "closed", "base", "mid")

View File

@ -311,34 +311,44 @@ init -1 python:
total_applicable = len(filtered_queue)
total_events = len(queue.queue)
completed = 0
hints = []
icons = []
path = "interface/icons/small/"
for ev in filtered_queue:
if ev.completed:
hints.append("v")
icons.append("interface/icons/small/heart_red.webp")
completed += 1
elif ev.completed_failed:
hints.append("x")
icons.append("interface/icons/small/heart_black.webp")
completed += 1
else:
hints.append("o")
icons.append("interface/icons/small/heart_empty.webp")
s = "(" + "".join(hints) + f") {completed}/{total_applicable}"
hints = f" {completed}/{total_applicable}/{total_events}"
if config.developer:
s += f"/{total_events}"
return s
return (hints, icons)
l = []
for queue in queues:
for queue, title in queues:
if isinstance(queue, str):
queue = getattr(store, queue)
title = f"-{queue.id}- {menu_hints(queue, filter)}"
hints, icons = menu_hints(queue, filter)
l.append( (title, queue) )
_kwargs = {"progress": icons}
title = f"-{title}-"
if config.developer:
title += hints
location = renpy.game.context().current
choice = ui.ChoiceReturn(title, queue, location, kwargs=_kwargs)
l.append( (title, choice) )
l.append( ("-Never mind-", False) )
return renpy.display_menu(l, **kwargs)

View File

@ -8,7 +8,7 @@ init python in gui:
import store
from store import settings
init(1080, 600)
init(1280, 720)
def is_dark():
theme = settings.get("theme")