# This file is in the public domain. Feel free to modify it as a basis # for your own screens. # Note that many of these screens may be given additional arguments in the # future. The use of **kwargs in the parameter list ensures your code will # work in the future. ############################################################################## # Say # # Screen that's used to display adv-mode dialogue. # http://www.renpy.org/doc/html/screen_special.html#say screen say(who, what, side_image=None, two_window=False): # If there's a side image, display it above the text. if side_image: add side_image else: add SideImage() xalign 0.0 yalign 1.0 # Decide if we want to use the one-window or two-window variant. if not two_window: # The one window variant. window: id "window" has vbox: style "say_vbox" if who: text who id "who" text what id "what" else: # The two window variant. vbox: style "say_two_window_vbox" if who: window: style "say_who_window" text who: id "who" window: id "window" has vbox: style "say_vbox" text what id "what" # Use the quick menu. use quick_menu use Calendar ############################################################################## # Choice # # Screen that's used to display in-game menus. # http://www.renpy.org/doc/html/screen_special.html#choice screen choice(items): window: style "menu_window" xalign 0.5 yalign 0.5 vbox: style "menu" spacing 2 for caption, action, chosen in items: if action: button: action action style "menu_choice_button" text caption style "menu_choice" else: text caption style "menu_caption" init -2: $ config.narrator_menu = True style menu_window is default style menu_choice is button_text: clear style menu_choice_button is button: xminimum int(config.screen_width * 0.75) xmaximum int(config.screen_width * 0.75) ############################################################################## # Input # # Screen that's used to display renpy.input() # http://www.renpy.org/doc/html/screen_special.html#input screen input(prompt): window style "input_window": has vbox text prompt style "input_prompt" input id "input" style "input_text" use quick_menu use Calendar ############################################################################## # Nvl # # Screen used for nvl-mode dialogue and menus. # http://www.renpy.org/doc/html/screen_special.html#nvl screen nvl(dialogue, items=None): window: style "nvl_window" has vbox: style "nvl_vbox" # Display dialogue. for who, what, who_id, what_id, window_id in dialogue: window: id window_id has hbox: spacing 10 if who is not None: text who id who_id text what id what_id # Display a menu, if given. if items: vbox: id "menu" for caption, action, chosen in items: if action: button: style "nvl_menu_choice_button" action action text caption style "nvl_menu_choice" else: text caption style "nvl_dialogue" add SideImage() xalign 0.0 yalign 1.0 use quick_menu use Calendar ############################################################################## # Main Menu # # Screen that's used to display the main menu, when Ren'Py first starts # http://www.renpy.org/doc/html/screen_special.html#main-menu init python: #def setup_spence_mainmenu(): #global spence_strip_mc_base2 #if persistent.skincolor == 0: #spence_strip_mc_base2 = 'base0' #elif persistent.skincolor == 1: #spence_strip_mc_base2 = 'base1' #elif persistent.skincolor == 5: #spence_strip_mc_base2 = 'base5' def setup_eric_mm(): global title_mc_hair global title_mc_skin if persistent.skincolor == 0: title_mc_skin = 'skin0' elif persistent.skincolor == 1: title_mc_skin = 'skin1' elif persistent.skincolor == 2: title_mc_skin = 'skin2' elif persistent.skincolor == 3: title_mc_skin = 'skin3' elif persistent.skincolor == 4: title_mc_skin = 'skin4' elif persistent.skincolor == 5: title_mc_skin = 'skin5' elif persistent.skincolor == 6: title_mc_skin = 'default' else: title_mc_skin = 'skin1' if persistent.haircolor == 0: title_mc_hair = 'hair0' elif persistent.haircolor == 1: title_mc_hair = 'hair1' elif persistent.haircolor == 2: title_mc_hair = 'hair2' elif persistent.haircolor == 3: title_mc_hair = 'hair3' elif persistent.haircolor == 4: title_mc_hair = 'hair4' elif persistent.haircolor == 5: title_mc_hair = 'hair5' elif persistent.haircolor == 6: title_mc_hair = 'default' else: title_mc_hair = 'hair4' screen main_menu(): $ setup_eric_mm() # This ensures that any other menu screen is replaced. tag menu # The background of the main menu. window: style "mm_root" if gallery_ver == True: imagemap: ground "Title_Screen_Ground" hover "Title_Screen_Hover" hotspot (699, 501, 170, 27) action Start() hover_sound "click.wav" hotspot (699, 530, 170, 27) action ShowMenu("load") hover_sound "click.wav" hotspot (699, 559, 170, 27) action ShowMenu("preferences") hover_sound "click.wav" hotspot (699, 646, 170, 27) action ShowMenu ("main_credits") hover_sound "click.wav" hotspot (699, 588, 170, 27) action ShowMenu("mc_character_gallery_test") hover_sound "click.wav" hotspot (699, 617, 170, 27) action ShowMenu("music_room") hover_sound "click.wav" #hotspot (699, 675, 170, 27) action ShowMenu("Coach1") hover_sound "click.wav" if gallery_ver == False: imagemap: ground "Title_Screen_Ground" hover "Title_Screen_Hover" hotspot (699, 501, 170, 27) action Start() hover_sound "click.wav" hotspot (699, 530, 170, 27) action ShowMenu("load") hover_sound "click.wav" hotspot (699, 559, 170, 27) action ShowMenu("preferences") hover_sound "click.wav" hotspot (699, 646, 170, 27) action ShowMenu ("main_credits") hover_sound "click.wav" hotspot (699, 588, 170, 27) action ShowMenu("mc_character_gallery_test") hover_sound "click.wav" hotspot (699, 617, 170, 27) action ShowMenu("music_room") hover_sound "click.wav" init -2: # Make all the main menu buttons be the same size. style mm_button: size_group "mm" ############################################################################## # Navigation # # Screen that's included in other screens to display the game menu # navigation and background. # http://www.renpy.org/doc/html/screen_special.html#navigation screen navigation(): # The background of the game menu. window: style "gm_root" # The various buttons. frame: style_group "gm_nav" xalign .98 yalign .98 has vbox textbutton _("Return") action Return() textbutton _("Preferences") action ShowMenu("preferences") textbutton _("Save Game") action ShowMenu("save") textbutton _("Load Game") action ShowMenu("load") textbutton _("Main Menu") action MainMenu() textbutton _("Help") action Help() textbutton _("Quit") action Quit() init -2: # Make all game menu navigation buttons the same size. style gm_nav_button: size_group "gm_nav" ############################################################################## # Save, Load # # Screens that allow the user to save and load the game. # http://www.renpy.org/doc/html/screen_special.html#save # http://www.renpy.org/doc/html/screen_special.html#load # Since saving and loading are so similar, we combine them into # a single screen, file_picker. We then use the file_picker screen # from simple load and save screens. screen file_picker(currentScreen): frame: style "file_picker_frame" has vbox # The buttons at the top allow the user to pick a # page of files. hbox: style_group "file_picker_nav" textbutton _("Previous"): action FilePagePrevious() textbutton _("Auto"): action FilePage("auto") textbutton _("Quick"): action FilePage("quick") for i in range(1, 11): textbutton str(i): action FilePage(i) textbutton _("Next"): action FilePageNext() $ columns = 3 $ rows = 5 # Display a grid of file slots. grid columns rows: transpose True xfill True xmaximum 1070 style_group "file_picker" # Display ten file slots, numbered 1 - 10. for i in range(1, columns * rows + 1): # Each file slot is a button. button: action FileAction(i) #xfill True xsize 350 has hbox # Add the screenshot. add FileScreenshot(i) $ file_name = FileSlotName(i, columns * rows) $ file_time = FileTime(i, empty=_("Empty Slot.")) $ save_name = FileSaveName(i) text "[file_name]. [file_time!t]\n[save_name!t]" key "save_delete" action FileDelete(i) screen save(): # This ensures that any other menu screen is replaced. tag menu use navigation use file_picker("save") screen load(): # This ensures that any other menu screen is replaced. tag menu use navigation use file_picker("load") init -2: style file_picker_frame is menu_frame style file_picker_nav_button is small_button style file_picker_nav_button_text is small_button_text style file_picker_button is large_button style file_picker_text is large_button_text ############################################################################## # Preferences # # Screen that allows the user to change the preferences. # http://www.renpy.org/doc/html/screen_special.html#prefereces screen preferences(): tag menu # Include the navigation. use navigation # Put the navigation columns in a three-wide grid. grid 3 1: style_group "prefs" xfill True # The left column. vbox: frame: style_group "pref" has vbox label _("Display") textbutton _("Window") action Preference("display", "window") textbutton _("Fullscreen") action Preference("display", "fullscreen") frame: style_group "pref" has vbox label _("Transitions") textbutton _("All") action Preference("transitions", "all") textbutton _("None") action Preference("transitions", "none") frame: style_group "pref" has vbox textbutton _("Joystick...") action Preference("joystick") vbox: frame: style_group "pref" has vbox label _("Skip") textbutton _("Seen Messages") action Preference("skip", "seen") textbutton _("All Messages") action Preference("skip", "all") frame: style_group "pref" has vbox label _("After Choices") textbutton _("Stop Skipping") action Preference("after choices", "stop") textbutton _("Keep Skipping") action Preference("after choices", "skip") frame: style_group "pref" has vbox textbutton _("Begin Skipping") action Skip() vbox: frame: style_group "pref" has vbox label _("Music Volume") bar value Preference("music volume") frame: style_group "pref" has vbox label _("Sound Volume") bar value Preference("sound volume") if config.sample_sound: textbutton _("Test"): action Play("sound", config.sample_sound) style "soundtest_button" frame: style_group "pref" has vbox label _("Text Speed") bar value Preference("text speed") frame: style_group "pref" has vbox label _("Auto-Forward Time") bar value Preference("auto-forward time") if config.has_voice: textbutton _("Wait for Voice") action Preference("wait for voice", "toggle") if config.has_voice: frame: style_group "pref" has vbox label _("Voice Volume") bar value Preference("voice volume") textbutton _("Voice Sustain") action Preference("voice sustain", "toggle") if config.sample_voice: textbutton _("Test"): action Play("voice", config.sample_voice) style "soundtest_button" init -2: style pref_frame: xfill True xmargin 5 top_margin 5 style pref_vbox: xfill True style pref_button: size_group "pref" xalign 1.0 style pref_slider: xmaximum 192 xalign 1.0 style soundtest_button: xalign 1.0 ############################################################################## # Yes/No Prompt # # Screen that asks the user a yes or no question. # http://www.renpy.org/doc/html/screen_special.html#yesno-prompt screen yesno_prompt(message, yes_action, no_action): modal True window: style "gm_root" frame: style_group "yesno" xfill True xmargin .05 ypos .1 yanchor 0 ypadding .05 has vbox: xalign .5 yalign .5 spacing 30 label _(message): xalign 0.5 hbox: xalign 0.5 spacing 100 textbutton _("Yes") action yes_action textbutton _("No") action no_action # Right-click and escape answer "no". key "game_menu" action no_action init -2: style yesno_button: size_group "yesno" style yesno_label_text: text_align 0.5 layout "subtitle" ############################################################################## # Quick Menu # # A screen that's included by the default say screen, and adds quick access to # several useful functions. screen quick_menu(): # Add an in-game quick menu. zorder 100 hbox: style_prefix "quick" xalign 0.5 yalign 1.0 textbutton _("{color=#fff}{size=+5}Back") action Rollback() textbutton _("{color=#fff}{size=+5}Hide") action HideInterface() imagemap: ground "art/gui/qm_base.png" hover "art/gui/qm_hover.png" alpha False hotspot (1082, 6, 42, 41) action ShowMenu('save')##Save hotspot (1123, 6, 36, 39) action Skip()##Skip hotspot (1161, 8, 31, 38) action Skip(fast=True, confirm=True) hotspot (1193, 6, 40, 38) action ShowMenu('preferences')##Pref hotspot (1235, 6, 42, 41) action ShowMenu('text_history')##Log ############################################################################## # Calendar # screen Calendar: if gdate != 'empty': add "art/gui/Calendar/Month_01_Base.png" xalign 0.005 add 'cal_days' xalign 0.005 vbox: xalign 0.08 text "{size=22}{font=Roboto-Regular.ttf}"+gdate+"{/font}{/size}" outlines [(2, "#000000", 0, 0)] ############################################################################# #IMAGE GALLERY # # # # init python: #Galleries settings - start #list the CG gallery images here: gallery_cg_items = ["CoachPra", "CoBase practice_wbb", "CoBase practice_bbb", "CoBase polo", "GrifterPra_Sad","GrifterPra_Un", "GrifterShorts", "GrifterGardPre ", "GrifterTeach_1B", "GBook", "GrifterTeach_PO", "CPMS", "GrifterD10", "GrifterPSBJ","GrifterPSBJA","GrifterPSBJBlu3","GrifterPSBJH2", "Grifter_Casual_Red", "CoachOverallsHap", "CoachOveralls4", "CoachOveralls2Hap2", "CoachOveralls3", "CoUndiesO", "GBUS", "GrifterGUWSB", "CoachUnderwearBlueBlu", "CoachUnderwearBlue date", "CoBase 3", "CoBase shopping", "CoBase shopping_bb", "CoBase shopping_bb2", "CoBase newshirt", "CoBase newshirt3", "CoBase jock_r", "CoBase jock_r_wbb", "CoBase jock_r_bbb", "CoNude"] #list the BG gallery images here (do not include variations, such as night version): gallery_bg_items = ["CTC", "CCP", "CWR","CheBase cs", "CheBase work", "CCJ", "CaltD6", "CUTP", "CUPS", "CSTGB2", "CUSG", "CUTG", "CCGB", "CSND8", "CMAID", "CTCA", "CTCW", "CJSB", "CTCAP", "CCUW", "CCUWBE", "Chester_Cosplay", "Chester_Cosplay_Top", "Chester_Cosplay_Bottom", "CheBase yukata", "CheBase apron", "CheBaseTowel", "CheBase tankjock", "CheBase uw_orange", "CheBase shorts_black_boner", "CheBase uw2_boner", "CheBase uw2_boner_wet", "CheBase uw2_boner_leak","chester_twitch"] gallery_spe_items = ["SpenceTO", "SpenceTO2", "SpenceUW", "SpeBase uw2", "SpeBase uw3", "spe_nude", "SpenceCasG", "SpenceLeoBlu", "SpenceLJ", "SpeBase lj_2", "SpenceLJ_NoShirt", "SLJJS", "SCGD6", "SCSD6", "SCOD6", "SCAD6", "SJBD7", "SpenceShortsOnly", "SpenceCasRedFl", "SpenceJockRedFlGrin", "SCBBG", "SpeBase cas_red", "SpeBase breakroom2", "SpeBase breakroom3"] gallery_doz_items = ["DozerBase tennis", "DozerBase tennis2", "DozerBase tennis3", "DozerBase uw_1_only", "DozerBase uw_2", "DozerBase uw_4", "DozerBase casual_1", "DozerBase casual_2", "DozerBase casual_4", "DozerBase casual_5", "DozerBase casual_6", "DozerBase tank_uw_4", "DozerBase casual_anime", "DozerBase towel", "DozerBase jock", "DozerNude"] gallery_cameo_items = ["Mar1", "Mar2", "Mar3", "Mar4", "Mar5", "Mar8", "Mar10", "Mar12", "Mar13", "MarBase 7", "MarBase fancy", "Andrew_legacy", "Tai", "Carson", "Bam", "BamNude","AzaBase outfit_1", "AzaBase outfit_2", "AzaNude", "Richard", "Richard 1_1", "Richard 2", "Waffle_Library", "MrB"] gallery_bonus_items = ["Title", "CoachShower1", "CoachShower2", "PicSpenceDance", "Spec_ChesterTent", "aza_spe_1", "aza_spe_2", "che_art1", "che_art2", "che_art3", "ChesterWater", "chester_backside", "doz_sauna", "doz_sauna2", "dar_dive", "co_self1", "co_self2", "Darius_Text", "dozer_selfie", "co_spe_1", "co_spe_2", "co_spe_cum1", "co_spe_cum2", "co_spe_cum3", "co_spe_cum4", "spe_sce_1", "spe_sce_2", "spe_sce_3", "spe_sce_4", "Spe_Cum_1", "Spe_Cum_2", "mc_bottom", "spe_bottom", "chester_s1_base", "chester_s1_base2", "che_s1_bj1", "che_s1_bj2","che_s1_bj3", "che_s1_final", "che_s1_sudsfinal","doz_sc1_mc1", "doz_sc1_mc2", "doz_sc1_mc3", "dozer_sce_1", "dozer_sce_2"] gallery_dar1_items = ["DariusT", "DarUW", "DarNude", "DarTow", "DarCas1","DarCas2", "DarCasI", "DarTankUW", "DarCas2wHelm", "DarBase casual_2", "DarBase fancy", "DarBase uw_2","DarBase pirate1", "DarBase stunt1", "DarBase stunt2", "DarBase stunt3", "DarBase gown", "DarBase gown_mane"] #how many rows and columns in the gallery screens? gal_rows = 6 gal_cols = 8 #thumbnail size in pixels: thumbnail_x = 105 thumbnail_y = 150 #the setting above (267x150) will work well with 16:9 screen ratio. Make sure to adjust it, if your are using 4:3 or something else. #Galleries settings - end gal_cells = gal_rows * gal_cols g_cg = Gallery() for gal_item in gallery_cg_items: g_cg.button(gal_item + " butt") g_cg.image("BGGALL", gal_item) #g_cg.unlock(gal_item) g_cg.transition = fade cg_page=0 g_bg = Gallery() for gal_item in gallery_bg_items: g_bg.button(gal_item + " butt") g_bg.image("BGGALL", gal_item) #g_bg.unlock(gal_item) g_bg.transition = fade bg_page=0 ###ADD new one of these for each page for different gallery items. for gal_item in gallery_spe_items: g_bg.button(gal_item + " butt") g_bg.image("BGGALL", gal_item) #g_bg.unlock(gal_item) g_bg.transition = fade bg_page=0 for gal_item in gallery_doz_items: g_bg.button(gal_item + " butt") g_bg.image("BGGALL", gal_item) #g_bg.unlock(gal_item) g_bg.transition = fade bg_page=0 for gal_item in gallery_bonus_items: g_bg.button(gal_item + " butt") g_bg.image("BGGALL", gal_item) #g_bg.unlock(gal_item) g_bg.transition = fade bg_page=0 for gal_item in gallery_cameo_items: g_bg.button(gal_item + " butt") g_bg.image("BGGALL", gal_item) #g_bg.unlock(gal_item) g_bg.transition = fade bg_page=0 for gal_item in gallery_dar1_items: g_bg.button(gal_item + " butt") g_bg.image("BGGALL", gal_item) #g_bg.unlock(gal_item) g_bg.transition = fade bg_page=0 ############ init +1 python : ea_gallery_button_cache = {} # stores button images we've generated already so we don't have to create them again def ea_delayed_gallery_button(*args, **kwargs): name = kwargs["image_name"] # this is the image_name parameter the DynamicDisplayable is created with later if name not in ea_gallery_button_cache: base_image = renpy.display.image.images.get(tuple(name.split()), None) # look up base image in Ren'Py internal index if base_image == None: raise Exception("Could not find image " + name) # Wasn't in index, probably a typo if isinstance(base_image, im.ImageBase): # Fixed Image type -- can use im.Scale ea_gallery_button_cache[name] = im.Scale(base_image, thumbnail_x, thumbnail_y) else: # Generic displayable -- have to use Transform ea_gallery_button_cache[name] = Transform(base_image, size=(thumbnail_x, thumbnail_y)) return (ea_gallery_button_cache[name], None) # None here means “don’t call me again until the next display time” for gallery_page in [gallery_cg_items, gallery_bg_items, gallery_spe_items, gallery_doz_items, gallery_dar1_items, gallery_cameo_items, gallery_bonus_items]: for gallery_image_name in gallery_page: renpy.image(gallery_image_name + " butt", DynamicDisplayable(ea_delayed_gallery_button, image_name=gallery_image_name)) screen Coach1: tag menu use navigation frame background "BG_PH.png" xpos 10: viewport id "vp": mousewheel True draggable True grid gal_rows gal_cols: ypos 10 $ i = 0 $ next_cg_page = cg_page + 1 if next_cg_page > int(len(gallery_cg_items)/gal_cells): $ next_cg_page = 0 for gal_item in gallery_cg_items: $ i += 1 if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells: add g_cg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallery_locked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24) for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid null grid 1 8: xfill True yfill True textbutton "Coach Grifter" action ShowMenu("Coach1") xalign 0.99 yalign 0.5 textbutton "Chester" action ShowMenu("Chester1") xalign 0.99 yalign 0.5 textbutton "Spencer" action ShowMenu("Spencer1") xalign 0.99 yalign 0.5 textbutton "Dozer" action ShowMenu("Dozer1") xalign 0.99 yalign 0.5 textbutton "Darius" action ShowMenu("Darius1") xalign 0.99 yalign 0.5 textbutton "Others" action ShowMenu("cameo") xalign 0.99 yalign 0.5 textbutton "Extra Scenes" action ShowMenu("Bonus") xalign 0.99 yalign 0.5 textbutton "Return" action Return() xalign 0.99 yalign 0.5 screen Chester1: #The BG gallery screen is more or less copy pasted from the CG screen above, I only changed "make_button" to include a grayscale thumbnail for locked items tag menu use navigation frame background "BG_PH.png" xpos 10: viewport id "vp": mousewheel True draggable True grid gal_rows gal_cols: ypos 10 $ i = 0 for gal_item in gallery_bg_items: $ i += 1 if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells: add g_bg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallery_locked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24) for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid null grid 1 8: xfill True yfill True textbutton "Coach Grifter" action ShowMenu("Coach1") xalign 0.99 yalign 0.5 textbutton "Chester" action ShowMenu("Chester1") xalign 0.99 yalign 0.5 textbutton "Spencer" action ShowMenu("Spencer1") xalign 0.99 yalign 0.5 textbutton "Dozer" action ShowMenu("Dozer1") xalign 0.99 yalign 0.5 textbutton "Darius" action ShowMenu("Darius1") xalign 0.99 yalign 0.5 textbutton "Others" action ShowMenu("cameo") xalign 0.99 yalign 0.5 textbutton "Extra Scenes" action ShowMenu("Bonus") xalign 0.99 yalign 0.5 textbutton "Return" action Return() xalign 0.99 yalign 0.5 screen Spencer1: #The BG gallery screen is more or less copy pasted from the CG screen above, I only changed "make_button" to include a grayscale thumbnail for locked items tag menu use navigation frame background "BG_PH.png" xpos 10: viewport id "vp": mousewheel True draggable True grid gal_rows gal_cols: ypos 10 $ i = 0 for gal_item in gallery_spe_items: $ i += 1 if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells: add g_bg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallery_locked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24) for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid null grid 1 8: xfill True yfill True textbutton "Coach Grifter" action ShowMenu("Coach1") xalign 0.99 yalign 0.5 textbutton "Chester" action ShowMenu("Chester1") xalign 0.99 yalign 0.5 textbutton "Spencer" action ShowMenu("Spencer1") xalign 0.99 yalign 0.5 textbutton "Dozer" action ShowMenu("Dozer1") xalign 0.99 yalign 0.5 textbutton "Darius" action ShowMenu("Darius1") xalign 0.99 yalign 0.5 textbutton "Others" action ShowMenu("cameo") xalign 0.99 yalign 0.5 textbutton "Extra Scenes" action ShowMenu("Bonus") xalign 0.99 yalign 0.5 textbutton "Return" action Return() xalign 0.99 yalign 0.5 screen Bonus: #The BG gallery screen is more or less copy pasted from the CG screen above, I only changed "make_button" to include a grayscale thumbnail for locked items tag menu use navigation frame background "BG_PH.png" xpos 10: viewport id "vp": mousewheel True draggable True grid gal_rows gal_cols: ypos 10 $ i = 0 for gal_item in gallery_bonus_items: $ i += 1 if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells: add g_bg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallery_locked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24) for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid null grid 1 8: xfill True yfill True textbutton "Coach Grifter" action ShowMenu("Coach1") xalign 0.99 yalign 0.5 textbutton "Chester" action ShowMenu("Chester1") xalign 0.99 yalign 0.5 textbutton "Spencer" action ShowMenu("Spencer1") xalign 0.99 yalign 0.5 textbutton "Dozer" action ShowMenu("Dozer1") xalign 0.99 yalign 0.5 textbutton "Darius" action ShowMenu("Darius1") xalign 0.99 yalign 0.5 textbutton "Others" action ShowMenu("cameo") xalign 0.99 yalign 0.5 textbutton "Extra Scenes" action ShowMenu("Bonus") xalign 0.99 yalign 0.5 textbutton "Return" action Return() xalign 0.99 yalign 0.5 screen Dozer1: #The BG gallery screen is more or less copy pasted from the CG screen above, I only changed "make_button" to include a grayscale thumbnail for locked items tag menu use navigation frame background "BG_PH.png" xpos 10: viewport id "vp": mousewheel True draggable True grid gal_rows gal_cols: ypos 10 $ i = 0 for gal_item in gallery_doz_items: $ i += 1 if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells: add g_bg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallery_locked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24) for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid null grid 1 8: xfill True yfill True textbutton "Coach Grifter" action ShowMenu("Coach1") xalign 0.99 yalign 0.5 textbutton "Chester" action ShowMenu("Chester1") xalign 0.99 yalign 0.5 textbutton "Spencer" action ShowMenu("Spencer1") xalign 0.99 yalign 0.5 textbutton "Dozer" action ShowMenu("Dozer1") xalign 0.99 yalign 0.5 textbutton "Darius" action ShowMenu("Darius1") xalign 0.99 yalign 0.5 textbutton "Others" action ShowMenu("cameo") xalign 0.99 yalign 0.5 textbutton "Extra Scenes" action ShowMenu("Bonus") xalign 0.99 yalign 0.5 textbutton "Return" action Return() xalign 0.99 yalign 0.5 screen Darius1: #The BG gallery screen is more or less copy pasted from the CG screen above, I only changed "make_button" to include a grayscale thumbnail for locked items tag menu use navigation frame background "BG_PH.png" xpos 10: viewport id "vp": mousewheel True draggable True grid gal_rows gal_cols: ypos 10 $ i = 0 for gal_item in gallery_dar1_items: $ i += 1 if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells: add g_bg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallery_locked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24) for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid null grid 1 8: xfill True yfill True textbutton "Coach Grifter" action ShowMenu("Coach1") xalign 0.99 yalign 0.5 textbutton "Chester" action ShowMenu("Chester1") xalign 0.99 yalign 0.5 textbutton "Spencer" action ShowMenu("Spencer1") xalign 0.99 yalign 0.5 textbutton "Dozer" action ShowMenu("Dozer1") xalign 0.99 yalign 0.5 textbutton "Darius" action ShowMenu("Darius1") xalign 0.99 yalign 0.5 textbutton "Others" action ShowMenu("cameo") xalign 0.99 yalign 0.5 textbutton "Extra Scenes" action ShowMenu("Bonus") xalign 0.99 yalign 0.5 textbutton "Return" action Return() xalign 0.99 yalign 0.5 screen cameo: #The BG gallery screen is more or less copy pasted from the CG screen above, I only changed "make_button" to include a grayscale thumbnail for locked items tag menu use navigation frame background "BG_PH.png" xpos 10: viewport id "vp": mousewheel True draggable True grid gal_rows gal_cols: ypos 10 $ i = 0 for gal_item in gallery_cameo_items: $ i += 1 if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells: add g_bg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallery_locked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24) for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid null grid 1 8: xfill True yfill True textbutton "Coach Grifter" action ShowMenu("Coach1") xalign 0.99 yalign 0.5 textbutton "Chester" action ShowMenu("Chester1") xalign 0.99 yalign 0.5 textbutton "Spencer" action ShowMenu("Spencer1") xalign 0.99 yalign 0.5 textbutton "Dozer" action ShowMenu("Dozer1") xalign 0.99 yalign 0.5 textbutton "Darius" action ShowMenu("Darius1") xalign 0.99 yalign 0.5 textbutton "Others" action ShowMenu("cameo") xalign 0.99 yalign 0.5 textbutton "Extra Scenes" action ShowMenu("Bonus") xalign 0.99 yalign 0.5 textbutton "Return" action Return() xalign 0.99 yalign 0.5 #####TEST screen character_create: imagemap: hover "test/color_select2.png" idle "test/color_select.png" hotspot (579, 74, 45, 45) clicked Return ("hair0") hotspot (630, 74, 45, 45) clicked Return ("hair1") hotspot (681, 74, 45, 45) clicked Return ("hair2") hotspot (732, 74, 45, 45) clicked Return ("hair3") hotspot (783, 74, 45, 45) clicked Return ("hair4") hotspot (837, 74, 45, 45) clicked Return ("hair5") hotspot (579, 245, 45, 45) clicked Return ("eye0") hotspot (630, 245, 45, 45) clicked Return ("eye1") hotspot (681, 245, 45, 45) clicked Return ("eye2") hotspot (732, 245, 45, 45) clicked Return ("eye3") hotspot (783, 245, 45, 45) clicked Return ("eye4") hotspot (837, 245, 45, 45) clicked Return ("eye5") hotspot (579, 420, 45, 45) clicked Return ("skin0") hotspot (630, 420, 45, 45) clicked Return ("skin1") hotspot (681, 420, 45, 45) clicked Return ("skin2") hotspot (732, 420, 45, 45) clicked Return ("skin3") hotspot (783, 420, 45, 45) clicked Return ("skin4") hotspot (837, 420, 45, 45) clicked Return ("skin5") hotspot (577, 511, 97, 29) clicked Return ("default") #hotspot (682, 511, 242, 30) clicked Return ("undefined") hotspot (930, 509, 91, 35) clicked Return ("Accept") ############################ # Credits # # # # #screen Credits(): # tag menu # use navigation # frame: # background "#000000" # vbox: #This puts the elements in a vertical box, you could use an hbox or a grid or a fixed, etc. # text "Thanks to everyone that's supported me in making this!" # text "Anthonely Lora, Searl, Briand Fleury, Dustin Bridges, Dr. A, Caleb Basco, Trahern, Drake Arlin" # text "Zed, Matthew Pruitt, Kazuma, S34N, Kedasky D. Vetro, ScarletKnights, Aurynx, Blizzard" # text "{a= https://twitter.com/Bamwuff}Bamwuff{/a}, George J, BigTiger, BlueKuma, Vic Venom, NebulousTwilight" # text "Yutari, Alix, Zaos, shadowhaz, Trakefur, Siege, Gyrosteus, Martin, Zollith" # text "Zimux, Cadmaster, Flamebreaker, SiriusCreations, Noxnox, Justin, Badger" ##################################### # PRACTICE screen Credits(): tag menu use navigation frame: background "#000000" side "c b r": area (10, 10, 1280, 720) viewport id "vp": mousewheel True vbox: text "Please, do not redistribute." text "The art for Extracurricular Activities is not intended for use outside of this project. Nobody has permission to use it for anything else." text "" text "{a= https://www.patreon.com/dk999}Consider supporting the project on Patreon!{/a}" text "" text "" text "Special thanks to -" text "" text "My Amazing Guest Artists!" text "" text "{a= http://www.furaffinity.net/user/baconking/}BaconKing{/a} for his glorius Dozer Selfie and Chester Scene." text "{a= https://www.patreon.com/MarkThorne}Mark Thorne{/a} for the fantastic Artist Alley Chester works and his background works!" text "{a= http://www.furaffinity.net/user/azaghal/}Azaghal{/a} for the sexy Club Spencer." text "" text "" text "{a= https://regonoreth.sofurry.com/}Regonoreth {/a} for the extensive typo lists. That helps a ton!" text "And especially {a= https://twitter.com/MassimoDragon}Massimo{/a} for playing it over and over, reading my scripts, helping find mistakes, and just helping overall." text "" text "Many thanks to Mark for his work with the background layouts and Music Gallery images!" text "{a= https://www.patreon.com/MarkThorne}Mark's Patreon{/a}" text "" text "Thanks you to my background artist, Gavel, for the amazing work!" text "Check him out on {a= http://www.furaffinity.net/user/gavel/}FurAffinity{/a} and {a= http://www.twitter.com/Gavelly}Twitter{/a}!" text "" text "HUGE thanks to CursedMarked for doing the initial character art for me. I never could have done this without you." text "{a= https://www.patreon.com/cursedmarked}CM's Patreon{/a}" text "" text "Thanks to CaptainGerBear for the amazing work he has been doing for me, picking up where CM left off! Be sure to check out the other works he has done!" text "{a= http://townseed.ca/bigfingers/}BigFingers{/a} {a= https://twitter.com/Captaingerbear}Twitter{/a} {a= http://www.furaffinity.net/user/captaingerbear}FurAffinity{/a}" text "" text "And a huge thanks to my man, Paul, for supporting me in all this. You supporting me means the world to me, and helps drive me to do the best I can." text "Share some of the love with him over on his {a= https://www.patreon.com/Wolfstar}Patreon Page{/a}. He's working on an amazing visual novel called Wolfstar Sins and Paradise." text"" text "Thanks to everyone that's supported me in making this!" text "" text "----------------------------------------------------------------------------------------------------------------------------" text patrons_sorted text "----------------------------------------------------------------------------------------------------------------------------" text "" text "If I'm missing your name, please send me a message and I'll add you!" text "" text "Music/Sound Credits" text "" text "\"You Saved Me\", \"Home v2\", \"Happy 1\" - {a=https://soundcloud.com/user-998838833}Raphael Thorne{/a}" text "\"Dream's Awakening\" - {a=https://twitter.com/StofferTheWolf}StofferTheWolf{/a}" text "\"Wallpaper\", \"Voice Over Under\", \"Digital Lemonade\" Kevin MacLeod (incompetech.com)" text "\"Happy Alley\", \"Prelude in C\" Kevin MacLeod (incompetch.com)" text "\"Thunder\" - Mark DiAngelo" text "\"Rain\" - Soundjay.com" text "Light Switch - kwahma_02 - https://www.freesound.org/people/kwahmah_02/sounds/244923/" text "P - shy_freesound_org - https://www.freesound.org/people/shy_freesound_org/sounds/192437/" text "Piano Discord - Aiwah - https://www.freesound.org/people/Aiwha/sounds/196102/" text "Darius Piano - http://www.bensound.com/royalty-free-music" text "Romantic - http://www.bensound.com/romantic" text "DariusPiano - Gymnopedie No. 3, 'Anguish', 'Mesmerize' Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 3.0 License http://creativecommons.org/licenses/by/3.0/" text "" text "Licensed under Creative Commons: By Attribution 3.0" text "http://creativecommons.org/licenses/by/3.0/" text "" text "Convention Ambience - Awesoman - https://www.freesound.org/people/Awesoman/sounds/129343/" text "Amusment Part Ambience - alienistcog - https://www.freesound.org/people/alienistcog/sounds/126661/" text "This work is licensed under the Creative Commons 0 License." text "NiceAndEasy - BY AUDIONAUTIX.COM - This work is licensed under a Creative Commons Attribution 3.0 Unported License. " text "Splash - InspectorJ - https://freesound.org/people/InspectorJ/sounds/352105/" text "" text "All characters are Copyright to DyneWulf with Patron characters copyrighted to their respective owners." text "Permission has been given to use these characters." text "Extra Characters with links to their Owners - {a= http://www.furaffinity.net/user/azaghal/}Azaghal{/a}, {a=https://twitter.com/Bamwuff }Bam{/a}, {a=https://twitter.com/CursedMarked }Butch{/a}, {a=https://www.patreon.com/Aurynx?ty=h } Carson{/a}, {a= https://twitter.com/MassimoDragon}Massimo{/a}, {a= http://www.furaffinity.net/user/kingtai/}KingTai{/a}, {a= https://twitter.com/regonoreth}Reggie{/a}, {a= http://www.furaffinity.net/user/zacco/}Mar{/a}, {a= http://www.furaffinity.net/user/toranatsu}Tora{/a}" text "" ## Camera Snap https://freesound.org/people/thecheeseman/sounds/51360/ thecheeseman Attribution 3.0 textbutton _("Return") action Return() bar value XScrollValue("vp") vbar value YScrollValue("vp") ### Date and Time Layout ### # # # screen dateandtime(): add "ui/daycounter.png" vbox: xalign 0.925 yalign 0.03 text "{size=22}{font=Roboto-Regular.ttf}"+gdate+"{/font}{/size}" outlines [(2, "#000000", 0, 0)] ### Music Room ### # # # init python: mr = MusicRoom(fadeout=0.5) #mr.is_unlocked("sound/Bit Quest.mp3") mr.add("Music_Wallpaper.mp3", always_unlocked=False) mr.add("Music_VoiceOverUnder.mp3", always_unlocked=False) mr.add("sound/Bit Quest.mp3", always_unlocked = False) mr.add("sound/Court Theme.mp3", always_unlocked=False) mr.add("sound/court_theme2.mp3", always_unlocked=False) mr.add("sound/DariusPiano.mp3", always_unlocked=False) mr.add("sound/Digital Lemonade.mp3", always_unlocked=False) mr.add("sound/Glamour.mp3", always_unlocked=False) mr.add("sound/happy_1.mp3", always_unlocked=False) mr.add("sound/happy_2.mp3", always_unlocked=False) mr.add("sound/home_v2.mp3", always_unlocked=False) mr.add("sound/Mesmerize.mp3", always_unlocked=False) mr.add("sound/Mirage.ogg", always_unlocked=False) mr.add("sound/piano.mp3", always_unlocked=False) mr.add("sound/retrosoul.mp3", always_unlocked=False) mr.add("sound/Sexy.mp3", always_unlocked=False) mr.add("sound/Shaving Mirror.mp3", always_unlocked=False) mr.add("sound/You Saved Me.mp3", always_unlocked=False) mr.add("sound/Anguish.mp3", always_unlocked=False) mr.add("sound/dar_piece.ogg", always_unlocked=False) mr.add("sound/OST/Another Days End.ogg", always_unlocked = False) mr.add("sound/OST/Critical Strike.ogg", always_unlocked = False) mr.add("sound/OST/Darius.ogg", always_unlocked = False) mr.add("sound/OST/Days End.ogg", always_unlocked = False) mr.add("sound/OST/Dream's Awakening.ogg", always_unlocked = False) mr.add("sound/OST/Get Pumped.ogg", always_unlocked = False) mr.add("sound/OST/Good Time.ogg", always_unlocked = False) mr.add("sound/OST/Green Lights.ogg", always_unlocked = False) mr.add("sound/OST/Home.ogg", always_unlocked = False) mr.add("sound/OST/HomeJoke.ogg", always_unlocked = False) mr.add("sound/OST/In The Mood.ogg", always_unlocked = False) mr.add("sound/OST/InThe Stars.ogg", always_unlocked = False) mr.add("sound/OST/Intro.ogg", always_unlocked = False) mr.add("sound/OST/Just Us.ogg", always_unlocked = False) mr.add("sound/OST/Learning.ogg", always_unlocked = False) mr.add("sound/OST/Out and About.ogg", always_unlocked = False) mr.add("sound/OST/Painful Memories.ogg", always_unlocked = False) mr.add("sound/OST/Relaxed.ogg", always_unlocked = False) mr.add("sound/OST/Take if Off.ogg", always_unlocked = False) music_bg = "song5" style music_gallery_buttons: color "#ffffff" hover_color "#FFFF72" size 20 font "Roboto-Regular.ttf" bold False outlines [(2, "#000000", 0, 0)] screen music_room: tag menu add DynamicDisplayable(lambda a,b: (renpy.displayable(music_bg), 0.1)) frame: xpos 0.1 ypos 0.68 xmaximum 300 ymaximum 75 style_group "pref" has vbox label _("Music Volume") bar value Preference("music volume") hbox: xpos -0.5 ypos 0.5 vbox: textbutton _("Play") action mr.play: text_style "music_gallery_buttons" text_yalign 0.5 text_xalign 0.5 textbutton _("Prev") action mr.previous: text_style "music_gallery_buttons" text_yalign 0.5 text_xalign 0.5 vbox: textbutton _("Stop") action mr.stop: text_style "music_gallery_buttons" text_yalign 0.5 text_xalign 0.5 textbutton _("Next") action mr.next: text_style "music_gallery_buttons" text_yalign 0.5 text_xalign 0.5 frame background None: xpos 0.4 hbox: vbox: if mr.is_unlocked("sound/OST/Another Days End.ogg"): textbutton "Another Day's End" action mr.Play("sound/OST/Another Days End.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Critical Strike.ogg"): textbutton "Critical Strike" action mr.Play("sound/OST/Critical Strike.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Darius.ogg"): textbutton "Darius" action mr.Play("sound/OST/Darius.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Days End.ogg"): textbutton "Day's End" action mr.Play("sound/OST/Days End.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Dreams Awakening.ogg"): textbutton "Dream's Awakening" action mr.Play("sound/OST/Dream's Awakening.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Get Pumped.ogg"): textbutton "Get Pumped" action mr.Play("sound/OST/Get Pumped.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Good Time.ogg"): textbutton "Good Time" action mr.Play("sound/OST/Good Time.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Green Lights.ogg"): textbutton "Green Lights" action mr.Play("sound/OST/Green Lights.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Home.ogg"): textbutton "Home" action mr.Play("sound/OST/Home.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/In The Mood.ogg"): textbutton "In the Mood" action mr.Play("sound/OST/In The Mood.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/InThe Stars.ogg"): textbutton "In the Stars" action mr.Play("sound/OST/InThe Stars.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Intro.ogg"): textbutton "Extracurricular Activities" action mr.Play("sound/OST/Intro.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Just Us.ogg"): textbutton "Just Us" action mr.Play("sound/OST/Just Us.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Learning.ogg"): textbutton "Learning" action mr.Play("sound/OST/Learning.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Out and About.ogg"): textbutton "Out and About" action mr.Play("sound/OST/Out and About.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 null width 10 vbox: if mr.is_unlocked("sound/OST/Painful Memories.ogg"): textbutton "Painful Memories" action mr.Play("sound/OST/Painful Memories.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Relaxed.ogg"): textbutton "Relaxed" action mr.Play("sound/OST/Relaxed.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/OST/Take it Off.ogg"): textbutton "Take it Off" action mr.Play("sound/OST/Take it Off.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 #vbox: # The buttons that play each track. #textbutton "Track 1" action mr.Play("sound/happy_2.mp3") # textbutton "Wallpaper" action [SetVariable("music_bg", "song5"), mr.Play("Music_Wallpaper.mp3")]: if mr.is_unlocked("Music_Wallpaper.mp3"): textbutton "Wallpaper" action mr.Play("Music_Wallpaper.mp3"): text_style "music_gallery_buttons" xalign 0.5 yalign 0.5 null height 5 if mr.is_unlocked("sound/Music_VoiceOverUnder.mp3"): textbutton "Voice Over Under" action mr.Play("Music_VoiceOverUnder.mp3"): text_style "music_gallery_buttons" #xpos 3.5 text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Bit Quest.mp3"): textbutton "Bit Quest" action mr.Play("sound/Bit Quest.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Court Theme.mp3"): textbutton "Court Theme" action mr.Play("sound/Court Theme.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/court_theme2.mp3"): textbutton "Court Theme 2" action mr.Play("sound/court_theme2.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/DariusPiano.mp3"): textbutton "Darius Piano" action mr.Play("sound/DariusPiano.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Digital Lemonade.mp3"): textbutton "Digital Lemonade" action mr.Play("sound/Digital Lemonade.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Glamour.mp3"): textbutton "Glamour" action mr.Play("sound/Glamour.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/happy_1.mp3"): textbutton "Happy 1" action mr.Play("sound/happy_1.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/happy_2.mp3"): textbutton "Happy 2" action mr.Play("sound/happy_2.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 null width 10 vbox: if mr.is_unlocked("sound/home_v2.mp3"): textbutton "Home" action mr.Play("sound/home_v2.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Mesmerize.mp3"): textbutton "Mesmerize" action mr.Play("sound/Mesmerize.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Mirage.ogg"): textbutton "Mirage" action mr.Play("sound/Mirage.ogg"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/piano.mp3"): textbutton "Piano" action mr.Play("sound/piano.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/retrosoul.mp33"): textbutton "Retro Soul" action mr.Play("sound/retrosoul.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Sexy.mp3"): textbutton "Sexy" action mr.Play("sound/Sexy.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Shaving Mirror.mp3"): textbutton "Shaving Mirror" action mr.Play("sound/Shaving Mirror.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/You Saved Me.mp3"): textbutton "You Saved Me" action mr.Play("sound/You Saved Me.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 if mr.is_unlocked("sound/Anguish.mp3"): textbutton "Anguish" action mr.Play("sound/Anguish.mp3"): text_style "music_gallery_buttons" text_yalign 0.5 null height 5 null width 10 textbutton "Main Menu" action ShowMenu("main_menu"): xpos 0.165 ypos 0.94 text_style "music_gallery_buttons" text_yalign 0.5 text_xalign 0.5 # Start the music playing on entry to the music room. on "replace" action mr.Play() # Restore the main menu music upon leaving. on "replaced" action [Play("music", "sound/OST/Intro.ogg")] #null height 50 << Adds space between the buttons