init offset = -1 style default: properties gui.text_properties() language gui.language style input: properties gui.text_properties("input", accent=True) adjust_spacing False style hyperlink_text: properties gui.text_properties("hyperlink", accent=True) hover_underline True style gui_text: properties gui.text_properties("interface") style button: properties gui.button_properties("button") style button_text is gui_text: properties gui.text_properties("button") yalign 0.5 style label_text is gui_text: properties gui.text_properties("label", accent=True) style prompt_text is gui_text: properties gui.text_properties("prompt") style bar: ysize gui.bar_size left_bar Frame("gui/bar/left.png", gui.bar_borders, tile=gui.bar_tile) right_bar Frame("gui/bar/right.png", gui.bar_borders, tile=gui.bar_tile) style vbar: xsize gui.bar_size top_bar Frame("gui/bar/top.png", gui.vbar_borders, tile=gui.bar_tile) bottom_bar Frame("gui/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile) style scrollbar: ysize gui.scrollbar_size base_bar Frame("gui/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile) thumb Frame("gui/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile) style vscrollbar: xsize gui.scrollbar_size base_bar Frame("gui/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile) thumb Frame("gui/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile) style slider: ysize gui.slider_size base_bar Frame("gui/slider/horizontal_[prefix_]bar.png", gui.slider_borders, tile=gui.slider_tile) thumb "gui/slider/horizontal_[prefix_]thumb.png" style vslider: xsize gui.slider_size base_bar Frame("gui/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile) thumb "gui/slider/vertical_[prefix_]thumb.png" style frame: padding gui.frame_borders.padding background Frame("gui/frame.png", gui.frame_borders, tile=gui.frame_tile) screen say(who, what): style_prefix "say" window: id "window" if who is not None: window: id "namebox" style "namebox" text who id "who" text what id "what" if not renpy.variant("small"): add SideImage() xalign 0.0 yalign 1.0 init python: config.character_id_prefixes.append('namebox') style window is default style say_label is default style say_dialogue is default style say_thought is say_dialogue style namebox is default style namebox_label is say_label style window: xalign 0.5 xfill True yalign gui.textbox_yalign ysize gui.textbox_height background Image("gui/textbox.png", xalign=0.5, yalign=1.0) style namebox: xpos gui.name_xpos xanchor gui.name_xalign xsize gui.namebox_width ypos gui.name_ypos ysize gui.namebox_height background Frame("gui/namebox.png", gui.namebox_borders, tile=gui.namebox_tile, xalign=gui.name_xalign) padding gui.namebox_borders.padding style say_label: properties gui.text_properties("name", accent=True) xalign gui.name_xalign yalign 0.5 style say_dialogue: properties gui.text_properties("dialogue") size 20 color "#FFFFFF" line_spacing 4 xpos gui.dialogue_xpos xsize gui.dialogue_width ypos gui.dialogue_ypos screen input(prompt): style_prefix "input" window: has vbox: xalign gui.dialogue_text_xalign xpos gui.dialogue_xpos xsize gui.dialogue_width ypos gui.dialogue_ypos text prompt style "input_prompt" input id "input" style input_prompt is default style input_prompt: xalign gui.dialogue_text_xalign properties gui.text_properties("input_prompt") style input: xalign gui.dialogue_text_xalign xmaximum gui.dialogue_width screen choice(items): style_prefix "choice" vbox: for i in items: textbutton i.caption action i.action define config.narrator_menu = True style choice_vbox is vbox style choice_button is button style choice_button_text is button_text style choice_vbox: xalign 0.5 ypos 270 yanchor 0.5 spacing gui.choice_spacing style choice_button is default: properties gui.button_properties("choice_button") style choice_button_text is default: properties gui.button_text_properties("choice_button") screen quick_menu(): zorder 100 if quick_menu: hbox: style_prefix "quick" xalign 0.5 yalign 1.0 textbutton _("Back") action Rollback() textbutton _("History") action ShowMenu('history') textbutton _("Skip") action Skip() alternate Skip(fast=True, confirm=True) textbutton _("Auto") action Preference("auto-forward", "toggle") textbutton _("Save") action ShowMenu('save') textbutton _("Q.Save") action QuickSave() textbutton _("Q.Load") action QuickLoad() textbutton _("Prefs") action ShowMenu('preferences') init python: config.overlay_screens.append("quick_menu") default quick_menu = True style quick_button is default style quick_button_text is button_text style quick_button: properties gui.button_properties("quick_button") style quick_button_text: properties gui.button_text_properties("quick_button") screen navigation(): vbox: style_prefix "navigation" xpos gui.navigation_xpos yalign 0.5 spacing gui.navigation_spacing if main_menu: textbutton _("Start") action Start() else: textbutton _("History") action ShowMenu("history") textbutton _("Save") action ShowMenu("save") textbutton _("Load") action ShowMenu("load") textbutton _("Preferences") action ShowMenu("preferences") if _in_replay: textbutton _("End Replay") action EndReplay(confirm=True) elif not main_menu: textbutton _("Main Menu") action MainMenu() textbutton _("About") action ShowMenu("about") if renpy.variant("pc") or (renpy.variant("web") and not renpy.variant("mobile")): textbutton _("Help") action ShowMenu("help") if renpy.variant("pc"): textbutton _("Quit") action Quit(confirm=not main_menu) style navigation_button is gui_button style navigation_button_text is gui_button_text style navigation_button: size_group "navigation" properties gui.button_properties("navigation_button") style navigation_button_text: properties gui.button_text_properties("navigation_button") init: define main_menu_movie = Movie(size=(config.screen_width, config.screen_height), play="gui/main_menu_effect.webm", loop=True) screen main_menu(): $ import time $ now = time.time() $ last_login = persistent.last_login if persistent.last_login is not None else 0 if now - last_login > 86400: $ persistent.PATREON_USER_DATA = None $ persistent.PATREON_USER_DATA_TIMESTAMP = 0 add Movie(size=(1700, 1080), play="gui/main_menu_effect.webm", loop=True) frame: style_prefix "main_menu" has vbox $ included = (persistent.PATREON_USER_DATA or {}).get("included", []) $ patron_status = "active_patron" $ amount = None if included and len(included) > 0: $ attributes = included[0].get("attributes", {}) $ patron_status = "active_patron" $ amount = attributes.get("currently_entitled_amount_cents") $ user_name = persistent.PATREON_USER_DATA.get("data").get("attributes").get("full_name") if persistent.PATREON_USER_DATA else "Anon" $ email = persistent.PATREON_USER_DATA.get("data").get("attributes").get("email") if persistent.PATREON_USER_DATA else None if patron_status == "active_patron": imagebutton: auto "gui/new_game_%s.png" xpos 218 ypos -306 action Start() focus_mask True else: imagebutton: auto "gui/new_game_%s.png" xpos 218 ypos -306 action PatreonAuth(PATREON_CLIENT_ID, PATREON_CLIENT_SECRET, "/auth") focus_mask True if patron_status == "active_patron": imagebutton: auto "gui/load_%s.png" xpos 218 ypos -283 action ShowMenu("load") focus_mask True else: imagebutton: auto "gui/load_%s.png" xpos 218 ypos -283 action PatreonAuth(PATREON_CLIENT_ID, PATREON_CLIENT_SECRET, "/auth") focus_mask True imagebutton: auto "gui/settings_%s.png" xpos 218 ypos -261 action ShowMenu("preferences") focus_mask True imagebutton: auto "gui/gallery_%s.png" xpos 218 ypos -236 action ShowMenu("character_selection") focus_mask True imagebutton: auto "gui/credits_%s.png" xpos 218 ypos -214 action ShowMenu("about") focus_mask True imagebutton: auto "gui/quit_%s.png" xpos 218 ypos -190 action Quit() focus_mask True style main_menu_frame is empty style main_menu_vbox is vbox style main_menu_text is gui_text style main_menu_title is main_menu_text style main_menu_version is main_menu_text style main_menu_frame: xsize 280 yfill True background "gui/overlay/main_menu.png" style main_menu_vbox: xalign 1.0 xoffset -20 xmaximum 800 yalign 1.0 yoffset -20 style main_menu_text: properties gui.text_properties("main_menu", accent=True) style main_menu_title: properties gui.text_properties("title") style main_menu_version: properties gui.text_properties("version") screen game_menu(title, scroll=None, yinitial=0.0): style_prefix "game_menu" if main_menu: add gui.main_menu_background else: add gui.game_menu_background frame: style "game_menu_outer_frame" has hbox frame: style "game_menu_navigation_frame" frame: style "game_menu_content_frame" if scroll == "viewport": viewport: yinitial yinitial scrollbars "vertical" mousewheel True draggable True pagekeys True side_yfill True has vbox transclude elif scroll == "vpgrid": vpgrid: cols 1 yinitial yinitial scrollbars "vertical" mousewheel True draggable True pagekeys True side_yfill True transclude else: transclude use navigation textbutton _("Return"): style "return_button" action Return() label title if main_menu: key "game_menu" action ShowMenu("main_menu") style game_menu_outer_frame is empty style game_menu_outer_frame_blank is empty style game_menu_navigation_frame is empty style game_menu_content_frame is empty style game_menu_viewport is gui_viewport style game_menu_side is gui_side style game_menu_scrollbar is gui_vscrollbar style game_menu_label is gui_label style game_menu_label_text is gui_label_text style return_button is navigation_button style return_button_text is navigation_button_text style game_menu_outer_frame: background "gui/overlay/game_menu.png" style game_menu_outer_frame_blank: background "gui/overlay/game_menu_blank.png" style game_menu_navigation_frame: xsize 280 yfill True style game_menu_content_frame: left_margin 40 right_margin 20 top_margin 10 style game_menu_viewport: xsize 920 style game_menu_vscrollbar: unscrollable gui.unscrollable style game_menu_side: spacing 10 style game_menu_label: xpos 50 ysize 120 style game_menu_label_text: size gui.title_text_size color gui.accent_color yalign 0.5 style return_button: xpos gui.navigation_xpos yalign 1.0 yoffset -30 screen about(): tag menu use game_menu(_("About"), scroll="viewport"): style_prefix "about" vbox: label "[config.name!t]" text _("Version [config.version!t]\n") if gui.about: text "[gui.about!t]\n" text _("Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]") style about_label is gui_label style about_label_text is gui_label_text style about_text is gui_text style about_label_text: size gui.label_text_size screen save(): tag menu use file_slots(_("Save")) screen load(): tag menu use file_slots(_("Load")) screen file_slots(title): default page = 1 frame: add "/ui_ux/load_and_save_menu/load_menu_1.png" vbox: hbox: ysize 113 spacing 0 hbox: hbox: ysize 65 xsize 842 hbox: imagebutton: idle "ui_ux/load_and_save_menu/back_button_idle.png" hover "ui_ux/load_and_save_menu/back_button_hover.png" if not main_menu: action Return() else: action [Jump("quick_quit")] hbox: ysize 44 hbox: ysize 60 hbox: xsize 317 hbox: style_prefix "page" imagebutton: idle "ui_ux/load_and_save_menu/prev_idle.png" hover "ui_ux/load_and_save_menu/prev_hover.png" action FilePagePrevious() hbox: xsize 59 imagebutton: idle "ui_ux/load_and_save_menu/a.png" hover "ui_ux/load_and_save_menu/a_hover.png" selected_idle "ui_ux/load_and_save_menu/a_hover.png" action FilePage("auto") hbox: xsize 30 imagebutton: idle "ui_ux/load_and_save_menu/q.png" hover "ui_ux/load_and_save_menu/q_hover.png" selected_idle "ui_ux/load_and_save_menu/q_hover.png" action FilePage("quick") hbox: xsize 31 imagebutton: idle "ui_ux/load_and_save_menu/1.png" hover "ui_ux/load_and_save_menu/1_hover.png" selected_idle "ui_ux/load_and_save_menu/1_hover.png" action FilePage(1) hbox: xsize 32 imagebutton: idle "ui_ux/load_and_save_menu/2.png" hover "ui_ux/load_and_save_menu/2_hover.png" selected_idle "ui_ux/load_and_save_menu/2_hover.png" action FilePage(2) hbox: xsize 30 imagebutton: idle "ui_ux/load_and_save_menu/3.png" hover "ui_ux/load_and_save_menu/3_hover.png" selected_idle "ui_ux/load_and_save_menu/3_hover.png" action FilePage(3) hbox: xsize 31 imagebutton: idle "ui_ux/load_and_save_menu/4.png" hover "ui_ux/load_and_save_menu/4_hover.png" selected_idle "ui_ux/load_and_save_menu/4_hover.png" action FilePage(4) hbox: xsize 29 imagebutton: idle "ui_ux/load_and_save_menu/5.png" hover "ui_ux/load_and_save_menu/5_hover.png" selected_idle "ui_ux/load_and_save_menu/5_hover.png" action FilePage(5) hbox: xsize 31 imagebutton: idle "ui_ux/load_and_save_menu/6.png" hover "ui_ux/load_and_save_menu/6_hover.png" selected_idle "ui_ux/load_and_save_menu/6_hover.png" action FilePage(6) hbox: xsize 64 imagebutton: idle "ui_ux/load_and_save_menu/next_idle.png" hover "ui_ux/load_and_save_menu/next_hover.png" action FilePageNext() hbox: ysize 82 hbox: hbox: xsize 385 grid 3 2: xspacing 80 yspacing 76 for i in range(6): $ slot = i + 1 frame: background Frame("/ui_ux/load_and_save_menu/background_frame.png") has button: xsize 323 ysize 228 action FileAction(slot) vbox: spacing 15 add FileScreenshot(slot): xsize 316 ysize 223 xalign 0.5 text FileTime(slot, format=_("{#file_time}%A, %B %d %Y, %H:%M"), empty=_("empty slot")): style "slot_time_text" text FileSaveName(slot): style "slot_name_text" key "save_delete" action FileDelete(slot) style page_label is gui_label style page_label_text is gui_label_text style page_button is gui_button style page_button_text is gui_button_text style slot_button is gui_button style slot_button_text is gui_button_text style slot_time_text is slot_button_text style slot_name_text is slot_button_text style page_label: xpadding 50 ypadding 3 style page_label_text: text_align 0.5 layout "subtitle" hover_color gui.hover_color style page_button: properties gui.button_properties("page_button") style page_button_text: properties gui.button_text_properties("page_button") style slot_button: properties gui.button_properties("slot_button") style slot_button_text: properties gui.button_text_properties("slot_button") screen preferences(): frame: background "ui_ux/preferences/setting_1.jpg" has vbox hbox: ysize 128 hbox: imagebutton: xpos 808 idle "ui_ux/preferences/back_button_idle.jpg" hover "ui_ux/preferences/back_button_hover.jpg" if not main_menu: action Return() else: action [Hide("preferences"), Return(), Show("main_menu")] hbox: ysize 41 hbox: hbox: xsize 316 vbox: vbox: ysize 25 imagebutton: idle "ui_ux/preferences/window_button_idle.jpg" hover "ui_ux/preferences/window_button_hover.jpg" action Preference("display", "window") focus_mask True vbox: ysize 29 imagebutton: idle "ui_ux/preferences/fullscreen_button_idle.jpg" hover "ui_ux/preferences/fullscreen_button_hover.jpg" action Preference("display", "fullscreen") focus_mask True vbox: ysize 108 imagebutton: idle "ui_ux/preferences/unseentext_button_idle.jpg" hover "ui_ux/preferences/unseentext_button_hover.jpg" action Preference("skip", "seen") focus_mask True vbox: ysize 29 imagebutton: idle "ui_ux/preferences/afterchoice_button_idle.jpg" hover "ui_ux/preferences/afterchoice_button_hover.jpg" action Preference("after choices", "toggle") focus_mask True vbox: ysize 29 imagebutton: idle "ui_ux/preferences/transition_button_locked.jpg" focus_mask True vbox: xsize 108 vbox: spacing 0 label "Text Speed" text_size 27 text_color "#00000000" hbox: ysize 7 bar value Preference("text speed") xsize 495 ysize 42 hbox: ysize 34 label "Text Speed" text_size 27 text_color "#00000000" hbox: ysize 3 bar value Preference("auto-forward time") xsize 495 ysize 42 hbox: ysize 37 label "Text Speed" text_size 27 text_color "#00000000" hbox: ysize 3 bar value Preference("music volume") xsize 495 ysize 42 hbox: ysize 39 label "Text Speed" text_size 27 text_color "#00000000" hbox: ysize 3 bar value Preference("sound volume") xsize 495 ysize 42 hbox: ysize 37 label "Text Speed" text_size 27 text_color "#00000000" hbox: ysize 3 bar value Preference("voice volume") xsize 495 ysize 42 style pref_button: size 30 background Frame("ui_ux/preferences/button_frame.png", 10, 10) padding (10, 20) xalign 0.5 style pref_label is gui_label style pref_label_text is gui_label_text style pref_vbox is vbox style radio_label is pref_label style radio_label_text is pref_label_text style radio_button is gui_button style radio_button_text is gui_button_text style radio_vbox is pref_vbox style check_label is pref_label style check_label_text is pref_label_text style check_button is gui_button style check_button_text is gui_button_text style check_vbox is pref_vbox style slider_label is pref_label style slider_label_text is pref_label_text style slider_slider is gui_slider style slider_button is gui_button style slider_button_text is gui_button_text style slider_pref_vbox is pref_vbox style mute_all_button is check_button style mute_all_button_text is check_button_text style pref_label: top_margin gui.pref_spacing bottom_margin 2 style pref_label_text: yalign 1.0 style pref_vbox: xsize 225 style radio_vbox: spacing gui.pref_button_spacing style radio_button: properties gui.button_properties("radio_button") foreground "gui/button/radio_[prefix_]foreground.png" style radio_button_text: properties gui.button_text_properties("radio_button") style check_vbox: spacing gui.pref_button_spacing style check_button: properties gui.button_properties("check_button") foreground "gui/button/check_[prefix_]foreground.png" style check_button_text: properties gui.button_text_properties("check_button") style slider_slider: xsize 350 style slider_button: properties gui.button_properties("slider_button") yalign 0.5 left_margin 10 style slider_button_text: properties gui.button_text_properties("slider_button") style slider_vbox: xsize 450 screen history(): predict False tag menu use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0): style_prefix "history" for h in _history_list: window: has fixed: yfit True if h.who: label h.who: style "history_name" substitute False if "color" in h.who_args: text_color h.who_args["color"] $ what = renpy.filter_text_tags(h.what, allow=gui.history_allow_tags) text what: substitute False if not _history_list: label _("The dialogue history is empty.") define gui.history_allow_tags = { "alt", "noalt" } style history_window is empty style history_name is gui_label style history_name_text is gui_label_text style history_text is gui_text style history_text is gui_text style history_label is gui_label style history_label_text is gui_label_text style history_window: xfill True ysize gui.history_height style history_name: xpos gui.history_name_xpos xanchor gui.history_name_xalign ypos gui.history_name_ypos xsize gui.history_name_width style history_name_text: min_width gui.history_name_width text_align gui.history_name_xalign style history_text: xpos gui.history_text_xpos ypos gui.history_text_ypos xanchor gui.history_text_xalign xsize gui.history_text_width min_width gui.history_text_width text_align gui.history_text_xalign layout ("subtitle" if gui.history_text_xalign else "tex") style history_label: xfill True style history_label_text: xalign 0.5 screen help(): tag menu default device = "keyboard" use game_menu(_("Help"), scroll="viewport"): style_prefix "help" vbox: spacing 15 hbox: textbutton _("Keyboard") action SetScreenVariable("device", "keyboard") textbutton _("Mouse") action SetScreenVariable("device", "mouse") if GamepadExists(): textbutton _("Gamepad") action SetScreenVariable("device", "gamepad") if device == "keyboard": use keyboard_help elif device == "mouse": use mouse_help elif device == "gamepad": use gamepad_help screen keyboard_help(): hbox: label _("Enter") text _("Advances dialogue and activates the interface.") hbox: label _("Space") text _("Advances dialogue without selecting choices.") hbox: label _("Arrow Keys") text _("Navigate the interface.") hbox: label _("Escape") text _("Accesses the game menu.") hbox: label _("Ctrl") text _("Skips dialogue while held down.") hbox: label _("Tab") text _("Toggles dialogue skipping.") hbox: label _("Page Up") text _("Rolls back to earlier dialogue.") hbox: label _("Page Down") text _("Rolls forward to later dialogue.") hbox: label "H" text _("Hides the user interface.") hbox: label "S" text _("Takes a screenshot.") hbox: label "V" text _("Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}.") hbox: label "Shift+A" text _("Opens the accessibility menu.") screen mouse_help(): hbox: label _("Left Click") text _("Advances dialogue and activates the interface.") hbox: label _("Middle Click") text _("Hides the user interface.") hbox: label _("Right Click") text _("Accesses the game menu.") hbox: label _("Mouse Wheel Up\nClick Rollback Side") text _("Rolls back to earlier dialogue.") hbox: label _("Mouse Wheel Down") text _("Rolls forward to later dialogue.") screen gamepad_help(): hbox: label _("Right Trigger\nA/Bottom Button") text _("Advances dialogue and activates the interface.") hbox: label _("Left Trigger\nLeft Shoulder") text _("Rolls back to earlier dialogue.") hbox: label _("Right Shoulder") text _("Rolls forward to later dialogue.") hbox: label _("D-Pad, Sticks") text _("Navigate the interface.") hbox: label _("Start, Guide") text _("Accesses the game menu.") hbox: label _("Y/Top Button") text _("Hides the user interface.") textbutton _("Calibrate") action GamepadCalibrate() style help_button is gui_button style help_button_text is gui_button_text style help_label is gui_label style help_label_text is gui_label_text style help_text is gui_text style help_button: properties gui.button_properties("help_button") xmargin 8 style help_button_text: properties gui.button_text_properties("help_button") style help_label: xsize 250 right_padding 20 style help_label_text: size gui.text_size xalign 1.0 text_align 1.0 screen confirm(message, yes_action, no_action): modal True zorder 200 frame: background "ui_ux/back_to_main_menu/back_to_main_menu.png" vbox: hbox: ysize 495 frame: background "#ff000000" hbox: ysize 84 frame: background "#ff000000" xsize 479 imagebutton: idle "ui_ux/back_to_main_menu/yes_idle.png" hover "ui_ux/back_to_main_menu/yes_hover.png" action yes_action frame: background "#ff000000" xsize 197 imagebutton: idle "ui_ux/back_to_main_menu/no_idle.png" hover "ui_ux/back_to_main_menu/no_hover.png" action no_action hbox: ysize 49 frame: background "#ff000000" hbox: ysize 58 frame: background "#ff000000" xsize 751 imagebutton: idle "ui_ux/back_to_main_menu/patreon_idle.png" hover "ui_ux/back_to_main_menu/patreon_hover.png" action OpenURL("https://www.patreon.com/kimkun0162") key "game_menu" action no_action style confirm_frame is gui_frame style confirm_prompt is gui_prompt style confirm_prompt_text is gui_prompt_text style confirm_button is gui_medium_button style confirm_button_text is gui_medium_button_text style confirm_frame: background Frame([ "gui/confirm_frame.png", "gui/frame.png"], gui.confirm_frame_borders, tile=gui.frame_tile) padding gui.confirm_frame_borders.padding xalign .5 yalign .5 style confirm_prompt_text: text_align 0.5 layout "subtitle" style confirm_button: properties gui.button_properties("confirm_button") style confirm_button_text: properties gui.button_text_properties("confirm_button") screen skip_indicator(): zorder 100 style_prefix "skip" frame: has hbox: spacing 6 text _("Skipping") text "▸" at delayed_blink(0.0, 1.0) style "skip_triangle" text "▸" at delayed_blink(0.2, 1.0) style "skip_triangle" text "▸" at delayed_blink(0.4, 1.0) style "skip_triangle" transform delayed_blink(delay, cycle): alpha .5 pause delay block: linear .2 alpha 1.0 pause .2 linear .2 alpha 0.5 pause (cycle - .4) repeat style skip_frame is empty style skip_text is gui_text style skip_triangle is skip_text style skip_frame: ypos gui.skip_ypos background Frame("gui/skip.png", gui.skip_frame_borders, tile=gui.frame_tile) padding gui.skip_frame_borders.padding style skip_text: size gui.notify_text_size style skip_triangle: font "DejaVuSans.ttf" screen notify(message): zorder 100 style_prefix "notify" frame at notify_appear: text "[message!tq]" timer 3.25 action Hide('notify') transform notify_appear: on show: alpha 0 linear .25 alpha 1.0 on hide: linear .5 alpha 0.0 style notify_frame is empty style notify_text is gui_text style notify_frame: ypos gui.notify_ypos background Frame("gui/notify.png", gui.notify_frame_borders, tile=gui.frame_tile) padding gui.notify_frame_borders.padding style notify_text: properties gui.text_properties("notify") screen nvl(dialogue, items=None): window: style "nvl_window" has vbox: spacing gui.nvl_spacing if gui.nvl_height: vpgrid: cols 1 yinitial 1.0 use nvl_dialogue(dialogue) else: use nvl_dialogue(dialogue) for i in items: textbutton i.caption: action i.action style "nvl_button" add SideImage() xalign 0.0 yalign 1.0 screen nvl_dialogue(dialogue): for d in dialogue: window: id d.window_id has fixed: yfit gui.nvl_height is None if d.who is not None: text d.who: id d.who_id text d.what: id d.what_id define config.nvl_list_length = gui.nvl_list_length style nvl_window is default style nvl_entry is default style nvl_label is say_label style nvl_dialogue is say_dialogue style nvl_button is button style nvl_button_text is button_text style nvl_window: xfill True yfill True background "gui/nvl.png" padding gui.nvl_borders.padding style nvl_entry: xfill True ysize gui.nvl_height style nvl_label: xpos gui.nvl_name_xpos xanchor gui.nvl_name_xalign ypos gui.nvl_name_ypos yanchor 0.0 xsize gui.nvl_name_width min_width gui.nvl_name_width text_align gui.nvl_name_xalign style nvl_dialogue: xpos gui.nvl_text_xpos xanchor gui.nvl_text_xalign ypos gui.nvl_text_ypos xsize gui.nvl_text_width min_width gui.nvl_text_width text_align gui.nvl_text_xalign layout ("subtitle" if gui.nvl_text_xalign else "tex") style nvl_thought: xpos gui.nvl_thought_xpos xanchor gui.nvl_thought_xalign ypos gui.nvl_thought_ypos xsize gui.nvl_thought_width min_width gui.nvl_thought_width text_align gui.nvl_thought_xalign layout ("subtitle" if gui.nvl_text_xalign else "tex") style nvl_button: properties gui.button_properties("nvl_button") xpos gui.nvl_button_xpos xanchor gui.nvl_button_xalign style nvl_button_text: properties gui.button_text_properties("nvl_button") style pref_vbox: variant "medium" xsize 450 screen quick_menu(): variant "touch" zorder 100 if quick_menu: hbox: style_prefix "quick" xalign 0.5 yalign 1.0 textbutton _("Back") action Rollback() textbutton _("Skip") action Skip() alternate Skip(fast=True, confirm=True) textbutton _("Auto") action Preference("auto-forward", "toggle") textbutton _("Menu") action ShowMenu() style window: variant "small" background "gui/phone/textbox.png" style radio_button: variant "small" foreground "gui/phone/button/radio_[prefix_]foreground.png" style check_button: variant "small" foreground "gui/phone/button/check_[prefix_]foreground.png" style nvl_window: variant "small" background "gui/phone/nvl.png" style main_menu_frame: variant "small" background "gui/phone/overlay/main_menu.png" style game_menu_outer_frame: variant "small" background "gui/phone/overlay/game_menu.png" style game_menu_outer_frame_blank: variant "small" background "gui/phone/overlay/game_menu_blank.png" style game_menu_navigation_frame: variant "small" xsize 340 style game_menu_content_frame: variant "small" top_margin 0 style pref_vbox: variant "small" xsize 400 style bar: variant "small" ysize gui.bar_size left_bar Frame("gui/phone/bar/left.png", gui.bar_borders, tile=gui.bar_tile) right_bar Frame("gui/phone/bar/right.png", gui.bar_borders, tile=gui.bar_tile) style vbar: variant "small" xsize gui.bar_size top_bar Frame("gui/phone/bar/top.png", gui.vbar_borders, tile=gui.bar_tile) bottom_bar Frame("gui/phone/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile) style scrollbar: variant "small" ysize gui.scrollbar_size base_bar Frame("gui/phone/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile) thumb Frame("gui/phone/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile) style vscrollbar: variant "small" xsize gui.scrollbar_size base_bar Frame("gui/phone/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile) thumb Frame("gui/phone/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile) style slider: variant "small" ysize gui.slider_size base_bar Frame("gui/phone/slider/horizontal_[prefix_]bar.png", gui.slider_borders, tile=gui.slider_tile) thumb "gui/phone/slider/horizontal_[prefix_]thumb.png" style vslider: variant "small" xsize gui.slider_size base_bar Frame("gui/phone/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile) thumb "gui/phone/slider/vertical_[prefix_]thumb.png" style slider_vbox: variant "small" xsize None style slider_slider: variant "small" xsize 600 # Decompiled by unrpyc: https://github.com/CensoredUsername/unrpyc