Merge branch 'master' into wani_mod_menu

This commit is contained in:
Map 2024-10-06 14:29:47 -05:00
commit 5eb39a7c3c
14 changed files with 902 additions and 527 deletions

View file

@ -11,7 +11,8 @@ init offset = -2
init python: init python:
gui.init(1920, 1080) gui.init(1920, 1080)
## Enable checks for invalid or unstable properties in screens or transforms
#define config.check_conflicting_properties = True
################################################################################ ################################################################################
## GUI Configuration Variables ## GUI Configuration Variables
@ -362,6 +363,8 @@ define config.history_length = 250
## the cost of performance. ## the cost of performance.
define gui.history_height = 210 define gui.history_height = 210
define gui.history_spacing = 0
## The position, width, and alignment of the label giving the name of the ## The position, width, and alignment of the label giving the name of the
## speaking character. ## speaking character.
define gui.history_name_xpos = 233 define gui.history_name_xpos = 233
@ -419,6 +422,7 @@ define gui.nvl_thought_xalign = 0.0
define gui.nvl_button_xpos = 675 define gui.nvl_button_xpos = 675
define gui.nvl_button_xalign = 0.0 define gui.nvl_button_xalign = 0.0
## Localization ################################################################ ## Localization ################################################################
## This controls where a line break is permitted. The default is suitable ## This controls where a line break is permitted. The default is suitable

BIN
game/gui/bubble.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

BIN
game/gui/thoughtbubble.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -48,7 +48,7 @@ define build.name = "SnootGame"
define config.has_sound = True define config.has_sound = True
define config.has_music = True define config.has_music = True
define config.has_voice = False define config.has_voice = True
define config.play_channel = "uisounds" define config.play_channel = "uisounds"
@ -133,6 +133,8 @@ default preferences.text_cps = 50
default preferences.afm_time = 15 default preferences.afm_time = 15
## Snoot-specific config variables
define config.developer = "auto" define config.developer = "auto"
default persistent.enable_debug_scores = config.developer default persistent.enable_debug_scores = config.developer
@ -140,6 +142,7 @@ default persistent.enable_chapter_select = config.developer
default persistent.lewd = False default persistent.lewd = False
default persistent.autoup = False default persistent.autoup = False
default persistent.show_mod_screenshots = True default persistent.show_mod_screenshots = True
default persistent.gallery_edgescroll = True
init -1000 python: init -1000 python:
if persistent.newmods_default_state == None: if persistent.newmods_default_state == None:
@ -237,9 +240,9 @@ init python:
build.documentation('*.txt') build.documentation('*.txt')
## A Google Play license key is required to download expansion files and perform ## A Google Play license key is required to perform in-app purchases. It can be
## in-app purchases. It can be found on the "Services & APIs" page of the Google ## found in the Google Play developer console, under "Monetize" > "Monetization
## Play developer console. ## Setup" > "Licensing".
# define build.google_play_key = "..." # define build.google_play_key = "..."

View file

