Merge pull request 'Improved epilgoue menu' (#250) from improved_epilogue_menu into master

Reviewed-on: https://git.cavemanon.xyz/Cavemanon/SnootGame/pulls/250
Reviewed-by: Legalo <legalo@noreply.git.cavemanon.xyz>
This commit is contained in:
Mappening 2024-10-07 03:00:23 +00:00
commit 40ec930ab3
10 changed files with 114 additions and 221 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View file

@ -137,6 +137,7 @@ default preferences.afm_time = 15
define config.developer = "auto"
default persistent.use_epilogue_menu = False
default persistent.enable_debug_scores = config.developer
default persistent.enable_chapter_select = config.developer
default persistent.lewd = False

View file

@ -408,18 +408,6 @@ image bonus_flash:
repeat 4
image template_black_m = Composite(
(511, 129),
(6, 5), Crop((0, 0, 511-12, 129-12), Solid("#000000", width=2, height=2)),
(0, 0), "gui/button/menubuttons/template_idle.png",
(0, 0), "gui/button/menubuttons/template_idle.png"
)
image template_black:
"template_black_m"
matrixcolor TintMatrix(Color((0, 0, 0)))
alpha 0.8
screen bonus_chapter_button(f="gui/button/menubuttons/template_idle.png"):
#("gui/button/menubuttons/template_idle.png", "Bonus Chapters", ShowMenu("ex_ch_menu"))
button:
@ -450,23 +438,28 @@ transform bonus_notif:
pause 6.00
easeout_cubic 0.65 alpha 0
screen main_menu_background(frame=True):
# The style prefix needs to be set outside of this screen if you want to have the sidebar graphic
if persistent.use_epilogue_menu:
add "big ending"
else:
add gui.main_menu_background
## This empty frame darkens the main menu.
if frame:
frame:
background "gui/overlay/main_menu.png"
screen main_menu():
## This ensures that any other menu screen is replaced.
tag menu
style_prefix "main_menu"
if renpy.seen_image("big ending"):
style_prefix "main_menu_ex"
add "big ending"
else:
style_prefix "main_menu"
add gui.main_menu_background
## This empty frame darkens the main menu.
frame:
pass
use main_menu_background
$ main_menu_button_img = "gui/button/menubuttons/template_idle_epilogue.png" if persistent.use_epilogue_menu else "gui/button/menubuttons/template_idle.png"
if (persistent.old_endings != persistent.endings) or (persistent.bonus_chapters != persistent.old_bonus_chapters and (persistent.bonus_chapters == 0b111111111)):
fixed:
@ -501,27 +494,16 @@ screen main_menu():
spacing 10
xpos 1885
ypos 1130
if renpy.seen_image('big ending'):
use main_menu_button("template_black", "Start", Start())
use bonus_chapter_button("template_black")
use main_menu_buttons("template_black",
[
[ _("Load"), ShowMenu("load") ],
[ _("Options"), ShowMenu("preferences") ],
[ _("Extras"), ShowMenu("extras") ], \
[ _("Quit"), Quit(confirm=not main_menu) ]
] )
else:
use main_menu_button("gui/button/menubuttons/template_idle.png", "Start", Start())
use bonus_chapter_button()
use main_menu_buttons("gui/button/menubuttons/template_idle.png",
[
[ _("Load"), ShowMenu("load") ],
[ _("Options"), ShowMenu("preferences") ],
[ _("Extras"), ShowMenu("extras") ], \
[ _("Quit"), Quit(confirm=not main_menu) ]
] )
#on "show" action renpy.start_predict_screen("cg_gallery")
use main_menu_button(main_menu_button_img, "Start", Start())
use bonus_chapter_button(main_menu_button_img)
use main_menu_buttons(main_menu_button_img,
[
[ _("Load"), ShowMenu("load") ],
[ _("Options"), ShowMenu("preferences") ],
[ _("Extras"), ShowMenu("extras") ], \
[ _("Quit"), Quit(confirm=not main_menu) ]
] )
style main_menu_frame is empty
style main_menu_vbox is vbox
@ -533,8 +515,6 @@ style main_menu_frame:
xsize 420
yfill True
background "gui/overlay/main_menu.png"
style main_menu_vbox:
xalign 1.0
xoffset -30
@ -551,26 +531,6 @@ style main_menu_text:
style main_menu_title:
properties gui.text_properties("title")
style main_menu_ex is main_menu
style main_menu_ex_vbox is main_menu_vbox
style main_menu_ex_text is main_menu_text
style main_menu_ex_frame is main_menu_frame
#style main_menu_ex_button:
#color "#222"
#background "gui/button/menubuttons/template_idle.png"
#xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5
#style main_menu_ex_button:
#color "#222"
#style main_menu_version:
# properties gui.text_properties("version")
# style
## Game Menu screen ############################################################
##
## This lays out the basic common structure of a game menu screen. It's called
@ -585,7 +545,7 @@ screen game_menu(title, scroll=None, yinitial=0.0, spacing=0):
style_prefix "game_menu"
if main_menu:
add gui.main_menu_background
use main_menu_background(False)
else:
add gui.game_menu_background
@ -710,12 +670,11 @@ screen about():
tag menu
style_prefix "main_menu"
add gui.main_menu_background
add gui.extras_submenu_panel
## This empty frame darkens the main menu.
frame:
pass
use main_menu_background
if persistent.use_epilogue_menu:
add "gui/overlay/extras_submenu_panel_epilogue.png"
else:
add gui.extras_submenu_panel
## The use statement includes another screen inside this one. The actual
## contents of the main menu are in the navigation screen.
@ -726,76 +685,14 @@ screen about():
xoffset 80
xmaximum 1100
label "[config.name!t]"
text _("Version [config.version!t]\n")
text _("Version [config.version!t]\n") outlines [ (absolute(1), "#000", absolute(0), absolute(0)) ]
## gui.about is usually set in options.rpy.
if gui.about:
text "[gui.about!t]\n"
style_prefix "quick"
text _("{size=30}Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]\nTo find more information about the game (and its source code) please visit {a=https://www.snootgame.xyz/}our website{/a}.{/size}") text_align 0
use extrasnavigation
## Updates screen ################################################################
##
## This screen houses the updates option using the built-in updates capabilities of Ren'Py.
##
screen updates():
tag menu
style_prefix "main_menu"
add gui.main_menu_background
add gui.extras_submenu_panel
## This empty frame darkens the main menu.
frame:
pass
## The use statement includes another screen inside this one. The actual
## contents of the main menu are in the navigation screen.
vbox:
yalign 0.00
yoffset 100
xoffset 80
xmaximum 1100
label "[config.name!t]"
text _("Version [config.version!t]")
if updater.can_update():
label _("{color=#00FF00}{size=32}Update directory exists, updating is possible!\n{/size}{/color}")
else:
label _("{color=#FF0000}{size=32}Update directory does not exist or is corrupt!\n{/size}{/color}")
label _("Auto Update:")
label _("{color=#FFFFFF}{size=32}Automatic Updates: [persistent.autoup!t]{/size}{/color}")
textbutton _("{size=36}Toggle Automatic Updates\n{/size}") action [Notify("Toggling Automatic Updates..."), Function(ToggleAutoUpdate)]
label _("Update Checker:")
label _("{color=#FFFFFF}{size=32}[persistent.updateresult!t]{/size}{/color}")
textbutton _("{size=36}Check for Update\n{/size}") activate_sound "audio/ui/uiClick.wav" action [Notify("Checking for update..."), Function(UpdateCheck)]
label _("Updater:")
label _("{color=#FFFFFF}{size=32}Server URL (click to edit):{/size}{/color}")
default input_on = False
button:
key_events True
if input_on:
input:
default "[persistent.updateWebServer!t]" size 36 color '#FFFFFF'
value FieldInputValue(persistent, 'updateWebServer')
length 49
copypaste True
else:
text persistent.updateWebServer size 36 color '#FFFF00'
action ToggleScreenVariable('input_on')
style_prefix "quick"
if persistent.updateresult != "No new version is available":
textbutton _("{size=36}Update Now!\n{/size}") activate_sound "audio/ui/uiNotification.wav" action [updater.Update(persistent.updateWebServer, force=False)]
else:
textbutton _("{size=36}Update Now!\n{/size}") activate_sound "audio/ui/uiFail.wav" action [Notify("Nothing to update to!")]
text _("{size=30}Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]\nTo find more information about the game (and its source code) please visit {a=https://www.snootgame.xyz/}our website{/a}.{/size}") text_align 0 outlines [ (absolute(1), "#000", absolute(0), absolute(0)) ]
use extrasnavigation
## Load and Save screens #######################################################
@ -977,22 +874,23 @@ screen preferences():
textbutton _("Window") activate_sound "audio/ui/uiOptionOn.wav" action Preference("display", "any window")
textbutton _("Fullscreen") activate_sound "audio/ui/uiOptionOn.wav" action Preference("display", "fullscreen")
vbox:
style_prefix "radio"
label _("Rollback Side")
textbutton _("Disable") activate_sound "audio/ui/uiOptionOn.wav" action Preference("rollback side", "disable")
textbutton _("Left") activate_sound "audio/ui/uiOptionOn.wav" action Preference("rollback side", "left")
textbutton _("Right") activate_sound "audio/ui/uiOptionOn.wav" action Preference("rollback side", "right")
vbox:
style_prefix "check"
label _("Requires Restart")
textbutton _("Enable Forward-Scroll Movement") action [Function(onclick_audio, persistent.scroll), ToggleVariable("persistent.scroll", True, False)]
if renpy.variant(["mobile", "steam_deck"]):
vbox:
style_prefix "radio"
label _("Rollback Side")
textbutton _("Disable") activate_sound "audio/ui/uiOptionOn.wav" action Preference("rollback side", "disable")
textbutton _("Left") activate_sound "audio/ui/uiOptionOn.wav" action Preference("rollback side", "left")
textbutton _("Right") activate_sound "audio/ui/uiOptionOn.wav" action Preference("rollback side", "right")
vbox:
style_prefix "check"
label _("Naughty Stuff")
textbutton _("Enable Lewd Images") action [Function(onclick_audio, persistent.lewd), ToggleVariable("persistent.lewd", True, False)]
vbox:
style_prefix "check"
label _("Requires Restart")
textbutton _("Enable Forward-Scroll Movement") action [Function(onclick_audio, persistent.scroll), ToggleVariable("persistent.scroll", True, False)]
vbox:
style_prefix "check"
label _("Skip")
@ -1019,10 +917,18 @@ screen preferences():
else:
$ debug_story_variables(False)
vbox:
style_prefix "check"
label _("Gallery")
textbutton _("Enable Edgescrolling") action [Function(onclick_audio, persistent.gallery_edgescroll), ToggleVariable("persistent.gallery_edgescroll", True, False)]
if renpy.variant(["mobile", "steam_deck"]):
vbox:
style_prefix "check"
label _("Gallery")
textbutton _("Enable Edgescrolling") action [Function(onclick_audio, persistent.gallery_edgescroll), ToggleVariable("persistent.gallery_edgescroll", True, False)]
if renpy.seen_image("big ending"):
vbox:
style_prefix "radio"
label _("Menu Style")
textbutton _("Original") activate_sound "audio/ui/uiOptionOn.wav" action SetVariable("persistent.use_epilogue_menu", False)
textbutton _("Epilogue") activate_sound "audio/ui/uiOptionOn.wav" action SetVariable("persistent.use_epilogue_menu", True)
vbox:
xsize 676
@ -1274,11 +1180,7 @@ screen extras():
style_prefix "main_menu"
add gui.main_menu_background
## This empty frame darkens the main menu.
frame:
pass
use main_menu_background
use extrasnavigation
@ -1298,7 +1200,10 @@ screen extrasnavigation():
spacing 10
xpos 1885
ypos (1269 if persistent.enable_chapter_select else 1130)
use main_menu_buttons("gui/button/menubuttons/template_idle.png",
$ main_menu_button_img = "gui/button/menubuttons/template_idle_epilogue.png" if persistent.use_epilogue_menu else "gui/button/menubuttons/template_idle.png"
use main_menu_buttons(main_menu_button_img,
[
[ _("Help"), ShowMenu("help") ],
[ _("About"), ShowMenu("about") ],
@ -1321,12 +1226,13 @@ screen help():
style_prefix "main_menu"
add gui.main_menu_background
add gui.extras_submenu_panel
use main_menu_background
if persistent.use_epilogue_menu:
add "gui/overlay/extras_submenu_panel_epilogue.png"
else:
add gui.extras_submenu_panel
## This empty frame darkens the main menu.
frame:
pass
default device = "keyboard"
@ -1891,31 +1797,6 @@ screen quick_menu():
[ _("Menu"), ShowMenu(), NullAction() ] \
] )
screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py)
variant "mobile"
vbox:
xpos 1940
yalign 0.03
if persistent.splashtype == 1:
add "gui/sneedgame.png"
else:
add "gui/snootgame.png"
vbox:
spacing 10
xpos 1885
ypos (1269 if persistent.enable_chapter_select else 1130)
use main_menu_buttons("gui/button/menubuttons/template_idle.png",
[
[ _("Help"), ShowMenu("help") ],
[ _("About"), ShowMenu("about") ],
[ _("Gallery"), ShowMenu("cg_gallery") ],
*([(_("Chapter Select"), Start("chapter_select"))] if persistent.enable_chapter_select else []),
[ _("Mods"), ShowMenu("mod_menu") ],
[ _("Return"), ShowMenu("main_menu") ]
] )
add Null(0, 129)
style radio_button:
variant "mobile"
foreground "gui/phone/button/radio_[prefix_]foreground.png"

View file

@ -1041,6 +1041,7 @@ label chapter_x10:
window auto
pause 0.5
$ persistent.use_epilogue_menu = True
scene big ending with Dissolve(1)
scene big blending with Dissolve(1)
pause 6

View file

@ -97,9 +97,12 @@ screen cg_gallery(origin = 'CG'):
key "game_menu" action ShowMenu("main_menu")
# Bg for frame
add gui.main_menu_background
use main_menu_background(False)
# Frame
add gui.game_menu_background
if persistent.use_epilogue_menu:
add "gui/game_menu_epilogue.png"
else:
add gui.game_menu_background
tag menu

View file

@ -65,12 +65,7 @@ screen ex_ch_menu():
tag menu
style_prefix "main_menu"
add gui.main_menu_background
frame:
xsize 420
yfill True
background "gui/overlay/main_menu.png"
use main_menu_background
#side_yfill True
vbox:
@ -92,14 +87,15 @@ screen ex_ch_menu():
mousewheel True
draggable True
pagekeys True
vbox:
#xpos 1885
spacing 12
#yalign 0.98
use ex_ch_button("gui/button/menubuttons/template_idle.png", "Return", ShowMenu("main_menu"))
#use ex_ch_button("gui/button/menubuttons/template_idle.png", str(e), ShowMenu("main_menu"))
$ main_menu_button_img = "gui/button/menubuttons/template_idle_epilogue.png" if persistent.use_epilogue_menu else "gui/button/menubuttons/template_idle.png"
vbox:
spacing 12
use ex_ch_button(main_menu_button_img, "Return", ShowMenu("main_menu"))
if len(ex_chapters_menu):
use ex_ch_buttons("gui/button/menubuttons/template_idle.png", ex_chapters_menu )
use ex_ch_buttons(main_menu_button_img, ex_chapters_menu )
for x in range(0, len(ex_chapters) - len(ex_chapters_menu)):
use ex_ch_button("gui/button/menubuttons/template_idle.png", "???", None)
use ex_ch_button(main_menu_button_img, "???", None)

View file

@ -685,11 +685,9 @@ screen mod_menu():
style_prefix "main_menu"
add gui.main_menu_background
frame:
xsize 420
yfill True
background "gui/overlay/main_menu.png"
use main_menu_background
$ main_menu_button_img = "gui/button/menubuttons/template_idle_epilogue.png" if persistent.use_epilogue_menu else "gui/button/menubuttons/template_idle.png"
default mod_metadata = {}
default reload_game = False
@ -707,14 +705,14 @@ screen mod_menu():
spacing 8
use mod_menu_top_buttons(_("Reload Mods"), SetScreenVariable("reload_game", True)):
use mod_menu_top_buttons(main_menu_button_img, _("Reload Mods"), SetScreenVariable("reload_game", True)):
# For some reason, Function() will instantly reload the game upon entering the mod menu, and put it in an infinite loop, so doing this python jank
# is the only way
if reload_game:
python:
reload_game = False
renpy.reload_script()
use mod_menu_top_buttons(_("Return"), ShowMenu("extras"))
use mod_menu_top_buttons(main_menu_button_img, _("Return"), ShowMenu("extras"))
viewport:
xpos 1260
@ -755,13 +753,16 @@ screen mod_menu():
activate_sound "audio/ui/snd_ui_click.wav"
idle_foreground Transform("gui/button/menubuttons/up.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#445ABB"))
if persistent.use_epilogue_menu:
idle_foreground Transform("gui/button/menubuttons/up.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#000000"))
else:
idle_foreground Transform("gui/button/menubuttons/up.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#445ABB"))
hover_foreground Transform("gui/button/menubuttons/up.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#00FF03"))
action Function(swapMods, i, i-1)
else:
add Null(30,30) at truecenter
# Enablin/disabling mods button
# Enabling/disabling mods button
button:
at truecenter
style_prefix "main_menu"
@ -770,7 +771,10 @@ screen mod_menu():
if not renpy.variant(["mobile", "steam_deck"]):
ysize 65
add "gui/button/menubuttons/checkbox.png" xalign 0.5 yalign 0.5
if persistent.use_epilogue_menu:
add "gui/button/menubuttons/checkbox_epilogue.png" xalign 0.5 yalign 0.5
else:
add "gui/button/menubuttons/checkbox.png" xalign 0.5 yalign 0.5
if x["Scripts"]:
action Function(toggle_persistent_mods, i)
@ -792,7 +796,10 @@ screen mod_menu():
action Function(swapMods, i, i+1)
activate_sound "audio/ui/snd_ui_click.wav"
idle_foreground Transform("gui/button/menubuttons/down.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#445ABB"))
if persistent.use_epilogue_menu:
idle_foreground Transform("gui/button/menubuttons/down.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#000000"))
else:
idle_foreground Transform("gui/button/menubuttons/down.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#445ABB"))
hover_foreground Transform("gui/button/menubuttons/down.png",xalign=0.5,yalign=0.5,matrixcolor=TintMatrix("#00FF03"))
else:
@ -827,9 +834,9 @@ screen mod_menu():
xsize 475
ymaximum 2000
if mod_button_enabled:
background Frame("gui/button/menubuttons/template_idle.png", 12, 12)
background Frame(main_menu_button_img, 12, 12)
else:
background Transform(Frame("gui/button/menubuttons/template_idle.png", 12, 12),matrixcolor=SaturationMatrix(0.5))
background Transform(Frame(main_menu_button_img, 12, 12),matrixcolor=SaturationMatrix(0.5))
padding (5, 5)
@ -870,7 +877,7 @@ screen mod_menu():
frame:
xsize 475
ymaximum 2000
background Frame("gui/button/menubuttons/template_idle.png", 12, 12)
background Frame(main_menu_button_img, 12, 12)
padding (5, 5)
text x["Name"] xalign 0.5 yalign 0.5 size 34 textalign 0.5
@ -903,7 +910,10 @@ screen mod_menu():
xsize 1190
ysize 129
background Frame("gui/button/menubuttons/template_full_idle.png", 12, 12)
if persistent.use_epilogue_menu:
background Frame("gui/button/menubuttons/template_idle_epilogue.png", 12, 12)
else:
background Frame("gui/button/menubuttons/template_full_idle.png", 12, 12)
text _("Start") xalign 0.5 yalign 0.5 size 50
action Start(mod_metadata["Label"])
@ -946,7 +956,8 @@ screen mod_menu():
# Mod details
# Omits checking for mod name, since we'll always have some kind of mod name.
# This will also not show anything if there's only a mod name, since we already show one in the mod button.
if return_translated_metadata(mod_metadata, "Version") != None or return_translated_metadata(mod_metadata, "Authors") != None or return_translated_metadata(mod_metadata, "Links") != None:
# Unless the display is set to "icon".
if return_translated_metadata(mod_metadata, "Version") != None or return_translated_metadata(mod_metadata, "Authors") != None or return_translated_metadata(mod_metadata, "Links") != None or mod_metadata.get("Display") == "icon":
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
@ -1064,13 +1075,13 @@ screen mod_screenshot_preview(img):
key ["mouseup_1", "mouseup_3"] action Hide("mod_screenshot_preview", dissolve)
screen mod_menu_top_buttons(text, action):
screen mod_menu_top_buttons(image, text, action):
button:
frame:
xmaximum 300
ymaximum 129
background Frame("gui/button/menubuttons/template_idle.png", 12, 12)
background Frame(image, 12, 12)
text text xalign 0.5 yalign 0.5 size 34
action action