mirror of
https://git.cavemanon.xyz/Cavemanon/SnootGame.git
synced 2025-01-22 09:16:56 +01:00
Merge branch 'master' into wani_mod_menu
This commit is contained in:
commit
5eb39a7c3c
14 changed files with 902 additions and 527 deletions
|
@ -11,7 +11,8 @@ init offset = -2
|
|||
init python:
|
||||
gui.init(1920, 1080)
|
||||
|
||||
|
||||
## Enable checks for invalid or unstable properties in screens or transforms
|
||||
#define config.check_conflicting_properties = True
|
||||
|
||||
################################################################################
|
||||
## GUI Configuration Variables
|
||||
|
@ -362,6 +363,8 @@ define config.history_length = 250
|
|||
## the cost of performance.
|
||||
define gui.history_height = 210
|
||||
|
||||
define gui.history_spacing = 0
|
||||
|
||||
## The position, width, and alignment of the label giving the name of the
|
||||
## speaking character.
|
||||
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_xalign = 0.0
|
||||
|
||||
|
||||
## Localization ################################################################
|
||||
|
||||
## This controls where a line break is permitted. The default is suitable
|
||||
|
|
BIN
game/gui/bubble.png
Normal file
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
BIN
game/gui/thoughtbubble.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
|
@ -48,7 +48,7 @@ define build.name = "SnootGame"
|
|||
|
||||
define config.has_sound = True
|
||||
define config.has_music = True
|
||||
define config.has_voice = False
|
||||
define config.has_voice = True
|
||||
|
||||
define config.play_channel = "uisounds"
|
||||
|
||||
|
@ -133,6 +133,8 @@ default preferences.text_cps = 50
|
|||
|
||||
default preferences.afm_time = 15
|
||||
|
||||
## Snoot-specific config variables
|
||||
|
||||
define config.developer = "auto"
|
||||
|
||||
default persistent.enable_debug_scores = config.developer
|
||||
|
@ -140,6 +142,7 @@ default persistent.enable_chapter_select = config.developer
|
|||
default persistent.lewd = False
|
||||
default persistent.autoup = False
|
||||
default persistent.show_mod_screenshots = True
|
||||
default persistent.gallery_edgescroll = True
|
||||
|
||||
init -1000 python:
|
||||
if persistent.newmods_default_state == None:
|
||||
|
@ -237,9 +240,9 @@ init python:
|
|||
build.documentation('*.txt')
|
||||
|
||||
|
||||
## A Google Play license key is required to download expansion files and perform
|
||||
## in-app purchases. It can be found on the "Services & APIs" page of the Google
|
||||
## Play developer console.
|
||||
## A Google Play license key is required to perform in-app purchases. It can be
|
||||
## found in the Google Play developer console, under "Monetize" > "Monetization
|
||||
## Setup" > "Licensing".
|
||||
|
||||
# define build.google_play_key = "..."
|
||||
|
||||
|
|
251
game/screens.rpy
251
game/screens.rpy
|
@ -194,7 +194,7 @@ screen input(prompt):
|
|||
window:
|
||||
add Image("gui/textbox_no_hitch.png", xalign=0.5, yalign=1.0, yoffset=gui.input_yoffset) #for mobile OSK
|
||||
vbox:
|
||||
xalign gui.dialogue_text_xalign
|
||||
xanchor gui.dialogue_text_xalign
|
||||
xpos gui.dialogue_xpos
|
||||
xsize gui.dialogue_width
|
||||
ypos gui.dialogue_ypos
|
||||
|
@ -251,7 +251,7 @@ style choice_button is default:
|
|||
activate_sound "audio/ui/uiRollover.wav"
|
||||
|
||||
style choice_button_text is default:
|
||||
properties gui.button_text_properties("choice_button")
|
||||
properties gui.text_properties("choice_button")
|
||||
|
||||
|
||||
## 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
|
||||
## menus.
|
||||
|
||||
screen quick_button(filename, label, function):
|
||||
screen quick_button(filename, label, function=NullAction(), function2=NullAction()):
|
||||
button:
|
||||
xsize 71
|
||||
ysize 71
|
||||
action function
|
||||
alternate function2
|
||||
if 'Return' in label or 'Back' in label or 'Menu' in label:
|
||||
activate_sound "audio/ui/uiBack.wav"
|
||||
else:
|
||||
activate_sound "audio/ui/uiClick.wav"
|
||||
fixed:
|
||||
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() ], .. ]
|
||||
# Reuse the same image string and keep things 'neat'.
|
||||
screen quick_buttons(filename, 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():
|
||||
|
||||
|
@ -292,27 +293,12 @@ screen quick_menu():
|
|||
|
||||
use quick_buttons("gui/button/uioptionbuttons/template_idle.png",
|
||||
[
|
||||
[ _("Skip"), Skip() ],
|
||||
[ _("Save"), ShowMenu('save') ],
|
||||
[ _("Auto"), Preference("auto-forward", "toggle") ],
|
||||
[ _("Load"), ShowMenu('load') ]
|
||||
[ _("Skip"), Skip(), Skip(fast=True, confirm=True) ],
|
||||
[ _("Save"), ShowMenu('save'), NullAction() ],
|
||||
[ _("Auto"), Preference("auto-forward", "toggle"), NullAction() ],
|
||||
[ _("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
|
||||
## the player has not explicitly hidden the interface.
|
||||
init python:
|
||||
|
@ -359,7 +345,7 @@ screen navigation():
|
|||
textbutton _("Load") activate_sound "audio/ui/uiClick.wav" action ShowMenu("load")
|
||||
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 _("Options") activate_sound "audio/ui/uiClick.wav" action ShowMenu("preferences")
|
||||
|
@ -390,7 +376,7 @@ style navigation_button:
|
|||
properties gui.button_properties("navigation_button")
|
||||
|
||||
style navigation_button_text:
|
||||
properties gui.button_text_properties("navigation_button")
|
||||
properties gui.text_properties("navigation_button")
|
||||
|
||||
|
||||
## Main Menu screen ############################################################
|
||||
|
@ -410,8 +396,8 @@ screen main_menu_button(filename, label, function):
|
|||
else:
|
||||
activate_sound "audio/ui/uiClick.wav"
|
||||
fixed:
|
||||
add filename xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5
|
||||
text label xalign 0.5 yalign 0.5 xanchor 0.5
|
||||
add filename xalign 0.5 yalign 0.5 zoom 1
|
||||
text label xalign 0.5 yalign 0.5
|
||||
|
||||
image bonus_flash:
|
||||
|
||||
|
@ -437,23 +423,21 @@ image template_black:
|
|||
screen bonus_chapter_button(f="gui/button/menubuttons/template_idle.png"):
|
||||
#("gui/button/menubuttons/template_idle.png", "Bonus Chapters", ShowMenu("ex_ch_menu"))
|
||||
button:
|
||||
xmaximum 500
|
||||
ymaximum 129
|
||||
xysize (500, 129)
|
||||
action ShowMenu("ex_ch_menu")
|
||||
activate_sound "audio/ui/uiClick.wav"
|
||||
fixed:
|
||||
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_bonus_chapters = persistent.bonus_chapters
|
||||
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
|
||||
$ 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() ], .. ]
|
||||
# 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
|
||||
## with the screen title, and displays the background, title, and navigation.
|
||||
##
|
||||
## The scroll parameter can be None, or one of "viewport" or "vpgrid". When
|
||||
## this screen is intended to be used with one or more children, which are
|
||||
## 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
|
||||
## 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"
|
||||
|
||||
|
@ -629,6 +613,8 @@ screen game_menu(title, scroll=None, yinitial=0.0):
|
|||
side_yfill True
|
||||
|
||||
vbox:
|
||||
spacing spacing
|
||||
|
||||
transclude
|
||||
|
||||
elif scroll == "vpgrid":
|
||||
|
@ -644,6 +630,8 @@ screen game_menu(title, scroll=None, yinitial=0.0):
|
|||
|
||||
side_yfill True
|
||||
|
||||
spacing spacing
|
||||
|
||||
transclude
|
||||
|
||||
else:
|
||||
|
@ -894,27 +882,41 @@ screen file_slots(title, flag=False):
|
|||
key "save_delete" action FileDelete(slot)
|
||||
|
||||
## Buttons to access other pages.
|
||||
hbox:
|
||||
vbox:
|
||||
style_prefix "page"
|
||||
|
||||
xalign 0.5
|
||||
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:
|
||||
textbutton _("{#auto_page}A") activate_sound "audio/ui/uiClick.wav" action FilePage("auto")
|
||||
if config.has_autosave:
|
||||
textbutton _("{#auto_page}A") activate_sound "audio/ui/uiClick.wav" action FilePage("auto")
|
||||
|
||||
if config.has_quicksave:
|
||||
textbutton _("{#quick_page}Q") activate_sound "audio/ui/uiClick.wav" action FilePage("quick")
|
||||
if config.has_quicksave:
|
||||
textbutton _("{#quick_page}Q") activate_sound "audio/ui/uiClick.wav" action FilePage("quick")
|
||||
|
||||
## range(1, 10) gives the numbers from 1 to 9.
|
||||
for page in range(1, 10):
|
||||
textbutton "[page]" activate_sound "audio/ui/uiClick.wav" action FilePage(page)
|
||||
## range(1, 10) gives the numbers from 1 to 9.
|
||||
for page in range(1, 10):
|
||||
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
|
||||
|
@ -932,7 +934,7 @@ style page_label:
|
|||
ypadding 5
|
||||
|
||||
style page_label_text:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
layout "subtitle"
|
||||
hover_color gui.hover_color
|
||||
|
||||
|
@ -940,13 +942,13 @@ style page_button:
|
|||
properties gui.button_properties("page_button")
|
||||
|
||||
style page_button_text:
|
||||
properties gui.button_text_properties("page_button")
|
||||
properties gui.text_properties("page_button")
|
||||
|
||||
style slot_button:
|
||||
properties gui.button_properties("slot_button")
|
||||
|
||||
style slot_button_text:
|
||||
properties gui.button_text_properties("slot_button")
|
||||
properties gui.text_properties("slot_button")
|
||||
|
||||
|
||||
## 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 _("Transitions") action [Function(onclick_audio, preferences.transitions, True), ToggleVariable("preferences.transitions", 0, 2)]
|
||||
|
||||
if config.developer:
|
||||
vbox:
|
||||
style_prefix "check"
|
||||
label _("Developer Tools")
|
||||
textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False)
|
||||
textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False)
|
||||
vbox:
|
||||
style_prefix "check"
|
||||
label _("Developer Tools")
|
||||
textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False)
|
||||
textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False)
|
||||
|
||||
vbox:
|
||||
style_prefix "check"
|
||||
|
@ -1018,6 +1019,11 @@ 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)]
|
||||
|
||||
vbox:
|
||||
xsize 676
|
||||
style_prefix "check"
|
||||
|
@ -1143,7 +1149,7 @@ style radio_button:
|
|||
foreground "gui/button/radio_[prefix_]foreground.png"
|
||||
|
||||
style radio_button_text:
|
||||
properties gui.button_text_properties("radio_button")
|
||||
properties gui.text_properties("radio_button")
|
||||
|
||||
style check_vbox:
|
||||
spacing gui.pref_button_spacing
|
||||
|
@ -1153,7 +1159,7 @@ style check_button:
|
|||
foreground "gui/button/check_[prefix_]foreground.png"
|
||||
|
||||
style check_button_text:
|
||||
properties gui.button_text_properties("check_button")
|
||||
properties gui.text_properties("check_button")
|
||||
|
||||
style slider_slider:
|
||||
xsize 525
|
||||
|
@ -1164,7 +1170,7 @@ style slider_button:
|
|||
left_margin 15
|
||||
|
||||
style slider_button_text:
|
||||
properties gui.button_text_properties("slider_button")
|
||||
properties gui.text_properties("slider_button")
|
||||
|
||||
style slider_vbox:
|
||||
xsize 675
|
||||
|
@ -1185,7 +1191,7 @@ screen history():
|
|||
## Avoid predicting this screen, as it can be very large.
|
||||
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"
|
||||
|
||||
|
@ -1244,7 +1250,7 @@ style history_name:
|
|||
|
||||
style history_name_text:
|
||||
min_width gui.history_name_width
|
||||
text_align gui.history_name_xalign
|
||||
textalign gui.history_name_xalign
|
||||
|
||||
style history_text:
|
||||
xpos gui.history_text_xpos
|
||||
|
@ -1252,7 +1258,7 @@ style history_text:
|
|||
xanchor gui.history_text_xalign
|
||||
xsize 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")
|
||||
|
||||
style history_label:
|
||||
|
@ -1291,7 +1297,7 @@ screen extrasnavigation():
|
|||
vbox:
|
||||
spacing 10
|
||||
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",
|
||||
[
|
||||
[ _("Help"), ShowMenu("help") ],
|
||||
|
@ -1417,7 +1423,7 @@ screen mouse_help():
|
|||
text _("Accesses the game menu. Also escapes the Gallery.")
|
||||
|
||||
hbox:
|
||||
label _("Mouse Wheel Up\nClick Rollback Side")
|
||||
label _("Mouse Wheel Up")
|
||||
text _("Rolls back to earlier dialogue.")
|
||||
|
||||
hbox:
|
||||
|
@ -1439,13 +1445,12 @@ screen gamepad_help():
|
|||
label _("Right Shoulder")
|
||||
text _("Rolls forward to later dialogue.")
|
||||
|
||||
|
||||
hbox:
|
||||
label _("D-Pad, Sticks")
|
||||
text _("Navigate the interface.")
|
||||
|
||||
hbox:
|
||||
label _("Start, Guide")
|
||||
label _("Start, Guide, B/Right Button")
|
||||
text _("Accesses the game menu.")
|
||||
|
||||
hbox:
|
||||
|
@ -1466,7 +1471,7 @@ style help_button:
|
|||
xmargin 12
|
||||
|
||||
style help_button_text:
|
||||
properties gui.button_text_properties("help_button")
|
||||
properties gui.text_properties("help_button")
|
||||
|
||||
style help_label:
|
||||
xsize 375
|
||||
|
@ -1535,14 +1540,14 @@ style confirm_frame:
|
|||
yalign .5
|
||||
|
||||
style confirm_prompt_text:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
layout "subtitle"
|
||||
|
||||
style confirm_button:
|
||||
properties gui.button_properties("confirm_button")
|
||||
|
||||
style confirm_button_text:
|
||||
properties gui.button_text_properties("confirm_button")
|
||||
properties gui.text_properties("confirm_button")
|
||||
|
||||
|
||||
## Skip indicator screen #######################################################
|
||||
|
@ -1729,7 +1734,7 @@ style nvl_label:
|
|||
yanchor 0.0
|
||||
xsize gui.nvl_name_width
|
||||
min_width gui.nvl_name_width
|
||||
text_align gui.nvl_name_xalign
|
||||
textalign gui.nvl_name_xalign
|
||||
|
||||
style nvl_dialogue:
|
||||
xpos gui.nvl_text_xpos
|
||||
|
@ -1737,7 +1742,7 @@ style nvl_dialogue:
|
|||
ypos gui.nvl_text_ypos
|
||||
xsize 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")
|
||||
|
||||
style nvl_thought:
|
||||
|
@ -1746,7 +1751,7 @@ style nvl_thought:
|
|||
ypos gui.nvl_thought_ypos
|
||||
xsize 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")
|
||||
|
||||
style nvl_button:
|
||||
|
@ -1758,6 +1763,94 @@ style nvl_button_text:
|
|||
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
|
||||
|
@ -1792,10 +1885,10 @@ screen quick_menu():
|
|||
yalign 0.975
|
||||
use quick_buttons("gui/button/uioptionbuttons/template_idle.png", \
|
||||
[ \
|
||||
[ _("Back"), Rollback() ], \
|
||||
[ _("Skip"), Skip() ], \
|
||||
[ _("Auto"), Preference("auto-forward", "toggle") ], \
|
||||
[ _("Menu"), ShowMenu() ] \
|
||||
[ _("Back"), Rollback(), NullAction()], \
|
||||
[ _("Skip"), Skip(), Skip(fast=True, confirm=True) ], \
|
||||
[ _("Auto"), Preference("auto-forward", "toggle"), NullAction() ], \
|
||||
[ _("Menu"), ShowMenu(), NullAction() ] \
|
||||
] )
|
||||
|
||||
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:
|
||||
add "gui/snootgame.png"
|
||||
vbox:
|
||||
spacing 25
|
||||
spacing 10
|
||||
xpos 1885
|
||||
yalign 0.9
|
||||
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"
|
||||
|
|
|
@ -2539,14 +2539,14 @@ label chapter_13C:
|
|||
easein_cubic 1 xalign 1.85
|
||||
|
||||
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
|
||||
with None
|
||||
|
||||
show naser rstained surprised
|
||||
hide chillicheesefries
|
||||
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
|
||||
with dissolve
|
||||
|
||||
|
@ -2554,7 +2554,7 @@ label chapter_13C:
|
|||
|
||||
show naser rstained shocked
|
||||
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
|
||||
with Dissolve(.22)
|
||||
|
||||
|
@ -2635,7 +2635,7 @@ label chapter_13C:
|
|||
show naser fullystained shocked
|
||||
hide chillicheesefries
|
||||
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
|
||||
with Dissolve(.22)
|
||||
|
||||
|
|
|
@ -335,7 +335,7 @@ label chapter_8:
|
|||
|
||||
show reed happy flip:
|
||||
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
|
||||
hide reed with Dissolve(.25)
|
||||
play sound 'audio/effects/anonGardenFall.ogg'
|
||||
|
@ -1279,7 +1279,6 @@ label chapter_8:
|
|||
with Dissolve(0.2)
|
||||
|
||||
pause 0.3
|
||||
hide anonfacecloseup
|
||||
|
||||
|
||||
FD "Out. {w=0.3}{b}Now{/b}."
|
||||
|
|
|
@ -13,12 +13,10 @@ init 2 python:
|
|||
CG_PATHS = []
|
||||
#path: folder, name: shows up in gallery, eval: runs eval() on string
|
||||
|
||||
"""
|
||||
Data structure that holds the data for each cg and button
|
||||
item is name, cg is the image definition
|
||||
{ item: str; cg: Displayable; }
|
||||
(reference in this init python, actually used in screens)
|
||||
"""
|
||||
# Data structure that holds the data for each cg and button
|
||||
# item is name, cg is the image definition
|
||||
# { item: str; cg: Displayable; }
|
||||
# (reference in this init python, actually used in screens)
|
||||
|
||||
gallery_dic = {}
|
||||
|
||||
|
@ -89,10 +87,10 @@ init 2 python:
|
|||
# Bullshit for the scrollbar to reset back to the beggining. Bless the renpy Discord :pray:
|
||||
default adjust = ui.adjustment()
|
||||
|
||||
"""
|
||||
CG Gallery screen - A screen that shows the image gallery
|
||||
Built-in Gallery Object has terrible defaults, so I just wrote my own stuff
|
||||
"""
|
||||
|
||||
# CG Gallery screen - A screen that shows the image gallery
|
||||
# Built-in Gallery Object has terrible defaults, so I just wrote my own stuff
|
||||
|
||||
screen cg_gallery(origin = 'CG'):
|
||||
|
||||
if main_menu:
|
||||
|
@ -162,9 +160,8 @@ screen cg_gallery(origin = 'CG'):
|
|||
for i in range(0, empty_spaces):
|
||||
null height 20
|
||||
|
||||
"""
|
||||
if/else flow control & extra parameters for Buttons
|
||||
"""
|
||||
|
||||
# if/else flow control & extra parameters for Buttons
|
||||
screen flag_button(item, origin):
|
||||
|
||||
$ flag = renpy.seen_image(item['item'])
|
||||
|
@ -200,9 +197,8 @@ screen view_movie(item, _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):
|
||||
tag menu
|
||||
key "game_menu" action (Hide('view_image'), _origin)
|
||||
|
@ -211,7 +207,7 @@ screen view_image(item, _origin):
|
|||
viewport id "vie":
|
||||
#Ren'Py isn't smart enough to not edgescroll while pressed,
|
||||
#so we'll have to disable this for mobile
|
||||
if renpy.variant("pc"):
|
||||
if renpy.variant("pc") and persistent.gallery_edgescroll:
|
||||
edgescroll (300, 1800)
|
||||
draggable True
|
||||
arrowkeys True
|
||||
|
|
|
@ -31,7 +31,7 @@ screen ex_ch_button(filename, label, function):
|
|||
activate_sound "audio/ui/uiClick.wav"
|
||||
fixed:
|
||||
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() ], .. ]
|
||||
# Reuse the same image string and keep things 'neat'.
|
||||
|
|
|
@ -1063,7 +1063,7 @@ image naomi prom lessblurred = im.Flip(im.Blur('images/naomi/naomi prom neutral.
|
|||
#image emptyroomnight = "images/backgrounds/emptyroomnight.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 ending_d_cg = 'images/cgs/golden ending.webp'
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ transform rright:
|
|||
#misc transforms
|
||||
transform shudder:
|
||||
subpixel True
|
||||
around (.5, .5) alignaround (.5, .5) xalign .5 yalign .5
|
||||
alignaround (.5, .5) xalign .5 yalign .5
|
||||
rotate 0
|
||||
linear 0.0 rotate -0.75
|
||||
block:
|
||||
|
@ -175,8 +175,7 @@ screen mousedetect():
|
|||
zoom 0.8
|
||||
rotate 12.5
|
||||
mousearea:
|
||||
ypos -75
|
||||
area(432, 0, 795, 1100)
|
||||
area(432, -75, 795, 1100)
|
||||
# xalign 0.5 yanchor 0 ypos 0
|
||||
hovered Hide("prompt" )
|
||||
unhovered Show("prompt")
|
||||
|
@ -198,7 +197,7 @@ screen textscroll():
|
|||
|
||||
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))
|
||||
xsize 284
|
||||
ysize 107
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -3118,7 +3118,7 @@ translate ru lGetStartedOnStudy_65a33de5:
|
|||
translate ru lGetStartedOnStudy_75551969:
|
||||
|
||||
# SV "Yeah, a {i}‘study’{/i} session."
|
||||
SV "Агась, {i}‘учились’{/ i} вместе."
|
||||
SV "Агась, {i}‘учились’{/i} вместе."
|
||||
|
||||
# game/script/8.anon-and-fang-study-together.rpy:2073
|
||||
translate ru lGetStartedOnStudy_393f7659:
|
||||
|
|
Loading…
Reference in a new issue