Files

3996 lines
140 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 0
ymaximum 0
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"
if hasattr(store, 'say_stop'):
zorder 999
timer .1 action Return()
imagebutton:
idle '#000'
hover '#000'
action Return()
window:
id "window"
if renpy.android and renpy.variant("small"):
background Transform("gui/phone/textbox.png", alpha = .01 * persistent.phone_alpha_bg_txt)
if who is not None:
window:
id "namebox"
style "namebox"
if _preferences.language in ['chinese']:
text who id "who" bold True outlines [(3, "#000", 0, 0)] font "fonts/h_font.ttf"
else:
text who id "who" bold True outlines [(3, "#000", 0, 0)]
if _preferences.language in ['chinese']:
text what id "what" color persistent.dialogue_color outlines [(3, "#000", 0, 0)] font "fonts/h_font.ttf"
else:
text what id "what" color persistent.dialogue_color outlines [(3, "#000", 0, 0)]
if not renpy.variant("small"):
add SideImage() xalign 0.0 yalign 1.0
if _in_replay:
key "game_menu" action EndReplay(True)
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")
xpos gui.dialogue_xpos
xsize gui.dialogue_width
ypos gui.dialogue_ypos
init 499 image my_img:
"images/main_interface/caret.png"
linear 1.0 alpha 1.0
linear 1.0 alpha 0.0
repeat
init -1:
$ style.input.caret = "my_img"
init -3 python:
class GetText(Action):
def __init__(self,screen_name,input_id):
self.screen_name=screen_name
self.input_id=input_id
def __call__(self):
if renpy.get_widget(self.screen_name,self.input_id):
return str(renpy.get_widget(self.screen_name,self.input_id).content)
screen input(prompt="", someText="", label="", win='', pc=False, n_deffault=''):
default shelp = False
style_prefix "choice"
imagebutton idle '#0338' hover '#0338' action NullAction()
vbox:
textbutton prompt text_yalign 0.5 action GetText("input","input") text_color '#fff' text_size 24 text_font checkFont("fonts/GOTHIC.ttf")
textbutton '' yminimum 100 text_color '#FFCA42' text_size 24
input id "input" default str(someText) xalign 0.5 yalign 0.41 length 10 color '#FFf' allow " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
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
label not_now_label:
hide screen black_tmp_screen_menu
ch_Name "{i}(There's nothing we can talk about right now.){/i}"
show screen show_hide_locations_2
show screen main_interface
hide screen black_tmp_screen_menu
jump main_interface_label
init python:
def get_items_choice(items):
r_items = []
for i in items:
if hasattr(store, 'set_now'):
if i.caption not in set_now:
r_items.append(i)
else:
r_items.append(i)
return(r_items)
def get_items_choice_debug(items, set_now):
r_items = []
for i in items:
if i not in set_now:
r_items.append(i)
else:
r_items.append(i)
return(r_items)
def checkedLGBTQ(chk):
global LGBTQ, sadira_girl, audrey_girl, elijah_hetero
persistent.LGBTQ = chk
if hasattr(store, 'LGBTQ'):
LGBTQ = chk
if hasattr(store, 'sadira_girl'):
del sadira_girl
if hasattr(store, 'audrey_girl'):
del audrey_girl
if hasattr(store, 'elijah_hetero'):
del elijah_hetero
return
old_game_runtime = renpy.get_game_runtime()
def AutoSaveInChoice():
global old_game_runtime
if renpy.get_game_runtime() - old_game_runtime > 10 and not renpy.get_screen('load'):
try:
renpy.force_autosave(take_screenshot = True, block = True)
except:
renpy.force_autosave(take_screenshot = True, block = False)
old_game_runtime = renpy.get_game_runtime()
screen choice(items):
style_prefix "choice"
zorder 350
default mmmf = None
if renpy.get_screen('main_interface'):
timer .1 action Hide('black_tmp_screen_menu')
timer .3 action Show('black_tmp_screen_menu')
if len(get_items_choice(items)) == 1 and items[len(items)-1].caption == 'Not now':
timer .01 action Jump('not_now_label')
else:
vbox yalign .8:
spacing 5
for i in items:
if hasattr(store, 'set_now'):
if i.caption not in set_now:
if i.caption[:2] in ['10', '20', '30', '40', '50', '60', '70', '80', '90']:
textbutton __(i.caption)[2:] action Hide('black_tmp_screen_menu', transition = Dissolve(.5)), i.action, If(i.caption != "Not now", true = Function(AutoSaveInChoice)):
if mmmf == i:
text_color "FFEEDE"
else:
text_color '#d9cbbb'
text_font "fonts/h_font.ttf"
hovered SetScreenVariable("mmmf", i)
unhovered SetScreenVariable("mmmf", None)
text_size 18 text_yalign .5
elif i.caption[0] in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']:
textbutton __(i.caption)[1:] action Hide('black_tmp_screen_menu', transition = Dissolve(.5)), i.action, If(i.caption != "Not now", true = Function(AutoSaveInChoice)):
if mmmf == i:
text_color "FFEEDE"
else:
text_color '#d9cbbb'
text_font "fonts/h_font.ttf"
hovered SetScreenVariable("mmmf", i)
unhovered SetScreenVariable("mmmf", None)
text_size 18 text_yalign .5
elif i.caption[0] in ['!']:
textbutton __(i.caption)[1:] action None:
text_color '#d9cbbbaa'
text_font "fonts/h_font.ttf"
text_size 18 text_yalign .5
else:
textbutton __(i.caption) action Hide('black_tmp_screen_menu', transition = Dissolve(.5)), i.action, If(i.caption != "Not now", true = Function(AutoSaveInChoice)):
if mmmf == i:
text_color "FFEEDE"
else:
text_color '#d9cbbb'
text_font "fonts/h_font.ttf"
hovered SetScreenVariable("mmmf", i)
unhovered SetScreenVariable("mmmf", None)
text_size 18 text_yalign .5
else:
if i.caption[0] in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']:
textbutton __(i.caption)[1:] action Hide('black_tmp_screen_menu', transition = Dissolve(.5)), i.action, If(i.caption != "Not now", true = Function(AutoSaveInChoice)):
if mmmf == i:
text_color "FFEEDE"
else:
text_color '#d9cbbb'
text_font "fonts/h_font.ttf"
hovered SetScreenVariable("mmmf", i)
unhovered SetScreenVariable("mmmf", None)
text_size 18 text_yalign .5
elif i.caption[0] in ['!']:
textbutton __(i.caption)[1:] action None:
text_color '#d9cbbbaa'
text_font "fonts/h_font.ttf"
text_size 18 text_yalign .5
else:
textbutton __(i.caption) action Hide('black_tmp_screen_menu', transition = Dissolve(.5)), i.action, If(i.caption != "Not now", true = Function(AutoSaveInChoice)):
if mmmf == i:
text_color "FFEEDE"
else:
text_color '#d9cbbb'
text_font "fonts/h_font.ttf"
hovered SetScreenVariable("mmmf", i)
unhovered SetScreenVariable("mmmf", None)
text_size 18 text_yalign .5
if _in_replay:
key "game_menu" action EndReplay(True)
define -1 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 405
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")
init python:
def my_show_settings():
set_button_menu_now_2('Settings')
ShowMenu('preferences')()
def my_show_history():
set_button_menu_now_2('History')
ShowMenu('history')()
def chk_snd():
persistent.muteall = not persistent.muteall
Preference("all mute", "toggle")()
renpy.restart_interaction()
tmp_time_now = 1
screen quick_menu():
zorder 230
if quick_menu and not _in_replay and not hide_interface:
hbox:
style_prefix "quick"
xalign .99
yalign .99
spacing 5
if renpy.get_screen('main_interface') != None:
imagebutton:
if lightning:
idle Transform('main_interface/down_buttons/hide_1_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/hide_1_1.png'
action SetVariable('lightning', False)
else:
idle Transform('main_interface/down_buttons/hide_0_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/hide_0_1.png'
action SetVariable('lightning', True)
else:
if renpy.get_screen('test_duel_game_start_screen') == None:
imagebutton:
idle Transform('main_interface/down_buttons/back_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/back_1.png'
selected_idle 'main_interface/down_buttons/back_0.png'
action Rollback()
imagebutton:
idle Transform('main_interface/down_buttons/skip_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/skip_1.png'
selected_idle 'main_interface/down_buttons/skip_0.png'
if hasattr(store, 'mmg'):
action Jump('sheet_24_end_game')
else:
action Skip() alternate Skip(fast=True, confirm=True)
imagebutton:
idle Transform('main_interface/down_buttons/menu_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/menu_1.png'
selected_idle 'main_interface/down_buttons/menu_0.png'
action Function(my_show_history)
imagebutton:
idle Transform('main_interface/down_buttons/save_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/save_1.png'
selected_idle 'main_interface/down_buttons/save_0.png'
action QuickSave()
imagebutton:
idle Transform('main_interface/down_buttons/load_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/load_1.png'
insensitive Transform('main_interface/down_buttons/load_0.png', alpha = .5)
selected_idle 'main_interface/down_buttons/load_0.png'
action QuickLoad()
if not _preferences.get_volume("sfx") and not _preferences.get_volume("music"):
imagebutton:
idle Transform('main_interface/down_buttons/sounds_off_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/sounds_off_1.png'
action Preference("all mute", "toggle")
else:
imagebutton:
idle Transform('main_interface/down_buttons/sounds_on_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/sounds_on_1.png'
action Preference("all mute", "toggle")
imagebutton:
idle Transform('main_interface/down_buttons/settings_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/settings_1.png'
selected_idle 'main_interface/down_buttons/settings_0.png'
action Function(my_show_settings)
if hasattr(store, 'battle_tutorial') and battle_tutorial and game:
imagebutton:
idle Transform('main_interface/down_buttons/quest_button_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/quest_button_1.png'
selected_idle 'main_interface/down_buttons/quest_button_0.png'
action Show('tutorial_screen', what_tutor= 'DUELING ARENA', rtrn= False)
if hasattr(store, 'caffe_tutorial') and caffe_tutorial and game:
imagebutton:
idle Transform('main_interface/down_buttons/quest_button_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/quest_button_1.png'
selected_idle 'main_interface/down_buttons/quest_button_0.png'
action SetVariable('hide_interface', True), Show('tutorial_screen', what_tutor= 'CAFE', rtrn= False)
if renpy.get_screen('main_interface') != None and game:
if hasattr(store, 'ep2start'):
imagebutton:
idle Transform('main_interface/down_buttons/quest_button_0.png', alpha = 1.0)
hover 'main_interface/down_buttons/quest_button_1.png'
selected_idle 'main_interface/down_buttons/quest_button_0.png'
if renpy.get_screen('quest_log_screen') != None and quest_log_menu_now == 'CHARACTER INFO':
action Show('tutorial_screen', what_tutor= 'CHARACTER INFO', rtrn=False)
elif renpy.get_screen('quest_log_screen') != None and quest_log_menu_now == 'CALENDAR':
action [SetVariable('tutorial_bb', 0), SetVariable('tmp_time_now', copy.copy(time_now)), SetVariable('time_now', 2), Function(show_q), Show('tutorial_screen', what_tutor= 'CALENDAR', rtrn=False)]
elif renpy.get_screen('lustagram_photo_now') != None:
action SetVariable('tutorial_bb', 0), Hide('lustagram_photo_now'), SetVariable('page_now','list'), Show('lustagram_screen'), Show('tutorial_screen', what_tutor= 'LUSTOGRAM', rtrn=False)
elif renpy.get_screen('lustagram_screen') != None:
action SetVariable('tutorial_bb', 0), Show('tutorial_screen', what_tutor= 'LUSTOGRAM', rtrn=False)
elif renpy.get_screen('show_mix_potions') != None:
action SetVariable('tutorial_bb', 0), Show('tutorial_screen', what_tutor= 'ALCHEMY', rtrn=False)
elif renpy.get_screen('quest_log_screen') != None and quest_log_menu_now == 'CHARACTERISTICS':
action SetVariable('tutorial_bb', 0), Show('tutorial_screen', what_tutor= 'MY PROFILE', rtrn=False)
else:
action SetVariable('hide_interface', True), Show('tutorial_screen', what_tutor= 'HUD INTERFACE', rtrn= False)
init python:
config.overlay_screens.append("quick_menu")
default -1 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")
init python:
tmp_button_1 = False
def on_start_fix_alpha(trans, st, at):
global tmp_button_1
if not tmp_button_1:
trans.alpha = 0.0
return None
def on_start_fix_ypos(trans, st, at):
global tmp_button_1
if not tmp_button_1:
trans.ypos = 43
else:
trans.ypos = 23
return None
transform -1 UpAlphaEffect:
ypos 43
linear 0.2 alpha 1.0 ypos 23
transform -1 DownAlphaEffect:
function on_start_fix_ypos
linear 0.2 alpha 1.0 ypos 43
transform -1 UpAlphaImageEffect:
ypos +20
linear 0.2 alpha 1.0 ypos 0
transform -1 DownAlphaImageEffect:
function on_start_fix_alpha
ypos 0
linear 0.2 alpha 0.0 ypos 20
init python:
button_settings = 0
button_load = 0
button_new_game = 0
button_gallery = 0
button_credits = 0
buttons_help = 0
button_load = 0
button_save = 0
button_history = 0
tmp_button = 0
button_menu_now = None
button_menu_now_2 = None
button_menu_now_3 = None
def set_button_menu_now_2(new):
global button_menu_now_2, button_menu_now_3
if button_menu_now_2 is not None:
button_menu_now_3 = copy.copy(button_menu_now_2)
button_menu_now_2 = copy.copy(new)
def set_buttons(i, up = False):
for x in ( 'button_settings',
'button_load',
'button_new_game',
'button_gallery',
'button_credits',
'buttons_help',
'button_load',
'button_save',
'button_history'):
if x != i:
SetVariable(x, 0)()
else:
if up:
SetVariable(x, 1)()
init 99 python:
config.intra_transition = Dissolve(.5)
def my_quit():
Quit()()
def my_main_menu():
global button_menu_now_2
if button_menu_now_2 == 'Load':
Hide('load', transition = Dissolve(1))()
if button_menu_now_2 == 'Settings':
Hide('preferences', transition = Dissolve(1))()
if button_menu_now_2 == 'Gallery':
Hide('gallery', transition = Dissolve(1))()
if button_menu_now_2 == 'Credits':
Hide('about', transition = Dissolve(1))()
if button_menu_now_2 == 'Help':
Hide('help', transition = Dissolve(1))()
button_menu_now_2 = None
style mm_menu:
size 50
init python:
mm_button_y = -100
screen new_game():
key "game_menu" action Hide("new_game")
imagebutton:
idle "#0000"
hover "#0000"
action Hide("new_game")
viewport:
xalign .5
yalign .5
hbox:
viewport:
xsize 960
ysize 1080
add '#0000'
add 'slv_1_bg'
add 'slv_2_logo' xalign .5 yalign .16
add 'slv_1_line' xalign .5 yalign .55
add Text(_('SANDBOX'), font = 'fonts/h_font.ttf', size = 74, color = '#FFEEDEAA') xalign .5 yalign .55
vbox:
xalign .5
yalign .85
spacing 10
add Text(_('Open World With Free Roam'), font = 'fonts/h_font.ttf', size = 32, color = '#FFEEDEAA') xalign .5
add 'slv_vector' xalign .5
add Text(_('Possibility To Choose Desired Content'), font = 'fonts/h_font.ttf', size = 32, color = '#FFEEDEAA') xalign .5
add 'slv_vector' xalign .5
add Text(_('Optional Mini-Games And Activities'), font = 'fonts/h_font.ttf', size = 32, color = '#FFEEDEAA') xalign .5
viewport:
xsize 960
ysize 1080
add '#0000'
add 'slv_2_bg'
add 'slv_1_logo' xalign .5 yalign .2
add 'slv_2_line' xalign .5 yalign .55
add Text(_('VISUAL NOVEL'), font = 'fonts/h_font.ttf', size = 74, color = '#FFEEDEAA') xalign .5 yalign .55
vbox:
xalign .5
yalign .85
spacing 10
add Text(_('All In One Storytelling'), font = 'fonts/h_font.ttf', size = 32, color = '#FFEEDEAA') xalign .5
add 'slv_vector' xalign .5
add Text(_('Occasional Choices'), font = 'fonts/h_font.ttf', size = 32, color = '#FFEEDEAA') xalign .5
add 'slv_vector' xalign .5
add Text(_('Plot-Driven Structure'), font = 'fonts/h_font.ttf', size = 32, color = '#FFEEDEAA') xalign .5
hbox:
imagebutton:
xsize 960
ysize 1080
idle '#0004'
hover '#0000'
action Hide("new_game"), SetVariable('game', True), Start()
imagebutton:
xsize 960
ysize 1080
idle '#0004'
hover '#0000'
action Hide("new_game"), SetVariable('game', False), Start(label = 'startstory')
imagebutton:
idle Transform('menu_return_button.png', alpha = .69)
hover 'menu_return_button.png'
action Hide("new_game"), ShowMenu("main_menu")
xalign .99
yalign .99
screen navigation(main_mm=False):
vbox:
style_prefix "mm_menu"
xalign .4
ypos 500
spacing gui.navigation_spacing
if main_menu:
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'start')
unhovered SetVariable('mm_button_y', -100)
action Show('scblocker', transition = Dissolve(.5)),Show('new_game', transition = Dissolve(.5))
text _("New game"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'start':
color '#FFEEDE'
else:
color '#C0B9DB'
else:
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'history')
unhovered SetVariable('mm_button_y', -100)
action ShowMenu("history")
text _("History"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'history':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'save')
unhovered SetVariable('mm_button_y', -100)
action ShowMenu("save")
text _("Save"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'save':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'settings')
unhovered SetVariable('mm_button_y', -100)
action ShowMenu("preferences")
text _("Settings"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'settings':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'load')
unhovered SetVariable('mm_button_y', -100)
action ShowMenu("load")
text _("Load"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'load':
color '#FFEEDE'
else:
color '#C0B9DB'
if not main_menu:
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'mmenu')
unhovered SetVariable('mm_button_y', -100)
action MainMenu()
text _("Main Menu"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'mmenu':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'about')
unhovered SetVariable('mm_button_y', -100)
action ShowMenu("about")
text _("Credits"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'about':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'gallery')
unhovered SetVariable('mm_button_y', -100)
action ShowMenu("gallery")
text _("Gallery"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'help':
color '#FFEEDE'
else:
color '#C0B9DB'
if renpy.variant("pc") or (renpy.variant("web") and not renpy.variant("mobile")):
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'help')
unhovered SetVariable('mm_button_y', -100)
action ShowMenu("help")
text _("Help"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'help':
color '#FFEEDE'
else:
color '#C0B9DB'
if renpy.variant("pc"):
viewport:
xmaximum 435
ymaximum 52
imagebutton:
idle '#0000'
focus_mask None
hover 'main_menu_button'
hovered SetVariable('mm_button_y', 'quit')
unhovered SetVariable('mm_button_y', -100)
action Quit(confirm=not main_menu)
text _("Quit"):
xalign .5 yalign .5 text_align .5
size 42 font 'fonts/h_font.ttf'
if mm_button_y == 'quit':
color '#FFEEDE'
else:
color '#C0B9DB'
hbox:
yalign .98
xalign .47
spacing 8
if not config.steam_appid:
imagebutton:
idle Transform('main_menu/patreon_button.png', zoom = 1.15)
hover Transform(im.MatrixColor('main_menu/patreon_button.png', im.matrix.brightness(.3)), zoom = 1.15)
action OpenURL('http://www.patreon.com/bearinthenight?utm_source=game&utm_medium=menu&utm_campaign=mainmenu')
imagebutton:
idle Transform('discord_button', zoom = 1.15)
hover Transform(im.MatrixColor('main_menu/discord_button.png', im.matrix.brightness(.3)), zoom = 1.15)
action OpenURL('https://discord.gg/FgFp9NeKsz')
imagebutton:
idle Transform('steam_button', zoom = 1.15)
hover Transform(im.MatrixColor('main_menu/steam_button.png', im.matrix.brightness(.3)), zoom = 1.15)
action Function(OpenUrlOverlay, url = 'https://store.steampowered.com/app/1846920/Lust_Academy__Season_1/')
style navigation_button is gui_button
style navigation_button_text is gui_button_text
screen discord_patron_screen:
hbox yalign .95 xalign 0.01:
spacing 10
imagebutton:
idle 'discord_idle'
hover 'discord_hover'
action OpenURL('https://discord.gg/FgFp9NeKsz')
if not config.steam_appid:
imagebutton:
idle 'patreon_idle'
hover 'patreon_hover'
action OpenURL('https://www.patreon.com/bearinthenight')
style navigation_button:
size_group "navigation"
properties gui.button_properties("navigation_button")
style navigation_button_text:
properties gui.button_text_properties("navigation_button")
image main_menu_bg_webm = Movie(play='images/main_menu/main_menu_bg.webm', loop = True)
screen main_menu():
tag menu
if not persistent.patch_notes and not isWeb:
timer 0.1 action Show('confirm',
message= "ver[config.version]\n\n{size=17}Hi there!{/size}\n{size=17} You've downloaded the latest version of Lust Academy! {/size}\n{size=17}If you want to find out what has changed,{/size}\n{size=17}click on the 'Details' button below.{/size}\n{size=15}You can always access patch notes later in the 'Credits' menu.{/size}\n",
yes_action = [SetField(persistent, 'patch_notes', True), Hide('confirm'), Show('about_2')], no_action = [SetField(persistent, 'patch_notes', True), Hide('confirm')], yes_text = _('Details'), no_text = _('Not now'),)
if isWeb:
add 'images/main_menu/main_menu_bg.png'
else:
add 'main_menu_bg_webm'
imagebutton:
focus_mask None
idle '#0000'
hover '#0000'
action SetScreenVariable('show_list_lang',False)
viewport:
xmaximum 620
ymaximum 1080
xpos 60
add '#0000'
add 'main_menu_line' xalign .5
use navigation
if config.steam_appid is None:
imagebutton:
xalign .98
yalign .98
idle Transform('main_menu/gamcore3.png', zoom = 0.6)
hover Transform(im.MatrixColor('main_menu/gamcore3.png', im.matrix.brightness(.3)), zoom = 0.6)
action OpenURL('https://gamcore.com/')
else:
imagebutton:
xalign .98
yalign .98
idle 'main_menu/season2.png'
hover im.MatrixColor('main_menu/season2.png', im.matrix.brightness(.3))
action Function(OpenUrlOverlay, url = 'https://store.steampowered.com/app/2126680/Lust_Academy__Season_2/')
imagebutton:
xalign .987
yalign .8
idle Transform('main_menu/wishlist_banner_le.png', zoom = .532)
hover Transform(im.MatrixColor('main_menu/wishlist_banner_le.png', im.matrix.brightness(.3)), zoom = .532)
action Function(OpenUrlOverlay, url = 'https://store.steampowered.com/app/2196490/Lust_Element__Season_1/')
default show_list_lang = False
default langs = {'None':'English','chinese':'中文','english':'English','russian':'Русский'}
viewport:
xpos 540
ypos 1053 - If(show_list_lang, true = (len(langs) - 1) * 53, false = 53)
ymaximum If(show_list_lang, true = (len(langs)-1) * 53, false = 53)
xmaximum 186
add '#0000'
viewport:
yalign 1.0
yoffset -53
add '#D6D7FF' alpha .7
vbox:
yalign 1.0
yoffset -4
xoffset 6
spacing 2
for key in ['None','english','chinese','russian']:
$ lng = langs[key]
if key != str(_preferences.language) and key != 'None':
viewport:
xsize 175
ysize 43
add '#0000'
hbox:
yalign .5
xalign 0
spacing 8
add Transform('images/main_interface/flags/'+ key + '.png', zoom = 1.2) yalign .5 xoffset 2
add Text(lng, color = '#33264F', size = 17, font = 'fonts/h_font.ttf') yalign .5
imagebutton:
xmaximum 186
idle '#0000'
hover '#0002'
action ToggleScreenVariable('show_list_lang',True,False), If(key == 'None', true = Language(None), false = Language(key))
viewport:
yalign 1.0
add Transform('main_interface/flags/' + If(show_list_lang, true = 'languages_up.png', false = 'languages_down.png'), zoom = 1.2) yalign 1.0
hbox:
yalign 1.0
yoffset -6
xoffset 8
spacing 8
add Transform('images/main_interface/flags/'+ str(If(_preferences.language is None, true = 'english', false = _preferences.language)).title() + '.png', zoom = 1.2) yalign .5
add Text(langs[str(_preferences.language)], color = '#33264F', size = 17, font = 'fonts/h_font.ttf') yalign .5
imagebutton:
xsize 186
ysize 46
yalign 1.0
idle '#0000'
hover '#0002'
action ToggleScreenVariable('show_list_lang',True,False)
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 420
yfill True
background "gui/overlay/main_menu.png"
style main_menu_vbox:
xalign 1.0
xoffset -30
xmaximum 1200
yalign 1.0
yoffset -30
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"
add 'd_menu_bg'
add 'game_menu_down' yalign 1.0
if str(title).upper() != "CREDITS":
text str(__(title)).upper() size 36 color '#FFEEDE' xalign .5 yalign .1 font 'fonts/h_font.ttf'
hbox:
style_prefix "mm_menu"
xalign .5
yalign .98
spacing -30
if main_menu:
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action Show('scblocker', transition = Dissolve(.5)),Show('new_game', transition = Dissolve(.5))
text _("New game"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'start':
color '#FFEEDE'
else:
color '#C0B9DB'
else:
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'history'), ShowMenu("history")
text _("History"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'history':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'save'), ShowMenu("save")
text _("Save"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'save':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'settings'), ShowMenu("preferences")
text _("Settings"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'settings':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'load'), ShowMenu("load")
text _("Load"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'load':
color '#FFEEDE'
else:
color '#C0B9DB'
if not main_menu:
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'mmenu'), MainMenu()
text _("Main Menu"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'mmenu':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
if renpy.get_screen('about_2'):
action SetVariable('mm_button_y', 'about'), Hide('about_2'), ShowMenu("about")
else:
action SetVariable('mm_button_y', 'about'), ShowMenu("about")
text _("Credits"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'about':
color '#FFEEDE'
else:
color '#C0B9DB'
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'gallery'), ShowMenu("gallery")
text _("Gallery"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'gallery':
color '#FFEEDE'
else:
color '#C0B9DB'
if renpy.variant("pc") or (renpy.variant("web") and not renpy.variant("mobile")):
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'help'), ShowMenu("help")
text _("Help"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'help':
color '#FFEEDE'
else:
color '#C0B9DB'
if renpy.variant("pc"):
viewport:
xsize 180
xmaximum 180
ymaximum 50
imagebutton:
idle '#0000'
focus_mask None
hover Transform('d_menu_button', zoom = .7) xalign .5 yalign .5
action SetVariable('mm_button_y', 'quit'), Quit(confirm=not main_menu)
text _("Quit"):
xalign .5 yalign .5
size 24 font 'fonts/h_font.ttf'
if mm_button_y == 'quit':
color '#FFEEDE'
else:
color '#C0B9DB'
hbox:
xpos 20
yalign .98
spacing 8
if not config.steam_appid:
imagebutton:
idle Transform('main_menu/patreon_button.png', zoom = 1.15)
hover Transform(im.MatrixColor('main_menu/patreon_button.png', im.matrix.brightness(.3)), zoom = 1.15)
action OpenURL('https://www.patreon.com/bearinthenight')
imagebutton:
idle Transform('discord_button', zoom = 1.15)
hover Transform(im.MatrixColor('main_menu/discord_button.png', im.matrix.brightness(.3)), zoom = 1.15)
action OpenURL('https://discord.gg/FgFp9NeKsz')
imagebutton:
idle Transform('steam_button', zoom = 1.15)
hover Transform(im.MatrixColor('main_menu/steam_button.png', im.matrix.brightness(.3)), zoom = 1.15)
action Function(OpenUrlOverlay, url = 'https://store.steampowered.com/app/1846920/Lust_Academy__Season_1/')
if main_menu:
key "game_menu" action ShowMenu("main_menu")
imagebutton:
idle Transform('menu_return_button.png', alpha = .69)
hover 'menu_return_button.png'
if renpy.get_screen('about_2'):
action Hide('about_2', transition = Dissolve(.5)), Show('about', transition = Dissolve(.5))
elif main_menu:
action ShowMenu("main_menu")
else:
action Return()
xalign .99
yalign .99
style game_menu_outer_frame 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:
bottom_padding 145
top_padding 180
background "gui/overlay/game_menu.png"
style game_menu_navigation_frame:
xsize 420
yfill True
style game_menu_content_frame:
left_margin 60
right_margin 30
top_margin 15
style game_menu_viewport:
xsize 1380
style game_menu_vscrollbar:
unscrollable gui.unscrollable
style game_menu_side:
spacing 15
style game_menu_label:
xpos 75
ysize 180
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 -45
define -1 gui.about = '''
Sam Torres - CEO
Jose Cuervo - Game Designer
Gordon "Mr. G" Goodman - 3D design
Vonner Rom - Programmer
Maria Triangle - 2D design
Lilu Dallas - 2D design
Pablo Alexander - Plot
'''
transform about_transform:
on start:
xalign .5 ypos 0
on show:
xalign .5 ypos -1080
linear 1 ypos 0 xalign .5
on hide:
xalign .5 ypos 0
linear 1 ypos -1080 xalign .5
transform about_2_transform:
on show:
xalign .5 ypos 1080
linear 1 ypos 0 xalign .5
on hide:
xalign .5 ypos 0
linear 1 ypos 1080 xalign .5
screen about():
tag menu
use game_menu(_("Credits"), scroll="viewport")
add 'credits_0' xalign .5 yalign .5
viewport:
at about_transform
xmaximum 1920
ymaximum 1080
add '#0000'
text str(__("Credits")).upper() size 36 color '#FFEEDE' xalign .5 yalign .1 font 'fonts/h_font.ttf'
viewport:
xalign .5 yalign .6
xmaximum 1630
ymaximum 800
scrollbars "vertical"
mousewheel True
draggable True
pagekeys True
add '#0000'
add 'credits_logo' xalign .51 ypos 1
hbox:
xpos 260
ypos 280
spacing 4
viewport:
xmaximum 384
add '#0000'
vbox:
spacing 4
add Text('Lust Academy', font= 'fonts/h_font.ttf', color="#FFFFFF", size = 28)
hbox:
spacing 4
add Text('Version {color=#FFE2B6}[config.version]{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
textbutton "(view details)" text_size 18 yoffset -8 action Hide('about', transition = Dissolve(.5)), Show("about_2", transition = Dissolve(.5))
add Null(30, 30)
add Text('Bear in the Night Team:', font= 'fonts/h_font.ttf', color="#FFFFFF", size = 28)
add Null(20, 20)
add Text('Sam Torres{color=#FFE2B6} - CEO{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Jose Cuervo{color=#FFE2B6} - Game Designer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Gordon “Mr. G” Goodman{color=#FFE2B6} - 3D Designer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Skida Des{color=#FFE2B6} - 3D Designer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Max Green{color=#FFE2B6} - Programmer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Paul Meskado{color=#FFE2B6} - 2D Designer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Marie G.{color=#FFE2B6} - 2D/3D Designer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Pablo Alexander{color=#FFE2B6} - Writer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Iris Oswald{color=#FFE2B6} - Writer{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Antony Boleyn{color=#FFE2B6} - QA Tester{/color}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Lilu Dallas{color=#FFE2B688} - 2D/3D Designer{/color} {rt}{size=12}{color=#FF785A}LEFT{/color}{/size}{/rt}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Maria Triangle{color=#FFE2B688} - 2D Designer{/color} {rt}{size=12}{color=#FF785A}LEFT{/color}{/size}{/rt}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
add Text('Vonner Rom{color=#FFE2B688} - Programmer{/color} {rt}{size=12}{color=#FF785A}LEFT{/color}{/size}{/rt}', font= 'fonts/h_font.ttf', color="#FFC289", size = 18)
viewport:
xmaximum 46
xpos 12
yalign 0
add '#0000'
add 'credits_line' xsize 2
viewport:
xmaximum 280
add '#0000'
vbox:
spacing 4
add Text('Ministry of Magic', font= 'fonts/h_font.ttf', color="#FFFFFF", size = 28)
add Text('Icy Bacon', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('VNwhiteknight', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Jaewon', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('GRP-Studio', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Paul Anderson', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Kytronix', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Kent', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
viewport:
xmaximum 132
xpos 12
yalign 0
add '#0000'
add 'credits_line' xsize 2
viewport:
xmaximum 390
add '#0000'
vbox:
spacing 4
add Text('Wizard Union', font= 'fonts/h_font.ttf', color="#FFFFFF", size = 28)
add Text('Brandon Shanon', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('1Yares1', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Karl Wild', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('kb_schro', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Ricardo Earthdragon', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('DaveyD', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Cyrus James', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Nax', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('TideLicious', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Sintei', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Jacktheripper', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('ImmortalPickle78', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Ultrary', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('mclauzell', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Brandon Black', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Seiryu', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Helvetesfyr', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
add Text('Black58a', font= 'fonts/h_font.ttf', color="#FFC289", size = 18) xpos 30
screen about_2():
use game_menu(_("Credits"), scroll="viewport")
add 'credits_0' xalign .5 yalign .5
viewport:
at about_2_transform
xmaximum 1920
ymaximum 1080
add '#0000'
text str("Patch Notes").upper() size 36 color '#FFEEDE' xalign .5 yalign .1 font 'fonts/h_font.ttf'
viewport:
xalign .5 yalign .6
xmaximum 1630
ymaximum 800
scrollbars "vertical"
mousewheel True
draggable True
pagekeys True
add '#0000'
vbox:
xalign .5
for i in [
'v0.7.1f',
"Added an option to {font=fonts/roboto_medium.ttf}{color=#ffe2b6}transfer{/color}{/font} your {font=fonts/roboto_medium.ttf}{color=#ffe2b6}progress{/color}{/font} to the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}next season{/color}{/font} build.",
"Rewritten and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}improved{/color}{/font} pieces of {font=fonts/roboto_medium.ttf}{color=#ffe2b6}dialogue{/color}{/font} all across the game.",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}Fixed{/color}{/font} a lot of bugs and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}typos{/color}{/font}.",
'v0.7.1d',
"Now you can rewatch all animations at the end of the scene.",
"Added sound design for X-scenes, including female moans.",
"Added final infographics of the main characters to the endgame screen.",
"Improved some old dialogues.",
"Fixed several bugs.",
'v0.7.1b',
"Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Visual Novel{/color}{/font} version for {font=fonts/roboto_medium.ttf}{color=#ffe2b6}0.7.1{/color}{/font}.",
"Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}105{/color}{/font} new beautiful {font=fonts/roboto_medium.ttf}{color=#ffe2b6}renders{/color}{/font} for Visual Novel and active objects.",
"Added a new lesson in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Victoria{/color}{/font}'s class available in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Sandbox{/color}{/font} only.",
"Added eastern eggs in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Sandbox{/color}{/font} only, including a scene with {font=fonts/roboto_medium.ttf}{color=#ffe2b6}new girl{/color}{/font}.",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}Added{/color}{/font} several decorative & active {font=fonts/roboto_medium.ttf}{color=#ffe2b6}objects{/color}{/font} across the Cordale.",
"Updated {font=fonts/roboto_medium.ttf}{color=#ffe2b6}BIO{/color}{/font} in Character Info.",
"Fixed several bugs.",
'v0.7.1a',
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}15{/color}{/font} new thrilling, action-packed {font=fonts/roboto_medium.ttf}{color=#ffe2b6}scenes{/color}{/font}.",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}625{/color}{/font} new top-notch {font=fonts/roboto_medium.ttf}{color=#ffe2b6}renders{/color}{/font}.",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}35{/color}{/font} new scorching hot {font=fonts/roboto_medium.ttf}{color=#ffe2b6}60{/color}{/font}fps HD animations.",
"Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}3{/color}{/font} new episodes to the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Gallery{/color}{/font}.",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}20{/color}{/font} new {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Lustagram{/color}{/font} photos.",
"Season 1 {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Outro{/color}{/font} scene.",
"Fixed a few bugs.",
'v0.6.1f',
"Improved the quality of some {font=fonts/roboto_medium.ttf}{color=#ffe2b6}dialogues{/color}{/font} in old scenes.",
"Improved the quality of some animations.",
"Added new {font=fonts/roboto_medium.ttf}{color=#ffe2b6}sounds{/color}{/font} and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}music{/color}{/font}.",
"Fixed several game logic errors.",
'v0.6.1d',
"Added new animated objects.",
"Added the possibility to go to the Bathroom to take a {font=fonts/roboto_medium.ttf}{color=#ffe2b6}shower{/color}{/font}.",
"Improved hints on some routes in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Character Info{/color}{/font}.",
"Fixed bugs in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Audrey{/color}{/font}'s route logic.",
"Fixed some character sprites in the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Living Room{/color}{/font}.",
"Increased the number of house points you get passively.",
"Returning {font=fonts/roboto_medium.ttf}{color=#ffe2b6}books{/color}{/font} is now rewarded with {font=fonts/roboto_medium.ttf}{color=#ffe2b6}2{/color}{/font} house points.",
"Minor interface improvements.",
'v0.6.1b',
"Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Visual Novel{/color}{/font} version for {font=fonts/roboto_medium.ttf}{color=#ffe2b6}0.6.1{/color}{/font}.",
"Now you change {font=fonts/roboto_medium.ttf}{color=#ffe2b6}camera{/color}{/font} angles in sex animations.",
"Added useful {font=fonts/roboto_medium.ttf}{color=#ffe2b6}tips{/color}{/font} for the new day preloaders.",
"You can now brew potions by clicking on the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Cauldron{/color}{/font}.",
"Added animated {font=fonts/roboto_medium.ttf}{color=#ffe2b6}objects{/color}{/font} on the map.",
"Fixed a problem when you couldn't refuse sex in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Naomi{/color}{/font}'s route.",
"Fixed several bugs.",
'v0.6.1a',
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}13{/color}{/font} new exciting, action-packed {font=fonts/roboto_medium.ttf}{color=#ffe2b6}scenes{/color}{/font}.",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}480{/color}{/font} new stunningly beautiful {font=fonts/roboto_medium.ttf}{color=#ffe2b6}renders{/color}{/font}.",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}30{/color}{/font} new hot 60fps {font=fonts/roboto_medium.ttf}{color=#ffe2b6}HD animations{/color}{/font}.",
"Added 3 new episodes to the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Gallery{/color}{/font}.",
"New girl - Samantha's rival and Adderin's uprising star {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Dakota{/color}{/font}.",
"Moved {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Xmas{/color}{/font} story from the main menu.",
"Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Xmas{/color}{/font} story activation to MC's room photo wall.",
"Added a {font=fonts/roboto_medium.ttf}{color=#ffe2b6}new recipe{/color}{/font} to Potions.",
"Fixed a few bugs.",
'v0.5.1f',
"Added notifications at the beginning of a {font=fonts/roboto_medium.ttf}{color=#ffe2b6}new game day{/color}{/font}.",
"Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}camera{/color}{/font} angle change (only in one scene with {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Naomi{/color}{/font} so far).",
"Adapted code to allow {font=fonts/roboto_medium.ttf}{color=#ffe2b6}translations{/color}{/font} into other languages.",
"Fixed several structural errors.",
'v0.5.1d',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}5{/color}{/font} new mini-scenes tutorials on how to move around the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Academy{/color}{/font}.',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Guide{/color}{/font} to help the player navigate through the main story.',
'Fixed some character sprites in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Dale{/color}{/font}.',
'Dozens of small bugfixes.',
'v0.5.1b',
"Scenes from the last release have been added to the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}VN{/color}{/font} version.",
"Fixed {font=fonts/roboto_medium.ttf}{color=#ffe2b6}10{/color}{/font} unfortunate animations.",
"Removed the limit of 5 slots in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Character Info{/color}{/font} favorites.",
"Improved {font=fonts/roboto_medium.ttf}{color=#ffe2b6}MC name{/color}{/font} detection when viewing the Gallery.",
"Fixed errors in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Amelie{/color}{/font} and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Audrey{/color}{/font} route logic.",
"Increased the size of the scroll slider in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Lustagram{/color}{/font}.",
"Optimized function to calculate results when drawing glyphs.",
"Added a Background transparency setting for {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Android{/color}{/font}.",
"Fixed typos in old scenes.",
"Other bugfixes.",
'v0.5.1a',
"More than {font=fonts/roboto_medium.ttf}{color=#ffe2b6}500{/color}{/font} new top-quality renders!",
"New dynamic and intriguing scenes!",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}19{/color}{/font} new custom-made {font=fonts/roboto_medium.ttf}{color=#ffe2b6}60-fps{/color}{/font} animations! ",
"{font=fonts/roboto_medium.ttf}{color=#ffe2b6}Three{/color}{/font} new beautiful locations in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Dale{/color}{/font}.",
"New scenes in Dale with {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Haley{/color}{/font}, {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Lily{/color}{/font}, {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Samantha{/color}{/font} and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Audrey{/color}{/font}.",
"New character in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Dale{/color}{/font}.",
"New awesome {font=fonts/roboto_medium.ttf}{color=#ffe2b6}map{/color}{/font}!",
"New {font=fonts/roboto_medium.ttf}{color=#ffe2b6}18+{/color}{/font} scenes added to {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Gallery{/color}{/font}.",
"Improved {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Calendar{/color}{/font} system.",
"Improved some old dialogues.",
"Fixed minor bugs all across the game.",
'v0.4.2',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}Xmas special.{/color}{/font}',
'v0.4.1f',
'Bugfixes.',
'v0.4.1d',
'Added visual hints in the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Calendar{/color}{/font}.',
'Improved the interface of {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Alchemy{/color}{/font}.',
'Added night visits and Lustagram in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Novel{/color}{/font} version.',
'Several improvements to the interface.',
'Optimized rollback feature.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}Bugfixes{/color}{/font}.',
'v0.4.1b',
'Added an alternate {font=fonts/roboto_medium.ttf}{color=#ffe2b6}visual novel{/color}{/font} style version.',
'Fixed the speed of magic glyphs being painted over.',
'Improved the quality of more than {font=fonts/roboto_medium.ttf}{color=#ffe2b6}20{/color}{/font} renders.',
'Fixed dozens of grammatical errors.',
'Now you can {font=fonts/roboto_medium.ttf}{color=#ffe2b6}delete{/color}{/font} unwanted saves.',
'All saves are now marked with stickers for {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Novel{/color}{/font} or {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Sandbox{/color}{/font}.',
'Improved Auto-forward time function.',
'Improved {font=fonts/roboto_medium.ttf}{color=#ffe2b6}History{/color}{/font} tab functionality.',
'Optimized code for Sound Design.',
'Changed color for character names to softer ones.',
'The number of books that can be found in one day increased to 4.',
'Improved scene structure in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Dale{/color}{/font}\'s nightclub.',
'v0.4.1a',
'New scenes for {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Leona{/color}{/font}, {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Haley{/color}{/font}, {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Samantha{/color}{/font}, {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Naomi{/color}{/font}, {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Victoria{/color}{/font}, {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Sabrina{/color}{/font} and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Audrey{/color}{/font}.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}520{/color}{/font} new beautiful renders.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}13{/color}{/font} new 60fps HD animations.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}15{/color}{/font} new {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Lustagram{/color}{/font} posts.',
'v0.3.1d',
'Bugfixes.',
'v0.3.1c',
'Reworked and improved {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Lustagram{/color}{/font} mechanics.',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}31 new{/color}{/font} photos for Lustagram!',
'Improved Character Info sorting logic.',
'Added an option to {font=fonts/roboto_medium.ttf}{color=#ffe2b6}change your Name{/color}{/font} during the game.',
'Fixed graphic issues during prologue exams.',
'Fixed minor bugs all across the game.',
'v0.3.1b',
'Combined inventory and profile.',
'Reworked notifications.',
'Improved the tutorial.',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}$50{/color}{/font} allowance bonus for the house that wins the weekly competition.',
'Repaired menu and interface bugs.',
'Fixed bugs in the {font=fonts/roboto_medium.ttf}{color=#ffe2b6}calendar{/color}{/font}.',
'Fixed minor bugs all across the game.',
'Improved some old dialogues.',
'v0.3.1a',
'More than {font=fonts/roboto_medium.ttf}{color=#ffe2b6}550{/color}{/font} new to-quality renders!',
'Over {font=fonts/roboto_medium.ttf}{color=#ffe2b6}27{/color}{/font} new 60-fps animations!',
'Reworked avatars for Character Info and Calendar.',
'New potion crafting system.',
'House points distribution system reworked.',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}LGBTQ+{/color}{/font} switch to Settings (can be enabled/disabled) at any point.',
'Added an option to choose {font=fonts/roboto_medium.ttf}{color=#ffe2b6}LGBTQ+{/color}{/font} settings individually for characters.',
'Fixed a few dozen minor bugs.',
'v0.2.2',
'Fourth release! Time to get to know the world better!',
'Introduced weekend activities in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Dale{/color}{/font}. Win a weekly house competition to get there!',
'Over {font=fonts/roboto_medium.ttf}{color=#ffe2b6}1000{/color}{/font} renders.',
'More than {font=fonts/roboto_medium.ttf}{color=#ffe2b6}55{/color}{/font} animations in 60fps.',
'New in-game locations: {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Dale main street, Shop, Spa, Hotel, Night club.{/color}{/font}.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}12{/color}{/font} new characters.',
'Improved {font=fonts/roboto_medium.ttf}{color=#ffe2b6}UI\\UX.{/color}{/font}.',
'Improved {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Navigation{/color}{/font} and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Quest Log.{/color}{/font}.',
'Reworked all mini-games.',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}1{/color}{/font} new mini-game.',
'v0.2.1f',
'Minor patch with a bunch of fixes and improvements to the game.',
'Fixed bugs in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Lily{/color}{/font}s route.',
'Fixed bugs in {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Naomi{/color}{/font}s route.',
'Fixed bug with quest log.',
'Fixed some problems with duels.',
'Fixed other small errors and bugs.',
'v0.2.1g',
'Minor update with a bunch of fixes and improvements to the game.',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Android{/color}{/font} version.',
'Fixed prologue mini game crashes.',
"Fixed problem with {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Samantha{/color}{/font}'s room in the prologue.",
'Fixed "Memory run" problem.',
'Fixed some typos and logic problems.',
'Fixed other small errors and bugs.',
'v0.2.1',
'Third release! Welcome to the Academy. Yay!',
'This release features the beginning of the main game.',
'Introduced open world (sandox mechanics).',
'Over {font=fonts/roboto_medium.ttf}{color=#ffe2b6}800{/color}{/font} renders.',
'More than {font=fonts/roboto_medium.ttf}{color=#ffe2b6}30{/color}{/font} animations in 60fps.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}5{/color}{/font} new characters.',
'Sandbox mechanic.',
'Added Interface with Quest log and Fast-travel system.',
'Added Sound design for 0.2.1 + some minor fixes for 0.1.2.',
'Added 4 new mini-games.',
'New in-game locations: {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Library, Victorias class, Sabrinas class, Cafe.{/color}{/font}',
'v0.1.2 Hot-fix',
'Minor update with a bunch of fixes and improvements to the game.',
'Added {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Gallery{/color}{/font} (now you can replay all erotic scenes).',
'Added a few renders and text, to make some scenes more logical.',
'Fixed some bugs with sounds.',
'Fixed bugs with minigame crashes.',
'Fixed grammar errors.',
'Fixed bug with "Return" button in the main menu.',
"Fixed android version text space. Now it's smaller.",
'v0.1.2E',
'Minor patch needed to fix one critical bug that caused game crashes.',
'Fixed a critical bug in a mini-game.',
'v0.1.2d',
'Minor patch with a bunch of fixes and improvements to the game.',
'Fixed critical bug that caused game crashes.',
'Fixed small bugs and typos.',
'Fixed menu glitch.',
'Retouched additional renders.',
'v0.1.2',
'Second Release. The prologue is complete! Yay!',
'This release includes the second half of the prologue and features:',
'Over {font=fonts/roboto_medium.ttf}{color=#ffe2b6}200{/color}{/font} renders.',
'More than {font=fonts/roboto_medium.ttf}{color=#ffe2b6}25{/color}{/font} 60 fps animations.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}6{/color}{/font} new characters: {font=fonts/roboto_medium.ttf}{color=#ffe2b6}3{/color}{/font} New girls + {font=fonts/roboto_medium.ttf}{color=#ffe2b6}3{/color}{/font} side characters.',
'Updated interface.',
'New Sound-Design for {font=fonts/roboto_medium.ttf}{color=#ffe2b6}0.1.1{/color}{/font} and {font=fonts/roboto_medium.ttf}{color=#ffe2b6}0.1.2{/color}{/font}.',
'New in-game locations: {font=fonts/roboto_medium.ttf}{color=#ffe2b6}Main Hall, Entrance Hall, Inner Garden, Campus, Mystic Forest{/color}{/font}.',
'v0.1.1f ',
'Minor update with a bunch of fixes and improvements to the game.',
'Fixed bugs and typos.',
'Added the “Skip” option to the game.',
'Added emojis and expanded photos to Lustagram.',
'Added default name for MC.',
'v0.1.1',
'First Release. Our history starts here! Yay!',
'This release included the first half of the prologue and features:',
'Over {font=fonts/roboto_medium.ttf}{color=#ffe2b6}140{/color}{/font} renders.',
'{font=fonts/roboto_medium.ttf}{color=#ffe2b6}10{/color}{/font} 60 fps animations.',
'7 characters.'
]:
if 'v0.' in i:
text i size 24 font 'fonts/h_font_2.ttf' xalign .5
else:
text i size 20 font 'fonts/roboto_regular.ttf' color '#C19273' xalign 0
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
timer 0.1 action SetVariable('button_menu_now_2', 'Save')
use file_slots(_("Save"))
screen load():
tag menu
use file_slots(_("Load"))
screen gallery():
tag menu
use file_slots(_("Gallery"))
screen transfer():
tag menu
use file_slots(_("Transfer"))
init -100 python:
gallery_picks = [
'images/ero/x0.png',
'images/ero/x1.png',
'images/ero/1.png',
'images/ero/2.png',
'images/ero/3.png',
'images/ero/4.png',
'images/ero/5.png',
'images/ero/6.png',
'images/ero/7.png',
'images/ero/8.png',
'images/ero/9.png',
'images/ero/10.png',
'images/ero/11.png',
'images/ero/12.png',
'images/ero/13.png',
'images/ero/14.png',
'images/ero/15.png',
'images/ero/16.png',
'images/ero/17.png',
'images/ero/18.png',
'images/ero/19a.png',
'images/ero/20.png',
'images/ero/21.png',
'images/ero/22.png',
'images/ero/23.png',
'images/ero/24.png',
'images/ero/25.png',
'images/ero/26.png',
'images/ero/27.png',
'images/ero/28.png',
'images/ero/29.png',
'images/ero/19.png',
]
gallery_data = {
'images/ero/x0.png' : {'name':'Audrey','label':"Xmas_4_label.L_56","q_access":""},
'images/ero/x1.png' : {'name':'Selene','label':"Xmas_6_label","q_access":""},
'images/ero/1.png' : {'name':'Ashley','label':"ashlie_room_label_2","q_access":"Q_Arthur > 0"},
'images/ero/2.png' : {'name':'Olivia & Don','label':"i_1_051_test.from_gallery","q_access":"Q_Arthur > 0"},
'images/ero/3.png' : {'name':'Haley','label':"train_menu_after_drunk_girls.from_gallery","q_access":"Q_Arthur > 0"},
'images/ero/4.png' : {'name':'Leona & Katrina','label':"sheet_28.from_gallery","q_access":"Q_Arthur > 0"},
'images/ero/5.png' : {'name':'Leona','label':"Leona_1_label","q_access":"Q_Leona > 0"},
'images/ero/6.png' : {'name':'Lily','label':"lily_events_4_label.from_gallery","q_access":"Q_Lily > 4"},
'images/ero/7.png' : {'name':'Lily','label':"Lily_6_label.from_gallery","q_access":"Q_Lily > 5"},
'images/ero/8.png' : {'name':'Naomi','label':"Naomi_8_label","q_access":"Q_Naomi > 7"},
'images/ero/9.png' : {'name':'Faith','label':"Jill_2_label_8","q_access":"Q_Jill > 1"},
'images/ero/10.png' : {'name':'Adele','label':"romul_2_label","q_access":"Q_Romul > 1"},
'images/ero/11.png' : {'name':'Lucy','label':"vip_lucy_1_label_1","q_access":""},
'images/ero/12.png' : {'name':'Sadira','label':"vip_sadira_1_label_1","q_access":""},
'images/ero/13.png' : {'name':'Samantha','label':"Samantha_8_label","q_access":"Q_Samantha > 7"},
'images/ero/14.png' : {'name':'Audrey','label':"Audrey_7_label","q_access":"Q_Audrey > 6"},
'images/ero/15.png' : {'name':'Audrey','label':"Audrey_7_label.from_gallery","q_access":"Q_Audrey > 6"},
'images/ero/16.png' : {'name':'Samantha','label':"Samantha_10_label.from_gallery","q_access":"Q_Samantha >= 10"},
'images/ero/17.png' : {'name':'Haley','label':"Haley_15_label.from_gallery","q_access":"Q_Haley >= 15"},
'images/ero/18.png' : {'name':'Naomi','label':"Naomi_10_label.from_gallery","q_access":"Q_Naomi >= 10"},
'images/ero/19a.png' : {'name':'Naomi','label':"Leona_5_label.from_gallery","q_access":""},
'images/ero/20.png' : {'name':'Lily','label':"Lily_8_label.L_122","q_access":""},
'images/ero/21.png' : {'name':'Jill','label':"Jill_4_label.from_gallery","q_access":""},
'images/ero/22.png' : {'name':'Lucy','label':"vip_lucy_1_label_2","q_access":""},
'images/ero/23.png' : {'name':'Sadira','label':"vip_sadira_1_label_2","q_access":""},
'images/ero/24.png' : {'name':'Adele','label':"Adele_5_label.from_gallery","q_access":"Q_Adele >= 5"},
'images/ero/25.png' : {'name':'Haley','label':"Haley_19_label.from_gallery","q_access":"Q_Haley >= 19"},
'images/ero/26.png' : {'name':'Audrey','label':"Audrey_12_label.from_gallery","q_access":"Q_Audrey >= 12"},
'images/ero/27.png' : {'name':'Haley','label':"Haley_20_label.from_gallery","q_access":"Q_Haley >= 22"},
'images/ero/28.png' : {'name':'Adele','label':"Adele_6_label.from_gallery","q_access":"Q_Adele >= 6"},
'images/ero/29.png' : {'name':'Samantha','label':"Outro_2_label.L_431","q_access":""},
'images/ero/19.png' : {'name':'Victoria','label':"","q_access":""},
}
page_gallery = 1
def ShowReplay(label):
rName = getDataFromLastSave('Name')
rLGBTQ = getDataFromLastSave('LGBTQ')
Replay( label, scope = {"Name" : rName, "LGBTQ" : rLGBTQ}, locked = False )()
screen file_slots(title):
default page_name_value = FilePageNameInputValue(pattern=_("Page {}"), auto=_("Automatic saves"), quick=_("Quick saves"))
use game_menu(title)
add 'file_slots_bg' xalign .5 yalign .5
fixed:
order_reverse True
if title == "Transfer":
text _("Choose a save file with progress that you want to transfer to the next season") style "page_label_text" color '#FFEEDE' size 24 font 'fonts/h_font.ttf' xalign .5 yalign .16
button:
style "page_label"
key_events True
xalign 0.5
yalign .24
action page_name_value.Toggle()
input:
style "page_label_text"
color '#FFEEDE'
size 30
font 'fonts/h_font.ttf'
value page_name_value
grid 5 3:
style_prefix "slot"
xalign 0.5
yalign 0.5
spacing 15
for i in range(5 * 3):
$ slot = i + 1
$ ttt = FileTime(slot, format=_("{#file_time}%A, %B %d %Y, %H:%M"), empty=_("empty slot"))
$ _data = FileJson(slot)
if _data is not None and _data.get('_game') is not None and not _data['_game']:
$ _lsave = "save_nv"
$ selecting = 'Visual novel'
else:
$ _lsave = "save_sb"
$ selecting = 'Sandbox'
$ confirm_text = "Congratulations!\nYou have chosen to transfer the progress from save file: {0}\nUse it in the next season when selecting \"{1}\"".format(persistent._file_page + "-" + str(slot) + ".save ("+ttt+")", selecting)
viewport:
xmaximum 220
ymaximum 146
imagebutton:
idle 'main_menu/slot_idle_background.png'
hover 'main_menu/slot_idle_background.png'
action NullAction()
viewport:
add Frame(FileScreenshot(slot))
ymaximum 124
if ttt != "empty slot":
imagebutton:
idle '#0f00'
hover '#0f02'
action Show('confirm', message= confirm_text, yes_action = [Function(TransferDataToNewS, name_slot = persistent._file_page + "-" + str(slot), name_save = _lsave, time = FileTime(slot, format=_("%m/%d/%Y %H:%M"))),Hide('confirm'),ShowMenu("load")], no_action = [Hide('confirm')], yes_text = _('Agree'), no_text = _('Cancel'))
add 'load_save_icon' yalign 1.0
add Text(ttt, color = '#160F32', size = 10, font = 'fonts/h_font.ttf') alpha .7 xalign .5 yalign .97
viewport:
xpos 6
ypos 0
xmaximum 40
ymaximum 125
add _lsave
viewport:
xalign .99
yalign .82
xsize 50
ysize 20
add '#000a'
add Text(_data['_version'], color = '#FFF', size = 10, font = 'fonts/h_font.ttf') xalign .5 yalign .5
hbox:
style_prefix "page"
xalign 0.5
yalign .76
spacing gui.page_spacing
imagebutton:
idle Transform('main_menu/arrow_left_right.png')
hover Transform(im.MatrixColor('main_menu/arrow_left_right.png', im.matrix.brightness(.3)))
action FilePagePrevious()
ypos 15
if config.has_autosave:
textbutton _("{#auto_page}A") action FilePage("auto") text_idle_color '#D6B49D' text_hover_color '#FFEEDE' text_selected_color '#FFEEDE' ypos 12
if config.has_quicksave:
textbutton _("{#quick_page}Q") action FilePage("quick") text_idle_color '#D6B49D' text_hover_color '#FFEEDE' text_selected_color '#FFEEDE' ypos 12
for page in range(1, 10):
textbutton "[page]" action FilePage(page) text_idle_color '#D6B49D' text_hover_color '#FFEEDE' text_selected_color '#FFEEDE' ypos 12
imagebutton:
idle Transform('main_menu/arrow_left_right.png', xzoom = -1)
hover Transform(im.MatrixColor('main_menu/arrow_left_right.png', im.matrix.brightness(.3)), xzoom = -1)
action FilePageNext()
ypos 15
elif title == "Gallery":
$ max_page_gallery = 1 + (len(gallery_data) // 15)
$ all_picks = []
for d in gallery_picks:
if d in mp.gallery:
$ all_picks.append({"img":d,"show":False})
elif d not in ['images/ero/x0.png','images/ero/x1.png','images/ero/12.png','images/ero/13.png','images/ero/22.png','images/ero/23.png']:
$ all_picks.append({"img":d,"show":True})
text 'Page ' + str(page_gallery) style "page_label_text" color '#FFEEDE' size 30 font 'fonts/h_font.ttf' xalign 0.5 yalign .24
grid 5 3:
style_prefix "slot"
xalign 0.5
yalign 0.5
spacing 15
for i in range(15 * (page_gallery - 1), 15 * page_gallery):
viewport:
xmaximum 225
ymaximum 146
imagebutton:
idle 'main_menu/slot_idle_background_gallery.png'
hover im.MatrixColor('main_menu/slot_idle_background_gallery.png', im.matrix.brightness(.3))
action NullAction()
viewport:
ymaximum 146
xmaximum 225
add '#0000'
if i < len(all_picks):
if all_picks[i]['img'] in mp.gallery:
imagebutton:
idle Transform(im.MatrixColor(all_picks[i]['img'], im.matrix.desaturate()), xsize=225, ysize=146)
hover Transform(all_picks[i]['img'], xsize=225, ysize=146)
if gallery_data[all_picks[i]['img']]['label']:
action Function(ShowReplay, label = gallery_data[all_picks[i]['img']]['label'])
else:
action NullAction()
else:
add Transform(im.Blur(im.MatrixColor(im.MatrixColor(all_picks[i]['img'], im.matrix.desaturate()), im.matrix.brightness(-.1)),2.5), xsize=225, ysize=146)
if '/x' in all_picks[i]['img']:
add Transform('xmas_special', zoom = .5) xalign .99 yalign .99
hbox:
style_prefix "page"
xalign 0.5
yalign .76
spacing (gui.page_spacing * 10) // max_page_gallery
imagebutton:
idle Transform('main_menu/arrow_left_right.png')
hover Transform(im.MatrixColor('main_menu/arrow_left_right.png', im.matrix.brightness(.3)))
action If(page_gallery > 1, true = SetVariable('page_gallery',page_gallery-1))
ypos 15
for page_g in range(1, max_page_gallery + 1):
textbutton "[page_g]" action SetVariable('page_gallery',page_g) text_idle_color '#D6B49D' text_hover_color '#FFEEDE' text_selected_color '#FFEEDE' ypos 12
imagebutton:
idle Transform('main_menu/arrow_left_right.png', xzoom = -1)
hover Transform(im.MatrixColor('main_menu/arrow_left_right.png', im.matrix.brightness(.3)), xzoom = -1)
action If(page_gallery < max_page_gallery, true = SetVariable('page_gallery',page_gallery+1))
ypos 15
else:
if renpy.current_screen().screen_name[0] == "load" and len(renpy.list_slots()) > 0:
imagebutton:
yalign .1
xalign .786
idle 'main_interface/transfer_banner.png'
hover Transform(im.MatrixColor('main_interface/transfer_banner.png', im.matrix.brightness(.2)))
action ShowMenu("transfer")
button:
style "page_label"
key_events True
xalign 0.5
yalign .24
action page_name_value.Toggle()
input:
style "page_label_text"
color '#FFEEDE'
size 30
font 'fonts/h_font.ttf'
value page_name_value
grid 5 3:
style_prefix "slot"
xalign 0.5
yalign 0.5
spacing 15
for i in range(5 * 3):
$ slot = i + 1
$ ttt = FileTime(slot, format=_("{#file_time}%A, %B %d %Y, %H:%M"), empty=_("empty slot"))
$ err_save = False
$ err_text = "Unfortunately, this file is outdated and can CAUSE CRITICAL ERRORS IN THE GAME. Delete this save?"
$ _data = FileJson(slot)
if _data is not None and _data.get('_game') is not None and not _data['_game']:
$ _lsave = "save_nv"
if _data is not None and _data.get('_version') and _data['_version'] in ['0.4.1a','0.4.1b','0.4.1c'] and renpy.current_screen().screen_name[0] == "load":
$ err_save = True
else:
$ _lsave = "save_sb"
if _data is not None and _data.get('_xmas') is not None and _data['_xmas']:
$ _lsave = "save_xmas"
viewport:
xmaximum 220
ymaximum 146
imagebutton:
idle 'main_menu/slot_idle_background.png'
if persistent._file_page != "quick" or renpy.current_screen().screen_name[0] == "load":
hover im.MatrixColor('main_menu/slot_idle_background.png', im.matrix.brightness(.3))
action If( err_save , true = Show('confirm', message= err_text, yes_action = [FileDelete(slot, confirm = False), Hide('confirm')], no_action = [Hide('confirm')], yes_text = _('Yes'), no_text = _('No')), false = FileAction(slot))
else:
hover 'main_menu/slot_idle_background.png'
action NullAction()
viewport:
add Frame(FileScreenshot(slot))
ymaximum 124
if ttt != "empty slot":
add 'load_save_icon' yalign 1.0
add Text(ttt, color = '#160F32', size = 10, font = 'fonts/h_font.ttf') alpha .7 xalign .5 yalign .97
viewport:
xpos 6
ypos 0
xmaximum 40
ymaximum 125
add _lsave
if persistent._file_page != "auto":
imagebutton:
focus_mask None
idle Transform('trash_mask', alpha = 0)
hover Transform('trash_mask', alpha = .9)
if persistent._file_page != "quick" or renpy.current_screen().screen_name[0] == "load":
action If( err_save , true = Show('confirm', message= err_text, yes_action = [FileDelete(slot, confirm = False), Hide('confirm')], no_action = [Hide('confirm')], yes_text = _('Yes'), no_text = _('No')), false = FileAction(slot))
else:
action NullAction()
imagebutton:
xsize 32
ysize 32
xpos 178
ypos 8
if not renpy.android:
idle Transform('trash', alpha = 0, zoom = .5)
else:
idle Transform('trash', alpha = 0.8, zoom = .5)
hover Transform('trash', alpha = 1.0, zoom = .5)
action FileDelete(slot)
if config.developer and _data is not None:
viewport:
xalign .99
yalign .82
xsize 50
ysize 20
add '#000a'
add Text(_data['_version'], color = '#FFF', size = 10, font = 'fonts/h_font.ttf') xalign .5 yalign .5
hbox:
style_prefix "page"
xalign 0.5
yalign .76
spacing gui.page_spacing
imagebutton:
idle Transform('main_menu/arrow_left_right.png')
hover Transform(im.MatrixColor('main_menu/arrow_left_right.png', im.matrix.brightness(.3)))
action FilePagePrevious()
ypos 15
if config.has_autosave:
textbutton _("{#auto_page}A") action FilePage("auto") text_idle_color '#D6B49D' text_hover_color '#FFEEDE' text_selected_color '#FFEEDE' ypos 12
if config.has_quicksave:
textbutton _("{#quick_page}Q") action FilePage("quick") text_idle_color '#D6B49D' text_hover_color '#FFEEDE' text_selected_color '#FFEEDE' ypos 12
for page in range(1, 10):
textbutton "[page]" action FilePage(page) text_idle_color '#D6B49D' text_hover_color '#FFEEDE' text_selected_color '#FFEEDE' ypos 12
imagebutton:
idle Transform('main_menu/arrow_left_right.png', xzoom = -1)
hover Transform(im.MatrixColor('main_menu/arrow_left_right.png', im.matrix.brightness(.3)), xzoom = -1)
action FilePageNext()
ypos 15
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 75
ypadding 5
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")
init python:
if persistent.dialogue_color is None:
persistent.dialogue_color = '#FFF'
class ColorButton():
def __init__(self):
self.color_1 = '#FFC42C'
self.color_2 = '#ffdf8c'
self.color_now = self.color_1
def change_color(self):
if self.color_now == self.color_1:
self.color_now = self.color_2
else:
self.color_now = self.color_1
init 499 image main_menu_idle_hover_button:
on idle:
'images/main_menu/buttons/idle.png' with Dissolve(.2)
on hover:
'images/main_menu/buttons/hover.png' with Dissolve(.2)
on selected_idle:
'images/main_menu/buttons/hover.png'
on selected_hover:
'images/main_menu/buttons/hover.png'
init python:
if persistent.window is None:
persistent.window = True
if persistent.rollback is None:
persistent.rollback = 'left'
if persistent.skip is None:
persistent.skip = []
if persistent.text_color is None:
persistent.text_color = '#FFF'
screen preferences():
tag menu
use game_menu(_("Settings"), scroll="viewport")
viewport:
xmaximum 1360
ymaximum 613
if renpy.android and renpy.variant("small"):
add 'settings_blocks_android' xalign .5 yalign .5
else:
add 'settings_blocks' xalign .5 yalign .5
xalign .5 yalign .5
viewport:
xmaximum 668
ymaximum 613
add '#0000'
vbox:
xpos 42
ypos 15
spacing 40
vbox:
text _('DISPLAY') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
spacing 4
hbox:
spacing 8
viewport:
xmaximum 290
ymaximum 55
imagebutton:
idle 'settings_button_long_0'
hover 'settings_button_long_1'
action SetField(persistent, 'fullscreen', True), SetField(persistent, 'window', False), Preference("display", "fullscreen")
add Text(_('FULLSCREEN'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if not persistent.fullscreen:
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 290
ymaximum 55
imagebutton:
idle 'settings_button_long_0'
hover 'settings_button_long_1'
action SetField(persistent, 'fullscreen', False), SetField(persistent, 'window', True), Preference("display", "window")
add Text(_('WINDOWED'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if not persistent.window:
alpha .3
xalign .5 yalign .5
vbox:
text _('ROLLBACK SLIDE') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
spacing 4
hbox:
spacing 8
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
action SetField(persistent, 'rollback', 'left'), Preference("rollback side", "left")
add Text(_('LEFT'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if persistent.rollback != 'left':
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
action SetField(persistent, 'rollback', 'disable'), Preference("rollback side", "disable")
add Text(_('DISABLE'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if persistent.rollback != 'disable':
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
action SetField(persistent, 'rollback', 'right'), Preference("rollback side", "right")
add Text(_('RIGHT'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if persistent.rollback != 'right':
alpha .3
xalign .5 yalign .5
vbox:
text _('SKIP') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
spacing 4
hbox:
spacing 8
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
if 'skip' in persistent.skip:
action Preference("skip", "toggle"), Function(persistent.skip.remove, 'skip')
else:
action Preference("skip", "toggle"), Function(persistent.skip.append, 'skip')
add Text(_('UNSEEN TEXT'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if "skip" not in persistent.skip:
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
if "after choices" in persistent.skip:
action Preference("after choices", "toggle"), Function(persistent.skip.remove, "after choices")
else:
action Preference("after choices", "toggle"), Function(persistent.skip.append, "after choices")
add Text(_('AFTER CHOICES'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if "after choices" not in persistent.skip:
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
if "transitions" in persistent.skip:
action InvertSelected(Preference("transitions", "toggle")), Function(persistent.skip.remove, "transitions")
else:
action InvertSelected(Preference("transitions", "toggle")), Function(persistent.skip.append, "transitions")
add Text(_('TRANSITIONS'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if "transitions" not in persistent.skip:
alpha .3
xalign .5 yalign .5
vbox:
text _('TEXT COLOR') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
spacing 4
hbox:
spacing 8
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
action SetField(persistent, 'dialogue_color', '#FFF')
add Text(_('WHITE'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if persistent.dialogue_color != '#FFF':
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
action SetField(persistent, 'dialogue_color', '#3877cf')
add Text(_('BLUE'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if persistent.dialogue_color != '#3877cf':
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 195
ymaximum 52
imagebutton:
idle 'main_menu/settings_button_short_0.png'
hover 'main_menu/settings_button_short_1.png'
action SetField(persistent, 'dialogue_color', '#FFCA42')
add Text(_('GOLD'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if persistent.dialogue_color != '#FFCA42':
alpha .3
xalign .5 yalign .5
vbox:
text _('Optional LGBTQ+ content') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
spacing 4
hbox:
spacing 8
viewport:
xmaximum 290
ymaximum 55
imagebutton:
idle 'settings_button_long_0'
hover 'settings_button_long_1'
if not persistent.LGBTQ:
action Function(checkedLGBTQ, chk = True)
else:
action NullAction()
add Text(_('ENABLE'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if not persistent.LGBTQ:
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 290
ymaximum 55
imagebutton:
idle 'settings_button_long_0'
hover 'settings_button_long_1'
if persistent.LGBTQ:
action Function(checkedLGBTQ, chk = False)
else:
action NullAction()
add Text(_('DISABLE'), size = 16, color = '#FFEEDE', font = 'fonts/h_font.ttf' ):
if persistent.LGBTQ:
alpha .3
xalign .5 yalign .5
viewport:
xmaximum 670
ymaximum 253
xpos 688
add '#0000'
vbox:
spacing 35
ypos 25
xpos 42
vbox:
spacing 10
viewport:
ysize 23
xsize 650
text _('AUTO-FORWARD TIME') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
if preferences.afm_time < 30:
if preferences.afm_enable:
$ preferences.afm_enable = False
text str(round(preferences.afm_time // 4)) + ' sec' color '#FFEEDE' size 20 font 'fonts/h_font.ttf' xalign .9
else:
$ preferences.afm_enable = True
text _('OFF') color '#FFEEDE' size 20 font 'fonts/h_font.ttf' xalign .9
bar value Preference("auto-forward time"):
left_bar 'main_menu/left_bar.png'
right_bar 'main_menu/right_bar.png'
xmaximum 595 yminimum 35
left_gutter 6
right_gutter 16
vbox:
spacing 10
viewport:
ysize 23
xsize 650
text _('TEXT SPEED') color '#FFEEDE' size 20 font 'fonts/h_font.ttf' xalign 0
if preferences.text_cps:
text str(round(preferences.text_cps)) + ' char per sec' color '#FFEEDE' size 20 font 'fonts/h_font.ttf' xalign .9
else:
text _('OFF') color '#FFEEDE' size 20 font 'fonts/h_font.ttf' xalign .9
bar value Preference("text speed"):
left_bar 'main_menu/left_bar.png'
right_bar 'main_menu/right_bar.png'
xmaximum 595 yminimum 35
left_gutter 6
right_gutter 16
viewport:
xpos 690
if renpy.android and renpy.variant("small"):
ypos 310
else:
ypos 270
ymaximum 340
xmaximum 670
add '#0000'
vbox:
spacing 35
ypos 25
xpos 42
vbox:
spacing 10
text _('MUSIC VOLUME') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
bar value Preference("music volume"):
left_bar 'main_menu/left_bar.png'
right_bar 'main_menu/right_bar.png'
xmaximum 595 yminimum 35
left_gutter 6
right_gutter 16
vbox:
spacing 10
text _('SOUND VOLUME') color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
bar value Preference("sound volume"):
left_bar 'main_menu/left_bar.png'
right_bar 'main_menu/right_bar.png'
xmaximum 595 yminimum 35
left_gutter 6
right_gutter 16
hbox:
xpos -27
textbutton _("MUTE ALL"):
ypos 3
if _preferences.get_volume("sfx") or _preferences.get_volume("music"):
text_idle_color '#FFEEDE'
text_hover_color '#FFEEDE'
else:
text_idle_color '#FFEEDE'
text_hover_color '#FFEEDE'
text_font 'fonts/h_font.ttf'
text_size 20
action NullAction()
style "mute_all_button"
imagebutton:
if _preferences.get_volume("sfx") or _preferences.get_volume("music"):
idle 'mute_icon_0'
hover 'mute_icon_0'
else:
idle 'mute_icon'
hover 'mute_icon'
focus_mask None
action Preference("all mute", "toggle")
if renpy.android and renpy.variant("small"):
viewport:
xpos 690
ypos 205
ymaximum 100
xmaximum 670
add '#0000'
vbox:
spacing 0
ypos 25
xpos 42
vbox:
spacing 6
text ' Background transparency'.upper() color '#FFEEDE' size 20 font 'fonts/h_font.ttf'
bar value FieldValue(persistent, "phone_alpha_bg_txt", range = 100, step = 1, style = 'slider'):
left_bar 'main_menu/left_bar.png'
right_bar 'main_menu/right_bar.png'
xmaximum 595 yminimum 35
left_gutter 6
right_gutter 16
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 3
style pref_label_text:
yalign 1.0
style pref_vbox:
xsize 338
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 525
style slider_button:
properties gui.button_properties("slider_button")
yalign 0.5
left_margin 15
style slider_button_text:
properties gui.button_text_properties("slider_button")
style slider_vbox:
xsize 675
screen history():
tag menu
use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0)
add 'help_bg'
viewport:
xmaximum 1200
ymaximum 800
xalign .8
yalign .7
scrollbars "vertical"
mousewheel True
draggable True
pagekeys True
yinitial 1.0
has vbox:
spacing 10
for h in _history_list:
viewport:
ymaximum 80
has fixed:
yfit True
hbox:
spacing 30
viewport:
xmaximum 160
ymaximum 60
add "#f000"
if h.who:
$ _color = '#8b00ff'
if hasattr(store, 'gg'):
python:
try:
if h.who != str(gg) and eval(h.who).who_args.get('color'):
_color = eval(h.who).who_args.get('color')
except:
_color = '#8b00ff'
add Text(h.who, substitute = False, font = 'fonts/h_font.ttf', bold = True, size = 18, color = _color, xalign = 1.0)
viewport:
xmaximum 980
ymaximum 60
add "#0f00"
add Text(renpy.filter_text_tags(h.what, allow=[gui.history_allow_tags,"i","b"]), substitute = False, font = 'fonts/h_font.ttf', size = 18, color = '#fff', xalign = 0)
if not _history_list:
label _("The dialogue history is empty.") text_font 'fonts/Bodoni.ttf' text_color '#fff' text_outlines [(1, "#000", 0, 0)] text_size 30
define -1 gui.history_allow_tags = set()
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"
$ btns = 'images/main_menu/buttons/'
use game_menu(_("Help"), scroll="viewport")
add 'help_bg' xalign .5 yalign .5
hbox xpos 220 ypos 190:
spacing 20
vbox:
spacing 10
for i in (("left", "Enter", "Advances dialogue and activates the interface."), ("middle", "H", "Hides the user interface."), ("right", "Escape", "Accesses the game menu.")):
hbox:
viewport:
xmaximum 140
ymaximum 40
ypos 30
add 'really_short_button_help'
text i[1] size 20 color '#FFEEDE' xalign .5 yalign .48 font 'fonts/h_font.ttf'
text "or" size 24 color '#EFC8AD' font 'fonts/h_font.ttf' ypos 30
viewport:
xmaximum 60
ymaximum 80
add '#0000'
add 'help_'+i[0]+'_mouse' xalign .5 yalign 1.0
text i[2] size 24 color '#EFC8AD' font 'fonts/h_font.ttf' ypos 30
spacing 15
for i in (
("Page Down", _("Rolls forward to later dialogue.")),
("I", _("Opens the inventory menu.")),
("P", _("Opens the phone menu.")),
("Q", _("Opens the list of available routes.")),
):
hbox:
viewport:
xmaximum 140
ymaximum 40
add 'really_short_button_help'
text i[0] size 20 color '#FFEEDE' xalign .5 yalign .48 font 'fonts/h_font.ttf'
text i[1] size 24 color '#EFC8AD' font 'fonts/h_font.ttf' ypos 5
spacing 15
vbox:
ypos 30
spacing 10
for i in (
("S", _("Takes a screenshot.")),
("M", _("Opens the map.")),
("Space", _("Advances dialogue without selecting choices.")),
("Ctrl", _("Skips dialogue while held down.")),
("Tab", _("Toggles dialogue skipping.")),
("Page Up", _("Rolls back to earlier dialogue.")),
("L", _("Highlights all active objects.")),
("F", _("Enables fullscreen mode.")),
("Arrow Keys", _("Navigate the interface.")),
):
hbox:
viewport:
xmaximum 140
ymaximum 40
add 'really_short_button_help'
text i[0] size 20 color '#FFEEDE' xalign .5 yalign .48 font 'fonts/h_font.ttf'
text i[1] size 24 color '#EFC8AD' font 'fonts/h_font.ttf' ypos 5
spacing 15
screen keyboard_help():
hbox xpos 200 ypos 100:
label _("Enter") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Advances dialogue and activates the interface.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos 200 ypos 100:
label _("Space") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Advances dialogue without selecting choices.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos 200 ypos 100:
label _("Arrow Keys") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Navigate the interface.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos 200 ypos 100:
label _("Escape") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Accesses the game menu.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos 200 ypos 100:
label _("Ctrl") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Skips dialogue while held down.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos 200 ypos 100:
label _("Tab") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Toggles dialogue skipping.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos 200 ypos 100:
label _("Page Up") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Rolls back to earlier dialogue.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos 200 ypos 100:
label _("Page Down") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Rolls forward to later dialogue.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("I") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Opens the inventory menu.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("P") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Opens the phone menu.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("Q") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Opens the list of available routes.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("M") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Opens the map.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("L") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Highlights all active objects.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("F") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Enables fullscreen mode.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("H") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Hides the user interface.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
hbox xpos -300 ypos -277:
label _("S") text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text _("Takes a screenshot.") color "#808080" bold True outlines [(1, "#000", 0, 0)]
screen mouse_help():
for i in [("Left Click", "Advances dialogue and activates the interface."), ("Middle Click", "Hides the user interface."), ("Right Click", "Accesses the game menu.")]:
hbox xpos -100 ypos 100:
label i[0] text_size 18 text_outlines [(1, "#000", 0, 0)] text_color '#fff'
text i[1] color "#808080" bold True outlines [(1, "#000", 0, 0)]
screen gamepad_help():
hbox:
label _("Right Trigger\nA/Bottom Button") text_font 'fonts/Tahoma.ttf' text_size 24
text _("Advances dialogue and activates the interface.")
hbox:
label _("Left Trigger\nLeft Shoulder") text_font 'fonts/Tahoma.ttf' text_size 24
text _("Rolls back to earlier dialogue.")
hbox:
label _("Right Shoulder") text_font 'fonts/Tahoma.ttf' text_size 24
text _("Rolls forward to later dialogue.")
hbox:
label _("D-Pad, Sticks") text_font 'fonts/Tahoma.ttf' text_size 24
text _("Navigate the interface.")
hbox:
label _("Start, Guide") text_font 'fonts/Tahoma.ttf' text_size 24
text _("Accesses the game menu.")
hbox:
label _("Y/Top Button") text_font 'fonts/Tahoma.ttf' text_size 24
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 12
style help_button_text:
properties gui.button_text_properties("help_button")
style help_label:
xsize 375
right_padding 30
style help_label_text:
size gui.text_size
xalign 1.0
text_align 1.0
screen popup(message, _xpos=50, _ypos=50, _xmax=400, _ymax=200, _arrow="right", _arrow_pos=.5, _area=None, _image={"frame":"tutorial/tutorial_message.png","arrow":"tutorial/tutorial_arrow.png"}, _size=16):
zorder 1000
if not _ymax:
$ _ymax = 24 * ( len(message) // int(_xmax * 0.1) )
viewport:
xpos _xpos
ypos _ypos
xmaximum _xmax
ymaximum _ymax
add '#fff0'
add Frame(_image['frame'], Borders(8, 8, 8, 8), tile=gui.frame_tile)
hbox:
xmaximum _xmax - 20
ymaximum _ymax - 20
xsize _xmax - 20
ysize _ymax - 20
xpos 10
ypos 10
spacing 3
text _(message):
size _size font checkFont('fonts/roboto_regular.ttf')
color '#292C4B'
xalign .5
yalign .5
if _arrow is not None:
if _arrow == "left":
$ _rotate = 0
$ _xpos_arrow = _xpos - 28
$ _ypos_arrow = _ypos
$ _xmaximum_arrow = 28
$ _ymaximum_arrow = _ymax
$ _yalign_arrow = _arrow_pos
$ _xalign_arrow = 0
elif _arrow == "top":
$ _rotate = 90
$ _xpos_arrow = _xpos
$ _ypos_arrow = _ypos -28
$ _xmaximum_arrow = _xmax
$ _ymaximum_arrow = 28
$ _yalign_arrow = 0
$ _xalign_arrow = _arrow_pos
elif _arrow == "right":
$ _rotate = 180
$ _xpos_arrow = _xpos + _xmax - 10
$ _ypos_arrow = _ypos
$ _xmaximum_arrow = 38
$ _ymaximum_arrow = _ymax
$ _yalign_arrow = _arrow_pos
$ _xalign_arrow = 0
else:
$ _rotate = 270
$ _xpos_arrow = _xpos
$ _ypos_arrow = _ypos + _ymax - 10
$ _xmaximum_arrow = _xmax
$ _ymaximum_arrow = 38
$ _yalign_arrow = 0
$ _xalign_arrow = _arrow_pos
viewport:
xpos _xpos_arrow
ypos _ypos_arrow
xmaximum _xmaximum_arrow
ymaximum _ymaximum_arrow
add "#0000"
add _image['arrow'] xalign _xalign_arrow yalign _yalign_arrow rotate _rotate
if _area is not None:
viewport:
xpos _area["xpos"]
ypos _area["ypos"]
xmaximum _area["xsize"]
ymaximum _area["ysize"]
add '#fff0'
add Frame(_image['frame']) alpha 0.3
screen confirm(message, yes_action, no_action, yes_text=_("Yes"), no_text=_("No"), dont_ask_again=None):
key "rollback" action NullAction()
zorder 1000
style_prefix "confirm"
imagebutton:
idle '#0003'
hover '#0003'
action NullAction()
add 'check' yzoom 1.5 xalign .5 yalign .5
viewport:
xmaximum 540
ymaximum 310
add '#0000'
xalign .5 yalign .5
vbox:
xmaximum 500
ymaximum 250
xpos 25
ypos 20
spacing 6
hbox:
xsize 490
ysize 210
xalign .5
yalign .5
spacing 4
text _(message):
size 24 font 'fonts/h_font.ttf'
color '#292C4B'
xalign .5
yalign .2
text_align .5
hbox:
xalign .5
yalign .5
xsize 490
ysize 50
if no_action is not None:
vbox:
xmaximum 130
ymaximum 45
xalign 0.5
yalign .5
viewport:
xmaximum 130
ymaximum 45
imagebutton:
idle 'button_0'
hover 'button_1'
action no_action
text no_text xalign .5 yalign .48 font 'fonts/h_font.ttf' size 24 color '#FFEEDE'
vbox:
xmaximum 130
ymaximum 45
xalign 0.5
yalign .5
viewport:
xmaximum 130
ymaximum 45
imagebutton:
idle 'button_0'
hover 'button_1'
action yes_action
text yes_text xalign .5 yalign .48 font 'fonts/h_font.ttf' size 24 color '#FFEEDE'
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 9
text _("Skipping") font checkFont("fonts/GOTHIC.ttf")
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 -1 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 -1 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 -1 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 675
screen quick_menu():
variant "touch"
zorder 230
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_navigation_frame:
variant "small"
xsize 510
style game_menu_content_frame:
variant "small"
top_margin 0
style pref_vbox:
variant "small"
xsize 600
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 0
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 0
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_pref_vbox:
variant "small"
xsize None
style slider_pref_slider:
variant "small"
xsize 900
# Decompiled by unrpyc: https://github.com/CensoredUsername/unrpyc