@ -194,7 +194,7 @@ screen input(prompt):
window: window:
add Image("gui/textbox_no_hitch.png", xalign=0.5, yalign=1.0, yoffset=gui.input_yoffset) #for mobile OSK add Image("gui/textbox_no_hitch.png", xalign=0.5, yalign=1.0, yoffset=gui.input_yoffset) #for mobile OSK
vbox: vbox:
xalign gui.dialogue_text_xalign xanchor gui.dialogue_text_xalign
xpos gui.dialogue_xpos xpos gui.dialogue_xpos
xsize gui.dialogue_width xsize gui.dialogue_width
ypos gui.dialogue_ypos ypos gui.dialogue_ypos
@ -251,7 +251,7 @@ style choice_button is default:
activate_sound "audio/ui/uiRollover.wav" activate_sound "audio/ui/uiRollover.wav"
style choice_button_text is default: style choice_button_text is default:
properties gui.button_text_properties("choice_button") properties gui.text_properties("choice_button")
## Quick Menu screen ########################################################### ## Quick Menu screen ###########################################################
@ -259,24 +259,25 @@ style choice_button_text is default:
## The quick menu is displayed in-game to provide easy access to the out-of-game ## The quick menu is displayed in-game to provide easy access to the out-of-game
## menus. ## menus.
screen quick_button(filename, label, function): screen quick_button(filename, label, function=NullAction(), function2=NullAction()):
button: button:
xsize 71 xsize 71
ysize 71 ysize 71
action function action function
alternate function2
if 'Return' in label or 'Back' in label or 'Menu' in label: if 'Return' in label or 'Back' in label or 'Menu' in label:
activate_sound "audio/ui/uiBack.wav" activate_sound "audio/ui/uiBack.wav"
else: else:
activate_sound "audio/ui/uiClick.wav" activate_sound "audio/ui/uiClick.wav"
fixed: fixed:
add filename xalign 0.5 yalign 0.5 zoom 1 add filename xalign 0.5 yalign 0.5 zoom 1
text label xalign 0.5 yalign 0.5 xanchor 0.5 size 22 style "quick_button_text" text label xalign 0.5 yalign 0.5 size 22 style "quick_button_text"
# label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ] # label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ]
# Reuse the same image string and keep things 'neat'. # Reuse the same image string and keep things 'neat'.
screen quick_buttons(filename, label_functions): screen quick_buttons(filename, label_functions):
for l_f in label_functions: for l_f in label_functions:
use quick_button(filename, l_f[0], l_f[1]) use quick_button(filename, l_f[0], l_f[1], l_f[2])
screen quick_menu(): screen quick_menu():
@ -292,27 +293,12 @@ screen quick_menu():
use quick_buttons("gui/button/uioptionbuttons/template_idle.png", use quick_buttons("gui/button/uioptionbuttons/template_idle.png",
[ [
[ _("Skip"), Skip() ], [ _("Skip"), Skip(), Skip(fast=True, confirm=True) ],
[ _("Save"), ShowMenu('save') ], [ _("Save"), ShowMenu('save'), NullAction() ],
[ _("Auto"), Preference("auto-forward", "toggle") ], [ _("Auto"), Preference("auto-forward", "toggle"), NullAction() ],
[ _("Load"), ShowMenu('load') ] [ _("Load"), ShowMenu('load'), NullAction() ]
] ) ] )
screen score_menu():
zorder 100
window:
background "gui/debug.webp"
xalign -1.0
yalign 0.0
grid 1 3:
style_prefix "score"
xalign 0.0
yalign 0.0
text "anons: " + str(anonscore)
text "fang: " + str(fangscore)
text "DEBUG SCORE CARD"
## This code ensures that the quick_menu screen is displayed in-game, whenever ## This code ensures that the quick_menu screen is displayed in-game, whenever
## the player has not explicitly hidden the interface. ## the player has not explicitly hidden the interface.
init python: init python:
@ -359,7 +345,7 @@ screen navigation():
textbutton _("Load") activate_sound "audio/ui/uiClick.wav" action ShowMenu("load") textbutton _("Load") activate_sound "audio/ui/uiClick.wav" action ShowMenu("load")
textbutton _("Delete") activate_sound "audio/ui/uiClick.wav" action ShowMenu("delete") textbutton _("Delete") activate_sound "audio/ui/uiClick.wav" action ShowMenu("delete")
if config.developer or persistent.enable_chapter_select: if persistent.enable_chapter_select:
textbutton _("Chapter Select") activate_sound "audio/ui/uiClick.wav" action Start("chapter_select") textbutton _("Chapter Select") activate_sound "audio/ui/uiClick.wav" action Start("chapter_select")
textbutton _("Options") activate_sound "audio/ui/uiClick.wav" action ShowMenu("preferences") textbutton _("Options") activate_sound "audio/ui/uiClick.wav" action ShowMenu("preferences")
@ -390,7 +376,7 @@ style navigation_button:
properties gui.button_properties("navigation_button") properties gui.button_properties("navigation_button")
style navigation_button_text: style navigation_button_text:
properties gui.button_text_properties("navigation_button") properties gui.text_properties("navigation_button")
## Main Menu screen ############################################################ ## Main Menu screen ############################################################
@ -410,8 +396,8 @@ screen main_menu_button(filename, label, function):
else: else:
activate_sound "audio/ui/uiClick.wav" activate_sound "audio/ui/uiClick.wav"
fixed: fixed:
add filename xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5 add filename xalign 0.5 yalign 0.5 zoom 1
text label xalign 0.5 yalign 0.5 xanchor 0.5 text label xalign 0.5 yalign 0.5
image bonus_flash: image bonus_flash:
@ -437,23 +423,21 @@ image template_black:
screen bonus_chapter_button(f="gui/button/menubuttons/template_idle.png"): screen bonus_chapter_button(f="gui/button/menubuttons/template_idle.png"):
#("gui/button/menubuttons/template_idle.png", "Bonus Chapters", ShowMenu("ex_ch_menu")) #("gui/button/menubuttons/template_idle.png", "Bonus Chapters", ShowMenu("ex_ch_menu"))
button: button:
xmaximum 500
ymaximum 129
xysize (500, 129) xysize (500, 129)
action ShowMenu("ex_ch_menu") action ShowMenu("ex_ch_menu")
activate_sound "audio/ui/uiClick.wav" activate_sound "audio/ui/uiClick.wav"
fixed: fixed:
if (persistent.old_endings != persistent.endings) or (persistent.bonus_chapters != persistent.old_bonus_chapters and (persistent.bonus_chapters == 0b111111111)): if (persistent.old_endings != persistent.endings) or (persistent.bonus_chapters != persistent.old_bonus_chapters and (persistent.bonus_chapters == 0b111111111)):
add "bonus_flash" xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5 add "bonus_flash" xalign 0.5 yalign 0.5 zoom 1
$ persistent.old_endings = persistent.endings $ persistent.old_endings = persistent.endings
#$ persistent.old_bonus_chapters = persistent.bonus_chapters #$ persistent.old_bonus_chapters = persistent.bonus_chapters
else: else:
add f xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5 add f xalign 0.5 yalign 0.5 zoom 1
if (persistent.old_bonus_chapters != persistent.bonus_chapters): #just in case if (persistent.old_bonus_chapters != persistent.bonus_chapters): #just in case
$ persistent.old_bonus_chapters = persistent.bonus_chapters $ persistent.old_bonus_chapters = persistent.bonus_chapters
text "Bonus Chapters" xalign 0.5 yalign 0.5 xanchor 0.5 text "Bonus Chapters" xalign 0.5 yalign 0.5
# label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ] # label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ]
# Reuse the same image string and keep things 'neat'. # Reuse the same image string and keep things 'neat'.
@ -592,11 +576,11 @@ style main_menu_ex_frame is main_menu_frame
## This lays out the basic common structure of a game menu screen. It's called ## This lays out the basic common structure of a game menu screen. It's called
## with the screen title, and displays the background, title, and navigation. ## with the screen title, and displays the background, title, and navigation.
## ##
## The scroll parameter can be None, or one of "viewport" or "vpgrid". When ## The scroll parameter can be None, or one of "viewport" or "vpgrid".
## this screen is intended to be used with one or more children, which are ## This screen is intended to be used with one or more children, which are
## transcluded (placed) inside it. ## transcluded (placed) inside it.
screen game_menu(title, scroll=None, yinitial=0.0): screen game_menu(title, scroll=None, yinitial=0.0, spacing=0):
style_prefix "game_menu" style_prefix "game_menu"
@ -629,6 +613,8 @@ screen game_menu(title, scroll=None, yinitial=0.0):
side_yfill True side_yfill True
vbox: vbox:
spacing spacing
transclude transclude
elif scroll == "vpgrid": elif scroll == "vpgrid":
@ -644,6 +630,8 @@ screen game_menu(title, scroll=None, yinitial=0.0):
side_yfill True side_yfill True
spacing spacing
transclude transclude
else: else:
@ -894,27 +882,41 @@ screen file_slots(title, flag=False):
key "save_delete" action FileDelete(slot) key "save_delete" action FileDelete(slot)
## Buttons to access other pages. ## Buttons to access other pages.
hbox: vbox:
style_prefix "page" style_prefix "page"
xalign 0.5 xalign 0.5
yalign 1.0 yalign 1.0
hbox:
xalign 0.5
spacing gui.page_spacing spacing gui.page_spacing
textbutton _("<") activate_sound "audio/ui/uiRollover.wav" action FilePagePrevious() textbutton _("<") activate_sound "audio/ui/uiRollover.wav" action FilePagePrevious()
key "save_page_prev" action FilePagePrevious()
if config.has_autosave: if config.has_autosave:
textbutton _("{#auto_page}A") activate_sound "audio/ui/uiClick.wav" action FilePage("auto") textbutton _("{#auto_page}A") activate_sound "audio/ui/uiClick.wav" action FilePage("auto")
if config.has_quicksave: if config.has_quicksave:
textbutton _("{#quick_page}Q") activate_sound "audio/ui/uiClick.wav" action FilePage("quick") textbutton _("{#quick_page}Q") activate_sound "audio/ui/uiClick.wav" action FilePage("quick")
## range(1, 10) gives the numbers from 1 to 9. ## range(1, 10) gives the numbers from 1 to 9.
for page in range(1, 10): for page in range(1, 10):
textbutton "[page]" activate_sound "audio/ui/uiClick.wav" action FilePage(page) textbutton "[page]" activate_sound "audio/ui/uiClick.wav" action FilePage(page)
textbutton _(">") activate_sound "audio/ui/uiRollover.wav" action FilePageNext(max=9) textbutton _(">") activate_sound "audio/ui/uiRollover.wav" action FilePageNext(max=9)
key "save_page_next" action FilePageNext()
if config.has_sync:
if CurrentScreenName() == "save":
textbutton _("Upload Sync"):
action UploadSync()
xalign 0.5
else:
textbutton _("Download Sync"):
action DownloadSync()
xalign 0.5
style page_label is gui_label style page_label is gui_label
@ -932,7 +934,7 @@ style page_label:
ypadding 5 ypadding 5
style page_label_text: style page_label_text:
text_align 0.5 textalign 0.5
layout "subtitle" layout "subtitle"
hover_color gui.hover_color hover_color gui.hover_color
@ -940,13 +942,13 @@ style page_button:
properties gui.button_properties("page_button") properties gui.button_properties("page_button")
style page_button_text: style page_button_text:
properties gui.button_text_properties("page_button") properties gui.text_properties("page_button")
style slot_button: style slot_button:
properties gui.button_properties("slot_button") properties gui.button_properties("slot_button")
style slot_button_text: style slot_button_text:
properties gui.button_text_properties("slot_button") properties gui.text_properties("slot_button")
## Preferences screen ########################################################## ## Preferences screen ##########################################################
@ -998,12 +1000,11 @@ screen preferences():
textbutton _("After Choices") action [Function(onclick_audio, preferences.skip_after_choices), ToggleVariable("preferences.skip_after_choices", True, False)] textbutton _("After Choices") action [Function(onclick_audio, preferences.skip_after_choices), ToggleVariable("preferences.skip_after_choices", True, False)]
textbutton _("Transitions") action [Function(onclick_audio, preferences.transitions, True), ToggleVariable("preferences.transitions", 0, 2)] textbutton _("Transitions") action [Function(onclick_audio, preferences.transitions, True), ToggleVariable("preferences.transitions", 0, 2)]
if config.developer: vbox:
vbox: style_prefix "check"
style_prefix "check" label _("Developer Tools")
label _("Developer Tools") textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False)
textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False) textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False)
textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False)
vbox: vbox:
style_prefix "check" style_prefix "check"
@ -1018,6 +1019,11 @@ screen preferences():
else: else:
$ debug_story_variables(False) $ 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)]
vbox: vbox:
xsize 676 xsize 676
style_prefix "check" style_prefix "check"
@ -1143,7 +1149,7 @@ style radio_button:
foreground "gui/button/radio_[prefix_]foreground.png" foreground "gui/button/radio_[prefix_]foreground.png"
style radio_button_text: style radio_button_text:
properties gui.button_text_properties("radio_button") properties gui.text_properties("radio_button")
style check_vbox: style check_vbox:
spacing gui.pref_button_spacing spacing gui.pref_button_spacing
@ -1153,7 +1159,7 @@ style check_button:
foreground "gui/button/check_[prefix_]foreground.png" foreground "gui/button/check_[prefix_]foreground.png"
style check_button_text: style check_button_text:
properties gui.button_text_properties("check_button") properties gui.text_properties("check_button")
style slider_slider: style slider_slider:
xsize 525 xsize 525
@ -1164,7 +1170,7 @@ style slider_button:
left_margin 15 left_margin 15
style slider_button_text: style slider_button_text:
properties gui.button_text_properties("slider_button") properties gui.text_properties("slider_button")
style slider_vbox: style slider_vbox:
xsize 675 xsize 675
@ -1185,7 +1191,7 @@ screen history():
## Avoid predicting this screen, as it can be very large. ## Avoid predicting this screen, as it can be very large.
predict False predict False
use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0): use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0, spacing=gui.history_spacing):
style_prefix "history" style_prefix "history"
@ -1244,7 +1250,7 @@ style history_name:
style history_name_text: style history_name_text:
min_width gui.history_name_width min_width gui.history_name_width
text_align gui.history_name_xalign textalign gui.history_name_xalign
style history_text: style history_text:
xpos gui.history_text_xpos xpos gui.history_text_xpos
@ -1252,7 +1258,7 @@ style history_text:
xanchor gui.history_text_xalign xanchor gui.history_text_xalign
xsize gui.history_text_width xsize gui.history_text_width
min_width gui.history_text_width min_width gui.history_text_width
text_align gui.history_text_xalign textalign gui.history_text_xalign
layout ("subtitle" if gui.history_text_xalign else "tex") layout ("subtitle" if gui.history_text_xalign else "tex")
style history_label: style history_label:
@ -1291,7 +1297,7 @@ screen extrasnavigation():
vbox: vbox:
spacing 10 spacing 10
xpos 1885 xpos 1885
ypos (1269 if config.developer and persistent.enable_chapter_select else 1130) ypos (1269 if persistent.enable_chapter_select else 1130)
use main_menu_buttons("gui/button/menubuttons/template_idle.png", use main_menu_buttons("gui/button/menubuttons/template_idle.png",
[ [
[ _("Help"), ShowMenu("help") ], [ _("Help"), ShowMenu("help") ],
@ -1417,7 +1423,7 @@ screen mouse_help():
text _("Accesses the game menu. Also escapes the Gallery.") text _("Accesses the game menu. Also escapes the Gallery.")
hbox: hbox:
label _("Mouse Wheel Up\nClick Rollback Side") label _("Mouse Wheel Up")
text _("Rolls back to earlier dialogue.") text _("Rolls back to earlier dialogue.")
hbox: hbox:
@ -1439,13 +1445,12 @@ screen gamepad_help():
label _("Right Shoulder") label _("Right Shoulder")
text _("Rolls forward to later dialogue.") text _("Rolls forward to later dialogue.")
hbox: hbox:
label _("D-Pad, Sticks") label _("D-Pad, Sticks")
text _("Navigate the interface.") text _("Navigate the interface.")
hbox: hbox:
label _("Start, Guide") label _("Start, Guide, B/Right Button")
text _("Accesses the game menu.") text _("Accesses the game menu.")
hbox: hbox:
@ -1466,7 +1471,7 @@ style help_button:
xmargin 12 xmargin 12
style help_button_text: style help_button_text:
properties gui.button_text_properties("help_button") properties gui.text_properties("help_button")
style help_label: style help_label:
xsize 375 xsize 375
@ -1535,14 +1540,14 @@ style confirm_frame:
yalign .5 yalign .5
style confirm_prompt_text: style confirm_prompt_text:
text_align 0.5 textalign 0.5
layout "subtitle" layout "subtitle"
style confirm_button: style confirm_button:
properties gui.button_properties("confirm_button") properties gui.button_properties("confirm_button")
style confirm_button_text: style confirm_button_text:
properties gui.button_text_properties("confirm_button") properties gui.text_properties("confirm_button")
## Skip indicator screen ####################################################### ## Skip indicator screen #######################################################
@ -1729,7 +1734,7 @@ style nvl_label:
yanchor 0.0 yanchor 0.0
xsize gui.nvl_name_width xsize gui.nvl_name_width
min_width gui.nvl_name_width min_width gui.nvl_name_width
text_align gui.nvl_name_xalign textalign gui.nvl_name_xalign
style nvl_dialogue: style nvl_dialogue:
xpos gui.nvl_text_xpos xpos gui.nvl_text_xpos
@ -1737,7 +1742,7 @@ style nvl_dialogue:
ypos gui.nvl_text_ypos ypos gui.nvl_text_ypos
xsize gui.nvl_text_width xsize gui.nvl_text_width
min_width gui.nvl_text_width min_width gui.nvl_text_width
text_align gui.nvl_text_xalign textalign gui.nvl_text_xalign
layout ("subtitle" if gui.nvl_text_xalign else "tex") layout ("subtitle" if gui.nvl_text_xalign else "tex")
style nvl_thought: style nvl_thought:
@ -1746,7 +1751,7 @@ style nvl_thought:
ypos gui.nvl_thought_ypos ypos gui.nvl_thought_ypos
xsize gui.nvl_thought_width xsize gui.nvl_thought_width
min_width gui.nvl_thought_width min_width gui.nvl_thought_width
text_align gui.nvl_thought_xalign textalign gui.nvl_thought_xalign
layout ("subtitle" if gui.nvl_text_xalign else "tex") layout ("subtitle" if gui.nvl_text_xalign else "tex")
style nvl_button: style nvl_button:
@ -1758,6 +1763,94 @@ style nvl_button_text:
properties gui.button_text_properties("nvl_button") properties gui.button_text_properties("nvl_button")
## Bubble screen ###############################################################
##
## The bubble screen is used to display dialogue to the player when using speech
## bubbles. The bubble screen takes the same parameters as the say screen, must
## create a displayable with the id of "what", and can create displayables with
## the "namebox", "who", and "window" ids.
##
## https://www.renpy.org/doc/html/bubble.html#bubble-screen
screen bubble(who, what):
style_prefix "bubble"
window:
id "window"
if who is not None:
window:
id "namebox"
style "bubble_namebox"
text who:
id "who"
text what:
id "what"
style bubble_window is empty
style bubble_namebox is empty
style bubble_who is default
style bubble_what is default
style bubble_window:
xpadding 30
top_padding 5
bottom_padding 5
style bubble_namebox:
xalign 0.5
style bubble_who:
xalign 0.5
textalign 0.5
color "#000"
style bubble_what:
align (0.5, 0.5)
text_align 0.5
layout "subtitle"
color "#000"
define bubble.frame = Frame("gui/bubble.png", 55, 55, 55, 95)
define bubble.thoughtframe = Frame("gui/thoughtbubble.png", 55, 55, 55, 55)
define bubble.properties = {
"bottom_left" : {
"window_background" : Transform(bubble.frame, xzoom=1, yzoom=1),
"window_bottom_padding" : 27,
},
"bottom_right" : {
"window_background" : Transform(bubble.frame, xzoom=-1, yzoom=1),
"window_bottom_padding" : 27,
},
"top_left" : {
"window_background" : Transform(bubble.frame, xzoom=1, yzoom=-1),
"window_top_padding" : 27,
},
"top_right" : {
"window_background" : Transform(bubble.frame, xzoom=-1, yzoom=-1),
"window_top_padding" : 27,
},
"thought" : {
"window_background" : bubble.thoughtframe,
}
}
define bubble.expand_area = {
"bottom_left" : (0, 0, 0, 22),
"bottom_right" : (0, 0, 0, 22),
"top_left" : (0, 22, 0, 0),
"top_right" : (0, 22, 0, 0),
"thought" : (0, 0, 0, 0),
}
################################################################################ ################################################################################
## Mobile Variants ## Mobile Variants
@ -1792,10 +1885,10 @@ screen quick_menu():
yalign 0.975 yalign 0.975
use quick_buttons("gui/button/uioptionbuttons/template_idle.png", \ use quick_buttons("gui/button/uioptionbuttons/template_idle.png", \
[ \ [ \
[ _("Back"), Rollback() ], \ [ _("Back"), Rollback(), NullAction()], \
[ _("Skip"), Skip() ], \ [ _("Skip"), Skip(), Skip(fast=True, confirm=True) ], \
[ _("Auto"), Preference("auto-forward", "toggle") ], \ [ _("Auto"), Preference("auto-forward", "toggle"), NullAction() ], \
[ _("Menu"), ShowMenu() ] \ [ _("Menu"), ShowMenu(), NullAction() ] \
] ) ] )
screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py) screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py)
@ -1809,17 +1902,19 @@ screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py)
else: else:
add "gui/snootgame.png" add "gui/snootgame.png"
vbox: vbox:
spacing 25 spacing 10
xpos 1885 xpos 1885
yalign 0.9 ypos (1269 if persistent.enable_chapter_select else 1130)
use main_menu_buttons("gui/button/menubuttons/template_idle.png", use main_menu_buttons("gui/button/menubuttons/template_idle.png",
[ [
[ _("Help"), ShowMenu("help") ], [ _("Help"), ShowMenu("help") ],
[ _("About"), ShowMenu("about") ], [ _("About"), ShowMenu("about") ],
[ _("Gallery"), ShowMenu("cg_gallery") ], [ _("Gallery"), ShowMenu("cg_gallery") ],
*([(_("Chapter Select"), Start("chapter_select"))] if persistent.enable_chapter_select else []),
[ _("Mods"), ShowMenu("mod_menu") ], [ _("Mods"), ShowMenu("mod_menu") ],
[ _("Return"), ShowMenu("main_menu") ] [ _("Return"), ShowMenu("main_menu") ]
] ) ] )
add Null(0, 129)
style radio_button: style radio_button:
variant "mobile" variant "mobile"

View file

@ -2539,14 +2539,14 @@ label chapter_13C:
easein_cubic 1 xalign 1.85 easein_cubic 1 xalign 1.85
show chillicheesefries: show chillicheesefries:
rotate 130 xalign 0.5 yalign 0.4 xpos 0.77 ypos 0.425 rotate 130 xanchor 0.5 yanchor 0.4 xpos 0.77 ypos 0.425
easein_cubic 1 xpos 0.795 easein_cubic 1 xpos 0.795
with None with None
show naser rstained surprised show naser rstained surprised
hide chillicheesefries hide chillicheesefries
show chillicheesefries_hack: show chillicheesefries_hack:
rotate 130 xalign 0.5 yalign 0.4 xpos 0.765 ypos 0.425 rotate 130 xanchor 0.5 yanchor 0.4 xpos 0.765 ypos 0.425
easein_cubic 1 xpos 0.79 easein_cubic 1 xpos 0.79
with dissolve with dissolve
@ -2554,7 +2554,7 @@ label chapter_13C:
show naser rstained shocked show naser rstained shocked
show chillicheesefries: show chillicheesefries:
rotate 140 xalign 0.5 yalign 0.4 xpos 0.805 ypos 0.4 rotate 140 xanchor 0.5 yanchor 0.4 xpos 0.805 ypos 0.4
hide chillicheesefries_hack hide chillicheesefries_hack
with Dissolve(.22) with Dissolve(.22)
@ -2635,7 +2635,7 @@ label chapter_13C:
show naser fullystained shocked show naser fullystained shocked
hide chillicheesefries hide chillicheesefries
show chillicheesefries_hack: show chillicheesefries_hack:
rotate 140 xalign 0.75 yalign 0.5 xpos 0.905 ypos 0.45 rotate 140 xanchor 0.75 yanchor 0.5 xpos 0.905 ypos 0.45
easein_cubic 1 xpos 0.93 easein_cubic 1 xpos 0.93
with Dissolve(.22) with Dissolve(.22)

View file

@ -335,7 +335,7 @@ label chapter_8:
show reed happy flip: show reed happy flip:
yalign 0.238 yalign 0.238
easeout_cubic .5 rotate 90 yalign -0.01 ypos 0.5 easeout_cubic .5 rotate 90 yanchor -0.01 ypos 0.5
pause .15 pause .15
hide reed with Dissolve(.25) hide reed with Dissolve(.25)
play sound 'audio/effects/anonGardenFall.ogg' play sound 'audio/effects/anonGardenFall.ogg'
@ -1279,7 +1279,6 @@ label chapter_8:
with Dissolve(0.2) with Dissolve(0.2)
pause 0.3 pause 0.3
hide anonfacecloseup
FD "Out. {w=0.3}{b}Now{/b}." FD "Out. {w=0.3}{b}Now{/b}."

View file

@ -13,12 +13,10 @@ init 2 python:
CG_PATHS = [] CG_PATHS = []
#path: folder, name: shows up in gallery, eval: runs eval() on string #path: folder, name: shows up in gallery, eval: runs eval() on string
""" # Data structure that holds the data for each cg and button
Data structure that holds the data for each cg and button # item is name, cg is the image definition
item is name, cg is the image definition # { item: str; cg: Displayable; }
{ item: str; cg: Displayable; } # (reference in this init python, actually used in screens)
(reference in this init python, actually used in screens)
"""
gallery_dic = {} gallery_dic = {}
@ -89,10 +87,10 @@ init 2 python:
# Bullshit for the scrollbar to reset back to the beggining. Bless the renpy Discord :pray: # Bullshit for the scrollbar to reset back to the beggining. Bless the renpy Discord :pray:
default adjust = ui.adjustment() default adjust = ui.adjustment()
"""
CG Gallery screen - A screen that shows the image gallery # CG Gallery screen - A screen that shows the image gallery
Built-in Gallery Object has terrible defaults, so I just wrote my own stuff # Built-in Gallery Object has terrible defaults, so I just wrote my own stuff
"""
screen cg_gallery(origin = 'CG'): screen cg_gallery(origin = 'CG'):
if main_menu: if main_menu:
@ -162,9 +160,8 @@ screen cg_gallery(origin = 'CG'):
for i in range(0, empty_spaces): for i in range(0, empty_spaces):
null height 20 null height 20
"""
if/else flow control & extra parameters for Buttons # if/else flow control & extra parameters for Buttons
"""
screen flag_button(item, origin): screen flag_button(item, origin):
$ flag = renpy.seen_image(item['item']) $ flag = renpy.seen_image(item['item'])
@ -200,9 +197,8 @@ screen view_movie(item, _origin):
[ "Return", _origin ] [ "Return", _origin ]
] ) ] )
"""
view_image, Loads the image in fullscreen with viewport control. # view_image, Loads the image in fullscreen with viewport control.
"""
screen view_image(item, _origin): screen view_image(item, _origin):
tag menu tag menu
key "game_menu" action (Hide('view_image'), _origin) key "game_menu" action (Hide('view_image'), _origin)
@ -211,7 +207,7 @@ screen view_image(item, _origin):
viewport id "vie": viewport id "vie":
#Ren'Py isn't smart enough to not edgescroll while pressed, #Ren'Py isn't smart enough to not edgescroll while pressed,
#so we'll have to disable this for mobile #so we'll have to disable this for mobile
if renpy.variant("pc"): if renpy.variant("pc") and persistent.gallery_edgescroll:
edgescroll (300, 1800) edgescroll (300, 1800)
draggable True draggable True
arrowkeys True arrowkeys True

