From 676a90f519331c909207e7e6ba88564c08103bbb Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Wed, 29 May 2024 20:33:31 +0100 Subject: [PATCH 1/3] Bug fix * Fixed menu scale --- game/scripts/gui/say.rpy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game/scripts/gui/say.rpy b/game/scripts/gui/say.rpy index 441044c8..ff9f626d 100644 --- a/game/scripts/gui/say.rpy +++ b/game/scripts/gui/say.rpy @@ -157,7 +157,7 @@ screen choice(items): vbox: at gui_choice_show_hide for i, entry in enumerate(items, 1): - $ scale = (1.0 * (32 / max(32, len(entry.caption)))) + $ scale = (1.0 * (28 / max(28, len(entry.caption)))) $ icon = entry.kwargs.get("icon", None) $ progress = entry.kwargs.get("progress", None) From e9cadcdc895ab4822145289fe98ae7d356ca42b7 Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Wed, 29 May 2024 21:31:12 +0100 Subject: [PATCH 2/3] Improve styling and implement confirm popup --- game/scripts/gui/frame.rpy | 21 +++++++++++++++------ game/scripts/gui/misc.rpy | 16 ++++++++++++---- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/game/scripts/gui/frame.rpy b/game/scripts/gui/frame.rpy index 4c010855..d5f0ed3e 100644 --- a/game/scripts/gui/frame.rpy +++ b/game/scripts/gui/frame.rpy @@ -5,7 +5,7 @@ label modal_popup(title, entry, img=None, confirm="Okay"): $ enable_game_menu() return -screen modal_popup(title, entry, img=None, confirm="Okay", xysize=(600, 350)): +screen modal_popup(title, entry, img=None, confirm="Okay"): modal True layer "interface" zorder 5 @@ -17,17 +17,15 @@ screen modal_popup(title, entry, img=None, confirm="Okay", xysize=(600, 350)): frame: at gui_modal_popup - xysize xysize + label title vbox: - ypos 20 - add img xalign 0.5 text entry - textbutton confirm align (1.0, 1.0) action Return(True) + textbutton confirm action Return(True) transform gui_fade: @@ -51,6 +49,8 @@ image gui_fade_both = Fixed(Frame(Image("gui/creamy_pumpkin_pie/fade_top.png", o style frame is empty: align (0.5, 0.5) + yminimum 200 + maximum (600, 450) fit_first True xfill False yfill False @@ -61,6 +61,7 @@ style frame_vbox: xalign 0.5 first_spacing 0 yspacing 5 + ypos 30 fit_first True xfill False yfill False @@ -75,12 +76,20 @@ style frame_label_text is who: outlines [(2, "#000000", 1, 1)] style frame_text is what: + xalign 0.5 + xoffset 0 + ypos 0 + xsize None color "#fff" outlines [(1, "#000000", 1, 1)] hinting "bytecode" - size 12 + size 16 + xmaximum 500 style frame_button is button: hover_background Frame(Image("gui/creamy_pumpkin_pie/choice_alt.png", oversample=4), 0, 4, 0, 4, tile=False) + xpadding 25 + align (0.5, 1.0) + style frame_button_text is choice_text: align (0.5, 0.5) \ No newline at end of file diff --git a/game/scripts/gui/misc.rpy b/game/scripts/gui/misc.rpy index e0fe9d22..d38d5dd6 100644 --- a/game/scripts/gui/misc.rpy +++ b/game/scripts/gui/misc.rpy @@ -15,17 +15,14 @@ screen confirm(message, yes_action=Return(True), no_action=Return(False)): modal True layer "interface" zorder 5 - style_prefix "frame" + style_prefix "confirm" add "gui_fade_both" at gui_fade frame: at gui_modal_popup - xysize (500, 250) vbox: - ypos 20 - text message hbox: @@ -35,6 +32,17 @@ screen confirm(message, yes_action=Return(True), no_action=Return(False)): ## Right-click and escape answer "no". key "game_menu" action no_action +style confirm_frame is frame +style confirm_vbox is frame_vbox +style confirm_hbox: + fit_first True + align (0.5, 1.0) + spacing 25 +style confirm_button is frame_button +style confirm_button_text is frame_button_text +style confirm_text is frame_text: + size 20 + # Skip indicator screen # # The skip_indicator screen is displayed to indicate that skipping is in From 792467e25a55e038d61260cc3dcaeb55bd826fd1 Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Wed, 29 May 2024 22:16:58 +0100 Subject: [PATCH 3/3] Handle choice menu overflow --- game/scripts/gui/say.rpy | 73 ++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/game/scripts/gui/say.rpy b/game/scripts/gui/say.rpy index ff9f626d..e084a95a 100644 --- a/game/scripts/gui/say.rpy +++ b/game/scripts/gui/say.rpy @@ -153,44 +153,52 @@ screen choice(items): variant "pc" default has_icons = any(x is not None for x in [e.kwargs.get("icon", None) for e in items]) + default columns = math.ceil(len(items) / 12) - vbox: + hbox: at gui_choice_show_hide - for i, entry in enumerate(items, 1): - $ scale = (1.0 * (28 / max(28, len(entry.caption)))) - $ icon = entry.kwargs.get("icon", None) - $ progress = entry.kwargs.get("progress", None) - + for column in range(columns): vbox: - spacing 2 + $ start_index = column * 12 + $ end_index = start_index + 12 + + for i, entry in enumerate(items[start_index:end_index], 1): + $ scale = (1.0 * (28 / max(28, len(entry.caption)))) + $ icon = entry.kwargs.get("icon", None) + $ progress = entry.kwargs.get("progress", None) - button: - action entry.action - if i < 10 and entry.action: - keysym ("K_"+str(i), "K_KP"+str(i)) + button: + action entry.action - text "[i]" style "choice_number": - at gui_perspective + # Handle columns + if columns > 1: + xmaximum (config.screen_width // columns) - hbox: - null width 16 - at gui_perspective, gui_perspective_hover + if i < 10 and entry.action: + keysym ("K_"+str(i), "K_KP"+str(i)) - if has_icons: - if icon: - add icon xysize (32, 32) xcenter 12 yalign 1.0 yoffset -4 - else: - null width 32 + text "[i+start_index]" style "choice_number": + at gui_perspective - text entry.caption size 32 * scale + hbox: + null width 16 + at gui_perspective, gui_perspective_hover - if progress: - bar value StaticValue(progress[0], progress[1]) offset (-16, 22) - - if progress[0] == progress[1]: - text _("{wave}{size=20}Done!{/size}{/wave}") style "choice_progress" at transform: - rotate 12.5 - gui_hover + if has_icons: + if icon: + add icon xysize (32, 32) xcenter 12 yalign 1.0 yoffset -4 + else: + null width 32 + + text entry.caption size 32 * scale + + if progress: + bar value StaticValue(progress[0], progress[1]) offset (-16, 22) + + if progress[0] == progress[1]: + text _("{wave}{size=20}Done!{/size}{/wave}") style "choice_progress" at transform: + rotate 12.5 + gui_hover transform gui_perspective: @@ -257,12 +265,13 @@ style choice_button is button style choice_button_text is button_text style choice_vbox: - xalign 0.5 - yanchor 1.0 - ypos 0.75 + align (0.5, 1.0) spacing 10 style choice_hbox: + xalign 0.5 + yanchor 1.0 + ypos 0.75 spacing 2 style choice_button: