1430 lines
40 KiB
Plaintext
1430 lines
40 KiB
Plaintext
|
|
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):
|
|
zorder 301
|
|
style_prefix "say"
|
|
|
|
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
|
|
|
|
|
|
screen input(prompt):
|
|
style_prefix "input"
|
|
|
|
window:
|
|
|
|
has vbox:
|
|
xalign gui.dialogue_text_xalign
|
|
xpos gui.dialogue_xpos
|
|
xsize gui.dialogue_width
|
|
ypos gui.dialogue_ypos
|
|
|
|
text prompt style "input_prompt"
|
|
input id "input"
|
|
|
|
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)
|
|
|
|
def StartGame(gameid = 2126680):
|
|
if config.steam_appid is not None:
|
|
achievement.steamapi.SteamFriends().ActivateGameOverlayToWebPage("steam://rungameid/" + str(gameid), True)
|
|
Quit(confirm=not main_menu)()
|
|
|
|
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
|
|
|
|
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)
|
|
|
|
label not_now_label:
|
|
|
|
"{i}(There's nothing we can talk about right now.){/i}"
|
|
|
|
return
|
|
|
|
screen choice(items):
|
|
style_prefix "choice"
|
|
zorder 350
|
|
default hovered_item = None
|
|
if len(get_items_choice(items)) == 1 and items[len(items)-1].caption == 'Not now':
|
|
timer .01 action Call('not_now_label')
|
|
else:
|
|
vbox yalign .8:
|
|
spacing 5
|
|
for i in items:
|
|
if 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 i.action:
|
|
if hovered_item == i:
|
|
text_color "FFEEDE"
|
|
else:
|
|
text_color '#d9cbbb'
|
|
text_font "fonts/h_font.ttf"
|
|
hovered SetScreenVariable("hovered_item", i)
|
|
unhovered SetScreenVariable("hovered_item", 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")
|
|
|
|
|
|
screen quick_menu():
|
|
|
|
zorder 2000
|
|
|
|
if quick_menu:
|
|
|
|
add '#0000'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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")
|
|
|
|
style mm_menu:
|
|
size 50
|
|
init python:
|
|
mm_button_y = -100
|
|
|
|
screen navigation(main_mm=False):
|
|
|
|
vbox:
|
|
style_prefix "mm_menu"
|
|
|
|
xalign .4
|
|
ypos 500
|
|
|
|
spacing gui.navigation_spacing
|
|
|
|
|
|
viewport:
|
|
xmaximum 435
|
|
ymaximum 52
|
|
imagebutton:
|
|
idle '#0000'
|
|
focus_mask None
|
|
hover 'main_menu_button'
|
|
hovered SetVariable('mm_button_y', 'startgame')
|
|
unhovered SetVariable('mm_button_y', -100)
|
|
action Function(StartGame)
|
|
text _("Play Game"):
|
|
xalign .5 yalign .5 text_align .5
|
|
size 42 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'startgame':
|
|
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', 'guide')
|
|
unhovered SetVariable('mm_button_y', -100)
|
|
action Show('quest_log_screen', transition = Dissolve(.5))
|
|
text _("Show Guide"):
|
|
xalign .5 yalign .5 text_align .5
|
|
size 42 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'guide':
|
|
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', 'quiz')
|
|
unhovered SetVariable('mm_button_y', -100)
|
|
action Show("quiz", transition = Dissolve(.5))
|
|
text _("Start Quiz"):
|
|
xalign .5 yalign .5 text_align .5
|
|
size 42 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'quiz':
|
|
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', 'extra_renders')
|
|
unhovered SetVariable('mm_button_y', -100)
|
|
action Show("extra_renders", transition = Dissolve(.5))
|
|
text _("Extra renders"):
|
|
xalign .5 yalign .5 text_align .5
|
|
size 42 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'extra_renders':
|
|
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', 'lustagram')
|
|
unhovered SetVariable('mm_button_y', -100)
|
|
action Show("lustagram")
|
|
text _("Lustagram"):
|
|
xalign .5 yalign .5 text_align .5
|
|
size 42 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'lustagram':
|
|
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', 'credits')
|
|
unhovered SetVariable('mm_button_y', -100)
|
|
action Show("credits", transition = Dissolve(.5))
|
|
text _("Credits"):
|
|
xalign .5 yalign .5 text_align .5
|
|
size 42 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'credits':
|
|
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'
|
|
|
|
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
|
|
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/2126680/Lust_Academy__Season_2/')
|
|
|
|
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')
|
|
|
|
style navigation_button:
|
|
size_group "navigation"
|
|
properties gui.button_properties("navigation_button")
|
|
|
|
style navigation_button_text:
|
|
properties gui.button_text_properties("navigation_button")
|
|
|
|
screen main_menu():
|
|
tag menu
|
|
|
|
if isWeb:
|
|
add 'images/main_menu/main_menu_bg.png'
|
|
else:
|
|
add 'main_menu_bg_webm'
|
|
|
|
viewport:
|
|
xmaximum 620
|
|
ymaximum 1080
|
|
xpos 60
|
|
add '#0000'
|
|
add 'main_menu_line' xalign .5
|
|
use navigation
|
|
|
|
viewport:
|
|
add '#0000'
|
|
if _preferences.get_volume("sfx") or _preferences.get_volume("music") or _preferences.get_volume("amb"):
|
|
imagebutton:
|
|
xalign .99
|
|
yalign .99
|
|
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")
|
|
else:
|
|
imagebutton:
|
|
xalign .99
|
|
yalign .99
|
|
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")
|
|
|
|
|
|
default show_list_lang = False
|
|
|
|
default langs = {'None':'English'}
|
|
|
|
for lang in renpy.known_languages():
|
|
if lang == 'russian':
|
|
$ langs.update({'russian':'Русский'})
|
|
|
|
if len(langs) > 1:
|
|
|
|
viewport:
|
|
xpos 540
|
|
ypos 1042 - If(show_list_lang, true = (len(langs) - 0) * 58, false = 58)
|
|
ymaximum If(show_list_lang, true = (len(langs) - 0) * 58, false = 58)
|
|
xmaximum 216
|
|
add '#0000'
|
|
viewport:
|
|
yalign 1.0
|
|
yoffset -58
|
|
add '#D6D7FF' alpha .7
|
|
vbox:
|
|
yalign 1.0
|
|
yoffset -4
|
|
xoffset 6
|
|
spacing 2
|
|
for key, lng in langs.items():
|
|
if key != str(_preferences.language):
|
|
viewport:
|
|
xsize 205
|
|
ysize 53
|
|
add '#0000'
|
|
hbox:
|
|
yalign .5
|
|
xalign 0
|
|
spacing 8
|
|
add Transform('images/main_interface/flags/'+ key.title() + '.png', zoom = 1.4) yalign .5 xoffset 2
|
|
add Text(lng, color = '#33264F', size = 18, font = 'fonts/h_font.ttf') yalign .5
|
|
imagebutton:
|
|
xmaximum 216
|
|
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/' + If(show_list_lang, true = 'list_up.png', false = 'list_down.png'), zoom = 1.4) 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.4) yalign .5
|
|
add Text(langs[str(_preferences.language)], color = '#33264F', size = 18, font = 'fonts/h_font.ttf') yalign .5
|
|
imagebutton:
|
|
xsize 216
|
|
ysize 56
|
|
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'
|
|
|
|
if mobile_android_small:
|
|
|
|
hbox:
|
|
style_prefix "mm_menu"
|
|
|
|
xalign .5
|
|
yalign .98
|
|
|
|
spacing 20
|
|
|
|
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', 'quide'), Show('quest_log_screen', transition = Dissolve(.5))
|
|
text _("Guide"):
|
|
xalign .5 yalign .5
|
|
size 24 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'quide':
|
|
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', 'quiz'), Show("quiz", transition = Dissolve(.5))
|
|
text _("Quiz"):
|
|
xalign .5 yalign .5
|
|
size 24 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'quiz':
|
|
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', 'extra_renders'), Show("extra_renders", transition = Dissolve(.5))
|
|
text _("Extra renders"):
|
|
xalign .5 yalign .5
|
|
size 24 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'extra_renders':
|
|
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', 'lustagram'), Show("lustagram", transition = Dissolve(.5))
|
|
text _("Lustagram"):
|
|
xalign .5 yalign .5
|
|
size 24 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'lustagram':
|
|
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', 'credits'), Show("credits", transition = Dissolve(.5))
|
|
text _("Credits"):
|
|
xalign .5 yalign .5
|
|
size 24 font 'fonts/h_font.ttf'
|
|
if mm_button_y == 'credits':
|
|
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'
|
|
|
|
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
|
|
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/2126680/Lust_Academy__Season_2/')
|
|
|
|
if main_menu:
|
|
key "game_menu" action ShowMenu("main_menu")
|
|
|
|
imagebutton:
|
|
idle Transform('menu_return_button', alpha = .69)
|
|
hover 'menu_return_button'
|
|
if main_menu:
|
|
action ShowMenu("main_menu")
|
|
else:
|
|
action Return()
|
|
xalign .99
|
|
yalign .01
|
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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'
|
|
|
|
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'
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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 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
|
|
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
|
|
|
|
|
|
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 1000
|
|
|
|
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
|
|
|