View file

@ -31,7 +31,7 @@ screen ex_ch_button(filename, label, function):
activate_sound "audio/ui/uiClick.wav" activate_sound "audio/ui/uiClick.wav"
fixed: fixed:
add filename xalign 0.5 yalign 0.5 zoom 0.9 add filename xalign 0.5 yalign 0.5 zoom 0.9
text label xalign 0.5 yalign 0.5 xanchor 0.5 size 34 text label xalign 0.5 yalign 0.5 size 34
# label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ] # label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ]
# Reuse the same image string and keep things 'neat'. # Reuse the same image string and keep things 'neat'.

View file

@ -1063,7 +1063,7 @@ image naomi prom lessblurred = im.Flip(im.Blur('images/naomi/naomi prom neutral.
#image emptyroomnight = "images/backgrounds/emptyroomnight.webp" #image emptyroomnight = "images/backgrounds/emptyroomnight.webp"
#image naomifangcg = "images/cgs/naomifangcg.webp" #image naomifangcg = "images/cgs/naomifangcg.webp"
image naomifangcg blur = im.Blur("images/cgs/naomifangcg.webp", 1.5) #image naomifangcg blur = im.Blur("images/cgs/naomifangcg.webp", 1.5)
image naomiletter = 'images/cgs/naomiletter.webp' image naomiletter = 'images/cgs/naomiletter.webp'
#image ending_d_cg = 'images/cgs/golden ending.webp' #image ending_d_cg = 'images/cgs/golden ending.webp'

View file

@ -132,7 +132,7 @@ transform rright:
#misc transforms #misc transforms
transform shudder: transform shudder:
subpixel True subpixel True
around (.5, .5) alignaround (.5, .5) xalign .5 yalign .5 alignaround (.5, .5) xalign .5 yalign .5
rotate 0 rotate 0
linear 0.0 rotate -0.75 linear 0.0 rotate -0.75
block: block:
@ -175,8 +175,7 @@ screen mousedetect():
zoom 0.8 zoom 0.8
rotate 12.5 rotate 12.5
mousearea: mousearea:
ypos -75 area(432, -75, 795, 1100)
area(432, 0, 795, 1100)
# xalign 0.5 yanchor 0 ypos 0 # xalign 0.5 yanchor 0 ypos 0
hovered Hide("prompt" ) hovered Hide("prompt" )
unhovered Show("prompt") unhovered Show("prompt")
@ -198,7 +197,7 @@ screen textscroll():
yinitial 1.0 yinitial 1.0
imagebutton auto "fangbutton%s" xalign 0.53 yalign 0.5: imagebutton auto "fangbutton%s" xalign 0.53 yanchor 0.5:
ypos 65+(int(107/2)) ypos 65+(int(107/2))
xsize 284 xsize 284
ysize 107 ysize 107

File diff suppressed because it is too large Load diff

View file

@ -3118,7 +3118,7 @@ translate ru lGetStartedOnStudy_65a33de5:
translate ru lGetStartedOnStudy_75551969: translate ru lGetStartedOnStudy_75551969:
# SV "Yeah, a {i}study{/i} session." # SV "Yeah, a {i}study{/i} session."
SV "Агась, {i}‘учились’{/ i} вместе." SV "Агась, {i}‘учились’{/i} вместе."
# game/script/8.anon-and-fang-study-together.rpy:2073 # game/script/8.anon-and-fang-study-together.rpy:2073
translate ru lGetStartedOnStudy_393f7659: translate ru lGetStartedOnStudy_393f7659: