Advertisement
Hijiri

Untitled

Feb 2nd, 2019
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 48.26 KB | None | 0 0
  1. ################################################################################
  2. ## Initialization
  3. ################################################################################
  4.  
  5. init offset = -1
  6.  
  7.  
  8. ################################################################################
  9. ## Styles
  10. ################################################################################
  11.  
  12. style default:
  13.     properties gui.text_properties()
  14.     language gui.language
  15.  
  16. style input:
  17.     properties gui.text_properties("input", accent=True)
  18.     adjust_spacing False
  19.  
  20. style hyperlink_text:
  21.     properties gui.text_properties("hyperlink", accent=True)
  22.     hover_underline True
  23.  
  24. style gui_text:
  25.     properties gui.text_properties("interface")
  26.  
  27.  
  28. style button:
  29.     properties gui.button_properties("button")
  30.     hover_sound "audio/sfx/hover.ogg"
  31.     activate_sound "audio/sfx/select.ogg"
  32.  
  33. style button_text is gui_text:
  34.     properties gui.text_properties("button")
  35.     yalign 0.5
  36.  
  37.  
  38. style label_text is gui_text:
  39.     properties gui.text_properties("label", accent=True)
  40.  
  41. style prompt_text is gui_text:
  42.     properties gui.text_properties("prompt")
  43.  
  44.  
  45. style bar:
  46.     ysize gui.bar_size
  47.     left_bar Frame("gui/bar/left.png", gui.bar_borders, tile=gui.bar_tile)
  48.     right_bar Frame("gui/bar/right.png", gui.bar_borders, tile=gui.bar_tile)
  49.  
  50. style vbar:
  51.     xsize gui.bar_size
  52.     top_bar Frame("gui/bar/top.png", gui.vbar_borders, tile=gui.bar_tile)
  53.     bottom_bar Frame("gui/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile)
  54.  
  55. style scrollbar:
  56.     ysize gui.scrollbar_size
  57.     base_bar Frame("gui/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  58.     thumb Frame("gui/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  59.  
  60. style vscrollbar:
  61.     xsize gui.scrollbar_size
  62.     base_bar Frame("gui/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  63.     thumb Frame("gui/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  64.  
  65. style slider:
  66.     ysize gui.slider_size
  67.     #xsize 480
  68.     left_bar Frame("gui/bar/left.png", gui.bar_borders, tile=gui.bar_tile)
  69.     right_bar Frame("gui/bar/right.png", gui.bar_borders, tile=gui.bar_tile)
  70.  
  71. style vslider:
  72.     xsize gui.slider_size
  73.     base_bar Frame("gui/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile)
  74.     thumb "gui/slider/vertical_[prefix_]thumb.png"
  75.  
  76.  
  77. style frame:
  78.     padding gui.frame_borders.padding
  79.     background Frame("gui/frame.png", gui.frame_borders, tile=gui.frame_tile)
  80.  
  81.  
  82.  
  83. ################################################################################
  84. ## In-game screens
  85. ################################################################################
  86.  
  87.  
  88. ## Say screen ##################################################################
  89. ##
  90. ## The say screen is used to display dialogue to the player. It takes two
  91. ## parameters, who and what, which are the name of the speaking character and
  92. ## the text to be displayed, respectively. (The who parameter can be None if no
  93. ## name is given.)
  94. ##
  95. ## This screen must create a text displayable with id "what", as Ren'Py uses
  96. ## this to manage text display. It can also create displayables with id "who"
  97. ## and id "window" to apply style properties.
  98. ##
  99. ## https://www.renpy.org/doc/html/screen_special.html#say
  100.  
  101. screen say(who, what):
  102.     style_prefix "say"
  103.  
  104.     window:
  105.         id "window"
  106.  
  107.         if who is not None:
  108.  
  109.             window:
  110.                 id "namebox"
  111.                 style "namebox"
  112.                 text who id "who"
  113.  
  114.         text what id "what"
  115.  
  116.  
  117.     ## If there's a side image, display it above the text. Do not display on the
  118.     ## phone variant - there's no room.
  119.     if not renpy.variant("small"):
  120.         add SideImage() xalign 0.0 yalign 1.0
  121.  
  122.  
  123. ## Make the namebox available for styling through the Character object.
  124. init python:
  125.     config.character_id_prefixes.append('namebox')
  126.  
  127. style window is default
  128. style say_label is default
  129. style say_dialogue is default
  130. style say_thought is say_dialogue
  131.  
  132. style namebox is default
  133. style namebox_label is say_label
  134.  
  135.  
  136. style window:
  137.     xalign 0.5
  138.     xfill True
  139.     yalign gui.textbox_yalign
  140.     ysize gui.textbox_height
  141.  
  142.     background Image("gui/textbox.png", xalign=0.5, yalign=1.0)
  143.  
  144. style namebox:
  145.     xpos gui.name_xpos
  146.     xanchor gui.name_xalign
  147.     xsize gui.namebox_width
  148.     ypos gui.name_ypos
  149.     ysize gui.namebox_height
  150.  
  151.     background Frame("gui/namebox.png", gui.namebox_borders, tile=gui.namebox_tile, xalign=gui.name_xalign)
  152.     padding gui.namebox_borders.padding
  153.  
  154. style say_label:
  155.     properties gui.text_properties("name", accent=True)
  156.     xalign gui.name_xalign
  157.     yalign 0.5
  158.  
  159. style say_dialogue:
  160.     properties gui.text_properties("dialogue")
  161.  
  162.     xpos gui.dialogue_xpos
  163.     xsize gui.dialogue_width
  164.     ypos gui.dialogue_ypos
  165.  
  166.  
  167. ## Input screen ################################################################
  168. ##
  169. ## This screen is used to display renpy.input. The prompt parameter is used to
  170. ## pass a text prompt in.
  171. ##
  172. ## This screen must create an input displayable with id "input" to accept the
  173. ## various input parameters.
  174. ##
  175. ## https://www.renpy.org/doc/html/screen_special.html#input
  176.  
  177. screen input(prompt):
  178.     style_prefix "input"
  179.  
  180.     window:
  181.  
  182.         vbox:
  183.             xalign gui.dialogue_text_xalign
  184.             xpos gui.dialogue_xpos
  185.             xsize gui.dialogue_width
  186.             ypos gui.dialogue_ypos
  187.  
  188.             text prompt style "input_prompt"
  189.             input id "input"
  190.  
  191. style input_prompt is default
  192.  
  193. style input_prompt:
  194.     xalign gui.dialogue_text_xalign
  195.     properties gui.text_properties("input_prompt")
  196.  
  197. style input:
  198.     xalign gui.dialogue_text_xalign
  199.     xmaximum gui.dialogue_width
  200.  
  201.  
  202. ## Choice screen ###############################################################
  203. ##
  204. ## This screen is used to display the in-game choices presented by the menu
  205. ## statement. The one parameter, items, is a list of objects, each with caption
  206. ## and action fields.
  207. ##
  208. ## https://www.renpy.org/doc/html/screen_special.html#choice
  209.  
  210. screen choice(items):
  211.     style_prefix "choice"
  212.  
  213.     vbox:
  214.         for i in items:
  215.             textbutton i.caption action i.action at choice_in
  216.  
  217.  
  218. ## When this is true, menu captions will be spoken by the narrator. When false,
  219. ## menu captions will be displayed as empty buttons.
  220. define config.narrator_menu = True
  221.  
  222.  
  223. style choice_vbox is vbox
  224. style choice_button is button
  225. style choice_button_text is button_text
  226.  
  227. style choice_vbox:
  228.     xalign 0.5
  229.     ypos 270
  230.     yanchor 0.5
  231.  
  232.     spacing gui.choice_spacing
  233.  
  234. style choice_button is default:
  235.     properties gui.button_properties("choice_button")
  236.  
  237. style choice_button_text is default:
  238.     properties gui.button_text_properties("choice_button")
  239.  
  240.  
  241. ## Quick Menu screen ###########################################################
  242. ##
  243. ## The quick menu is displayed in-game to provide easy access to the out-of-game
  244. ## menus.
  245.  
  246. screen quick_menu():
  247.  
  248.     ## Ensure this appears on top of other screens.
  249.     zorder 100
  250.  
  251.     if quick_menu:
  252.  
  253.         hbox:
  254.             style_prefix "quick"
  255.  
  256.             xalign 0.95
  257.             yalign 0.00
  258.  
  259.             textbutton _("History") action ShowMenu('history')
  260.             textbutton _("Skip") action Skip() alternate Skip(fast=True, confirm=True)
  261.             textbutton _("Auto") action Preference("auto-forward", "toggle")
  262.             textbutton _("Save") action ShowMenu('save')
  263.             textbutton _("Q.Save") action QuickSave()
  264.             textbutton _("Q.Load") action QuickLoad()
  265.             textbutton _("Prefs") action ShowMenu('preferences')
  266.  
  267.  
  268. ## This code ensures that the quick_menu screen is displayed in-game, whenever
  269. ## the player has not explicitly hidden the interface.
  270. init python:
  271.     config.overlay_screens.append("quick_menu")
  272.  
  273. default quick_menu = True
  274.  
  275. style quick_button is default
  276. style quick_button hover_sound "audio/sfx/hover.ogg"
  277. style quick_button_text is button_text
  278.  
  279. style quick_button:
  280.     properties gui.button_properties("quick_button")
  281.  
  282. style quick_button_text:
  283.     properties gui.button_text_properties("quick_button")
  284.  
  285.  
  286. ################################################################################
  287. ## Main and Game Menu Screens
  288. ################################################################################
  289.  
  290. ## Navigation screen ###########################################################
  291. ##
  292. ## This screen is included in the main and game menus, and provides navigation
  293. ## to other menus, and to start the game.
  294.  
  295. screen navigation():
  296.  
  297.     hbox:
  298.         style_prefix "navigation"
  299.  
  300.         xalign 0.5
  301.         ypos 0
  302.  
  303.         spacing 20
  304.  
  305.         if not main_menu:
  306.  
  307.             textbutton _("Save") action ShowMenu("save")
  308.  
  309.         textbutton _("Load") action ShowMenu("load")
  310.  
  311.         textbutton _("Settings") action ShowMenu("preferences")
  312.  
  313.         if _in_replay:
  314.  
  315.             textbutton _("End Replay") action EndReplay(confirm=True)
  316.  
  317.         elif not main_menu:
  318.  
  319.             textbutton _("History") action ShowMenu("history")
  320.  
  321.         textbutton _("Return") action Return()
  322.  
  323.         if not main_menu:
  324.             textbutton _("Main Menu") action MainMenu()
  325.  
  326.         #textbutton _("About") action ShowMenu("about") style "gm_button"
  327.  
  328.         if renpy.variant("pc"):
  329.  
  330.             ## Help isn't necessary or relevant to mobile devices.
  331.             #textbutton _("Help") action ShowMenu("help")
  332.  
  333.             ## The quit button is banned on iOS and unnecessary on Android.
  334.             textbutton _("Quit") action Quit(confirm=True)
  335.  
  336. screen bonus_navigation():
  337.  
  338.     vbox:
  339.         style_prefix "navigation"
  340.  
  341.         xpos 0
  342.         yalign 0.5
  343.  
  344.         spacing 10
  345.  
  346.         #textbutton _("Images") action ShowMenu("cg_gallery") style "gm_button"
  347.  
  348.         textbutton _("Music") action ShowMenu("music_room") style "gm_button"
  349.  
  350.         #textbutton _("Scenes") action ShowMenu("sceneroom") style "gm_button"
  351.  
  352.         textbutton _("Glossary") action ShowMenu("wiki_index") style "gm_button"
  353.  
  354.  
  355. init -2:
  356.     style gm_button is button:
  357.         xminimum 230
  358.         ymaximum 32
  359.         top_padding 5
  360.         left_padding 60
  361.     style gm_button background "gui/button/textbutton_ground2.png"
  362.     style gm_button idle_background "gui/button/textbutton_ground.png"
  363.     style gm_button hover_background "gui/button/textbutton_hover.png"
  364.     style gm_button selected_idle_background "gui/button/textbutton_selected_idle.png"
  365.     style gm_button selected_hover_background "gui/button/textbutton_hover.png"
  366.     style gm_button focus_mask "gui/button/textbutton_ground.png"
  367.     style gm_button hover_sound "audio/sfx/hover.ogg"
  368.     style gm_button activate_sound "audio/sfx/select.ogg"
  369.     style gm_button_text color "#777777"
  370.     style gm_button_text hover_color "#fff"
  371.     style gm_button_text selected_color "#fff"
  372.     style gm_button_text insensitive_color "#808080"
  373.     style gm_button_text font "fonts/ADAM.otf"
  374.  
  375.  
  376. ## Main Menu screen ############################################################
  377. ##
  378. ## Used to display the main menu when Ren'Py starts.
  379. ##
  380. ## https://www.renpy.org/doc/html/screen_special.html#main-menu
  381.  
  382. screen main_menu():
  383.  
  384.     ## This ensures that any other menu screen is replaced.
  385.     tag menu
  386.  
  387.     style_prefix "main_menu"
  388.  
  389.     add gui.main_menu_background
  390.     add "gui/overlay/main_menu.png"
  391.     vbox:
  392.         xpos 0
  393.         yalign 0.5
  394.         spacing 10
  395.  
  396.         textbutton "Start" action Start() style "mm_button"
  397.         textbutton "Load" action ShowMenu("load") style "mm_button"
  398.         if persistent.kokoroiyashi:
  399.             textbutton "Chapter Select" style "mm_button":
  400.                 action NullAction()
  401.                 hovered "gui/chap_tooltip.jpg"
  402.         else:
  403.             textbutton "Chapter Select" style "mm_button":
  404.                 action NullAction()
  405.                 hovered ShowTransient("the_img", img="gui/chap_tooltip.jpg", transition=dissolve)
  406.                 unhovered Hide("the_img", transition=dissolve)
  407.         textbutton "Settings" action ShowMenu("preferences") style "mm_button"
  408.         textbutton "Extras" action ShowMenu("extras") style "mm_button"
  409.         textbutton "Quit" action Quit(confirm=True) style "mm_button"
  410.  
  411. screen the_img(img):
  412.     add img pos (390, 310)
  413.  
  414.  
  415.  
  416. init -2:
  417.     style mm_button is button:
  418.         xminimum 380
  419.         ymaximum 74
  420.         top_padding 25
  421.         right_padding 50
  422.     style mm_button background None
  423.     style mm_button hover_background "mm_hover"
  424.     style mm_button selected_idle_background None
  425.     style mm_button selected_hover_background None
  426.     style mm_button focus_mask "gui/button/mm_hover.png"
  427.     style mm_button hover_sound "audio/sfx/hover.ogg"
  428.     style mm_button_text color "#777777"
  429.     style mm_button_text hover_color "#fff"
  430.     style mm_button_text selected_color "#fff"
  431.     style mm_button_text insensitive_color "#252525"
  432.     style mm_button_text font "fonts/ADAM.otf"
  433.  
  434.  
  435. ##EXTRAS
  436. screen extras():
  437.  
  438.     ## This ensures that any other menu screen is replaced.
  439.     tag menu
  440.  
  441.     style_prefix "main_menu"
  442.  
  443.     add gui.main_menu_background
  444.     vbox:
  445.         xpos 0
  446.         yalign 0.5
  447.         spacing 10
  448.  
  449.         #textbutton "Images" action Start() style "mm_button"
  450.         textbutton "Music" action ShowMenu("music_room") style "mm_button"
  451.         #textbutton "Scenes" action ShowMenu("preferences") style "mm_button"
  452.         textbutton "Glossary" action ShowMenu("wiki_index") style "mm_button"
  453.         textbutton "Afterparty" style "mm_button":
  454.              action [ Start("afterparty_tsumi"), SensitiveIf(persistent.completed_rin) ]
  455.         textbutton "Return" action ShowMenu("main_menu") style "mm_button"
  456.  
  457.  
  458. ## Game Menu screen ############################################################
  459. ##
  460. ## This lays out the basic common structure of a game menu screen. It's called
  461. ## with the screen title, and displays the background, title, and navigation.
  462. ##
  463. ## The scroll parameter can be None, or one of "viewport" or "vpgrid". When
  464. ## this screen is intended to be used with one or more children, which are
  465. ## transcluded (placed) inside it.
  466.  
  467. screen game_menu(title, scroll=None, yinitial=0.0):
  468.  
  469.     style_prefix "game_menu"
  470.  
  471.     add gui.game_menu_background
  472.  
  473.     use navigation
  474.  
  475.  
  476.  
  477. style game_menu_outer_frame is empty
  478. style game_menu_navigation_frame is empty
  479. style game_menu_content_frame is empty
  480. style game_menu_viewport is gui_viewport
  481. style game_menu_side is gui_side
  482. style game_menu_scrollbar is gui_vscrollbar
  483.  
  484. style game_menu_label is gui_label
  485. style game_menu_label_text is gui_label_text
  486.  
  487. style return_button is navigation_button
  488. style return_button_text is navigation_button_text
  489.  
  490. style game_menu_outer_frame:
  491.     bottom_padding 30
  492.     top_padding 120
  493.  
  494.     background "gui/overlay/game_menu.png"
  495.  
  496. style game_menu_navigation_frame:
  497.     xsize 280
  498.     yfill True
  499.  
  500. style game_menu_content_frame:
  501.     left_margin 40
  502.     right_margin 20
  503.     top_margin 10
  504.  
  505. style game_menu_viewport:
  506.     xsize 920
  507.  
  508. style game_menu_vscrollbar:
  509.     unscrollable gui.unscrollable
  510.  
  511. style game_menu_side:
  512.     spacing 10
  513.  
  514. style game_menu_label:
  515.     xpos 80
  516.     ypos 40
  517.     ysize 120
  518.  
  519. style game_menu_label_text:
  520.     size 40
  521.     color "#fff"
  522.     yalign 0.48
  523.  
  524. style return_button:
  525.     xpos gui.navigation_xpos
  526.     yalign 1.0
  527.     yoffset -30
  528.  
  529.  
  530. ##HAX MODE ENGAGED
  531. screen bonus_game_menu(title, scroll=None, yinitial=0.0):
  532.  
  533.     style_prefix "game_menu"
  534.  
  535.     add gui.game_menu_background
  536.  
  537.     frame:
  538.         style "game_menu_outer_frame"
  539.  
  540.         hbox:
  541.  
  542.             ## Reserve space for the navigation section.
  543.             frame:
  544.                 style "game_menu_navigation_frame"
  545.  
  546.             frame:
  547.                 style "game_menu_content_frame"
  548.  
  549.                 if scroll == "viewport":
  550.  
  551.                     viewport:
  552.                         yinitial yinitial
  553.                         scrollbars "vertical"
  554.                         mousewheel True
  555.                         draggable True
  556.                         pagekeys True
  557.  
  558.                         side_yfill True
  559.  
  560.                         vbox:
  561.                             transclude
  562.                 elif scroll == "viewport2":
  563.  
  564.                     viewport:
  565.                         yinitial 1.0
  566.  
  567.                         # Adjust size and position here.
  568.                         side_ysize 450
  569.                         side_ypos 0
  570.  
  571.                         scrollbars "vertical"
  572.                         mousewheel True
  573.                         draggable True
  574.  
  575.                         vbox:
  576.                             transclude
  577.  
  578.                 elif scroll == "vpgrid":
  579.  
  580.                     vpgrid:
  581.                         cols 1
  582.                         yinitial yinitial
  583.  
  584.                         scrollbars "vertical"
  585.                         mousewheel True
  586.                         draggable True
  587.                         pagekeys True
  588.  
  589.                         side_yfill True
  590.  
  591.                         transclude
  592.                 elif scroll == "vpgrid2":
  593.  
  594.                     vpgrid:
  595.                         cols 1
  596.                         yinitial 1.0
  597.                         # Adjust size and position here.
  598.                         side_ysize 450
  599.                         side_ypos 0
  600.  
  601.                         scrollbars "vertical"
  602.                         mousewheel True
  603.                         draggable True
  604.                         pagekeys True
  605.  
  606.                         side_yfill True
  607.  
  608.                         transclude
  609.  
  610.                 else:
  611.  
  612.                     transclude
  613.  
  614.     use bonus_navigation
  615.  
  616.     textbutton _("Return"):
  617.         style "gm_button"
  618.         ypos 550
  619.  
  620.         action ShowMenu("extras")
  621.     label title
  622.  
  623. ## About screen ################################################################
  624. ##
  625. ## This screen gives credit and copyright information about the game and Ren'Py.
  626. ##
  627. ## There's nothing special about this screen, and hence it also serves as an
  628. ## example of how to make a custom screen.
  629.  
  630. screen about():
  631.  
  632.     tag menu
  633.  
  634.     ## This use statement includes the game_menu screen inside this one. The
  635.     ## vbox child is then included inside the viewport inside the game_menu
  636.     ## screen.
  637.     use game_menu(_("About"), scroll="viewport"):
  638.  
  639.         style_prefix "about"
  640.  
  641.         vbox:
  642.  
  643.             label "[config.name!t]"
  644.             text _("Version [config.version!t]\n")
  645.  
  646.             ## gui.about is usually set in options.rpy.
  647.             if gui.about:
  648.                 text "[gui.about!t]\n"
  649.  
  650.             text _("{font=fonts/Accidental.ttf}Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]{/font}")
  651.  
  652.  
  653. ## This is redefined in options.rpy to add text to the about screen.
  654. define gui.about = ""
  655.  
  656.  
  657. style about_label is gui_label
  658. style about_label_text is gui_label_text
  659. style about_text is gui_text
  660.  
  661. style about_label_text:
  662.     size gui.label_text_size
  663.  
  664.  
  665. ## Load and Save screens #######################################################
  666. ##
  667. ## These screens are responsible for letting the player save the game and load
  668. ## it again. Since they share nearly everything in common, both are implemented
  669. ## in terms of a third screen, file_slots.
  670. ##
  671. ## https://www.renpy.org/doc/html/screen_special.html#save https://
  672. ## www.renpy.org/doc/html/screen_special.html#load
  673.  
  674. screen save():
  675.  
  676.     tag menu
  677.     add gui.game_menu_background
  678.     add "gui/save_bg.png"
  679.     use file_slots
  680.     use navigation
  681.  
  682.  
  683.  
  684. screen load():
  685.  
  686.     tag menu
  687.     add gui.game_menu_background
  688.     add "gui/load_bg.png"
  689.     use file_slots
  690.     use navigation
  691.  
  692.  
  693.  
  694. screen file_slots:
  695.     viewport:
  696.         scrollbars "vertical"
  697.         xpos 708
  698.         ypos 111
  699.         mousewheel True
  700.         #side_yfill True
  701.  
  702.         vbox:
  703.             spacing 20
  704.             for i in range(0, 30):
  705.  
  706.                 $ slot = i + 1
  707.  
  708.                 button:
  709.                     action FileAction(slot)
  710.                     hovered ShowTransient("sl_image", img=FileScreenshot(slot))
  711.                     unhovered Hide("sl_image")
  712.                     style "slott_button"
  713.  
  714.                     has hbox
  715.  
  716.                     spacing 2
  717.  
  718.                     text FileTime(slot, format=_("{#file_time}%b %d "), empty=_("Empty Slot")):
  719.                         style "slot_time_text"
  720.  
  721.                     text FileSaveName(slot):
  722.                         style "slot_name_text"
  723.  
  724.                     key "save_delete" action FileDelete(slot)
  725.  
  726. screen sl_image(img):
  727.     add img pos (23, 191)
  728.  
  729. style page_label is gui_label
  730. style page_label_text is gui_label_text
  731. style page_button is gui_button
  732. style page_button_text is gui_button_text
  733. style slot_button_text is gui_button_text
  734. style slot_time_text is slot_button_text
  735. style slot_name_text is slot_button_text
  736. init -2:
  737.     style slott_button is button:
  738.         xminimum 500
  739.         ymaximum 60
  740.         left_padding 10
  741.         top_padding 20
  742.     style slott_button background "gui/button/slot_ground_background.png"
  743.     style slott_button idle_background "gui/button/slot_idle_background.png"
  744.     style slott_button hover_background "gui/button/slot_hover_background.png"
  745.     style slott_button focus_mask "gui/button/slot_ground_background.png"
  746.     style slott_button hover_sound "audio/sfx/hover.ogg"
  747.  
  748. style page_label:
  749.     xpadding 50
  750.     ypadding 3
  751.  
  752. style page_label_text:
  753.     text_align 0.5
  754.     layout "subtitle"
  755.     hover_color gui.hover_color
  756.  
  757. style page_button:
  758.     properties gui.button_properties("page_button")
  759.  
  760. style page_button_text:
  761.     properties gui.button_text_properties("page_button")
  762.  
  763. style slot_button:
  764.     properties gui.button_properties("slot_button")
  765.  
  766. style slot_button_text:
  767.     properties gui.button_text_properties("slot_button")
  768.  
  769.  
  770. ## Preferences screen ##########################################################
  771. ##
  772. ## The preferences screen allows the player to configure the game to better suit
  773. ## themselves.
  774. ##
  775. ## https://www.renpy.org/doc/html/screen_special.html#preferences
  776.  
  777. screen preferences():
  778.  
  779.     tag menu
  780.  
  781.     add gui.game_menu_background
  782.     add "gui/sett.png":
  783.         xpos 0
  784.         ypos 65
  785.  
  786.     use navigation
  787.  
  788.     vbox:
  789.         xpos 37
  790.         ypos 128
  791.         spacing 30
  792.         box_wrap True
  793.  
  794.         vbox:
  795.             style_prefix "radio"
  796.             label _("Display Type")
  797.             hbox:
  798.                 textbutton _("WINDOWED") action Preference("display", "any window")
  799.                 textbutton _("FULLSCREEN") action Preference("display", "fullscreen")
  800.  
  801.         vbox:
  802.             style_prefix "radio"
  803.  
  804.             label _("Window Size")
  805.             hbox:
  806.                 textbutton "SMALL" action Preference("display", 0.6)
  807.                 textbutton "MEDIUM" action Preference("display", 0.8)
  808.                 textbutton "LARGE" action Preference("display", 1.0)
  809.  
  810.         vbox:
  811.             style_prefix "radio"
  812.             label _("Skip")
  813.             hbox:
  814.                 textbutton _("READ TEXT") action Preference("skip", "seen")
  815.                 textbutton _("ALL TEXT") action Preference("skip", "all")
  816.                 textbutton _("TRANSITIONS") action InvertSelected(Preference("transitions", "toggle"))
  817.         vbox:
  818.             style_prefix "radio"
  819.             label _("Outfit Type")
  820.             hbox:
  821.                 textbutton _("ORIGINAL") action SetField(persistent, "dr_cloth", False)
  822.                 textbutton _("LOST CODE") action SetField(persistent, "dr_cloth", True)
  823.         ## Additional vboxes of type "radio_pref" or "check_pref" can be
  824.         ## added here, to add additional creator-defined preferences.
  825.  
  826.         #null width (4 * gui.pref_spacing)
  827.  
  828.     vbox:
  829.         xpos 640
  830.         ypos 128
  831.         style_prefix "slider"
  832.  
  833.         vbox:
  834.             spacing 15
  835.  
  836.             label _("Text Speed")
  837.  
  838.             bar value Preference("text speed")
  839.  
  840.             label _("Auto-Forward Time")
  841.  
  842.             bar value Preference("auto-forward time")
  843.  
  844.             if config.has_music:
  845.                 label _("Music Volume")
  846.  
  847.                 hbox:
  848.                     bar value Preference("music volume")
  849.  
  850.             if config.has_sound:
  851.  
  852.                 label _("Sound Volume")
  853.  
  854.                 hbox:
  855.                     bar value Preference("sound volume")
  856.  
  857.                     if config.sample_sound:
  858.                         textbutton _("Test") action Play("sound", config.sample_sound)
  859.  
  860.  
  861.             if config.has_voice:
  862.                 label _("Ambient Volume")
  863.  
  864.                 hbox:
  865.                     bar value Preference("ambient volume")
  866.  
  867.                     if config.sample_voice:
  868.                         textbutton _("Test") action Play("voice", config.sample_voice)
  869.  
  870.             if config.has_music or config.has_sound or config.has_voice:
  871.                 null height gui.pref_spacing
  872.  
  873.         textbutton _("Mute All"):
  874.             action Preference("all mute", "toggle")
  875.             style "mute_all_button"
  876.  
  877.  
  878. style pref_label is gui_label
  879. style pref_label_text is gui_label_text
  880. style pref_vbox is vbox
  881.  
  882. style radio_label is pref_label
  883. style radio_label_text is pref_label_text
  884. style radio_button is gui_button
  885. style radio_button_text is gui_button_text
  886. style radio_vbox is pref_vbox
  887.  
  888. style check_label is pref_label
  889. style check_label_text is pref_label_text
  890. style check_button is gui_button
  891. style check_button_text is gui_button_text
  892. style check_vbox is pref_vbox
  893.  
  894. style slider_label is pref_label
  895. style slider_label_text is pref_label_text
  896. style slider_slider is gui_slider
  897. style slider_button is gui_button
  898. style slider_button_text is gui_button_text
  899. style slider_pref_vbox is pref_vbox
  900.  
  901. style mute_all_button is check_button
  902. style mute_all_button_text is check_button_text
  903.  
  904. style pref_label:
  905.     top_margin gui.pref_spacing
  906.     bottom_margin 2
  907.  
  908. style pref_label_text:
  909.     yalign 1.0
  910.  
  911. style pref_vbox:
  912.     xsize 225
  913.  
  914. style radio_vbox:
  915.     spacing gui.pref_button_spacing
  916.  
  917. style radio_button:
  918.     properties gui.button_properties("radio_button")
  919.  
  920.  
  921. style radio_button_text:
  922.     properties gui.button_text_properties("radio_button")
  923.  
  924. style check_vbox:
  925.     spacing gui.pref_button_spacing
  926.  
  927. style check_button:
  928.     properties gui.button_properties("check_button")
  929.  
  930.  
  931. style check_button_text:
  932.     properties gui.button_text_properties("check_button")
  933.  
  934. style slider_slider:
  935.     xsize 480
  936.  
  937. style slider_button:
  938.     properties gui.button_properties("slider_button")
  939.     yalign 0.5
  940.     left_margin 10
  941.  
  942. style slider_button_text:
  943.     properties gui.button_text_properties("slider_button")
  944.  
  945. style slider_vbox:
  946.     xsize 450
  947.  
  948.  
  949. ## History screen ##############################################################
  950. ##
  951. ## This is a screen that displays the dialogue history to the player. While
  952. ## there isn't anything special about this screen, it does have to access the
  953. ## dialogue history stored in _history_list.
  954. ##
  955. ## https://www.renpy.org/doc/html/history.html
  956.  
  957. screen history():
  958.  
  959.     tag menu
  960.  
  961.     ## Avoid predicting this screen, as it can be very large.
  962.     predict False
  963.  
  964.     use game_menu(_("History"), scroll=("vpgrid2" if gui.history_height else "viewport2"), yinitial=1.0):
  965.  
  966.         style_prefix "history"
  967.  
  968.         for h in _history_list:
  969.  
  970.             window:
  971.  
  972.                 ## This lays things out properly if history_height is None.
  973.                 has fixed:
  974.                     yfit True
  975.  
  976.                 if h.who:
  977.  
  978.                     label h.who:
  979.                         style "history_name"
  980.  
  981.                         ## Take the color of the who text from the Character, if
  982.                         ## set.
  983.                         if "color" in h.who_args:
  984.                             text_color h.who_args["color"]
  985.  
  986.                 $ what = renpy.filter_text_tags(h.what, allow="font" "color" "i")
  987.                 text what
  988.  
  989.         if not _history_list:
  990.             label _("{font=fonts/Anivers.otf}The dialogue history is empty.{/font}")
  991.  
  992.  
  993. ## This determines what tags are allowed to be displayed on the history screen.
  994.  
  995. define gui.history_allow_tags = set()
  996.  
  997.  
  998. style history_window is empty
  999.  
  1000. style history_name is gui_label
  1001. style history_name_text:
  1002.     font "fonts/ADAM.otf"
  1003.     size 18
  1004. style history_text:
  1005.     font "fonts/Anivers.otf"
  1006.     size 18
  1007.  
  1008. style history_label is gui_label
  1009. style history_label_text is gui_label_text
  1010.  
  1011. style history_window:
  1012.     xfill True
  1013.     ysize gui.history_height
  1014.  
  1015. style history_name:
  1016.     xpos gui.history_name_xpos
  1017.     xanchor gui.history_name_xalign
  1018.     ypos gui.history_name_ypos
  1019.     xsize gui.history_name_width
  1020.  
  1021. style history_name_text:
  1022.     min_width gui.history_name_width
  1023.     text_align gui.history_name_xalign
  1024.  
  1025. style history_text:
  1026.     xpos gui.history_text_xpos
  1027.     ypos gui.history_text_ypos
  1028.     xanchor gui.history_text_xalign
  1029.     xsize gui.history_text_width
  1030.     min_width gui.history_text_width
  1031.     text_align gui.history_text_xalign
  1032.     layout ("subtitle" if gui.history_text_xalign else "tex")
  1033.     font "fonts/Anivers.otf"
  1034.  
  1035. style history_label:
  1036.     xfill True
  1037.  
  1038. style history_label_text:
  1039.     xalign 0.5
  1040.  
  1041.  
  1042. ## Help screen #################################################################
  1043. ##
  1044. ## A screen that gives information about key and mouse bindings. It uses other
  1045. ## screens (keyboard_help, mouse_help, and gamepad_help) to display the actual
  1046. ## help.
  1047.  
  1048. screen help():
  1049.  
  1050.     tag menu
  1051.  
  1052.     default device = "keyboard"
  1053.  
  1054.     use game_menu(_("Help"), scroll="viewport"):
  1055.  
  1056.         style_prefix "help"
  1057.  
  1058.         vbox:
  1059.             spacing 10
  1060.  
  1061.             hbox:
  1062.  
  1063.                 textbutton _("Keyboard") action SetScreenVariable("device", "keyboard")
  1064.                 textbutton _("Mouse") action SetScreenVariable("device", "mouse")
  1065.  
  1066.                 if GamepadExists():
  1067.                     textbutton _("Gamepad") action SetScreenVariable("device", "gamepad")
  1068.  
  1069.             if device == "keyboard":
  1070.                 use keyboard_help
  1071.             elif device == "mouse":
  1072.                 use mouse_help
  1073.             elif device == "gamepad":
  1074.                 use gamepad_help
  1075.  
  1076.  
  1077. screen keyboard_help():
  1078.  
  1079.     hbox:
  1080.         label _("Enter")
  1081.         text _("Advances dialogue and activates the interface.")
  1082.  
  1083.     hbox:
  1084.         label _("Space")
  1085.         text _("Advances dialogue without selecting choices.")
  1086.  
  1087.     hbox:
  1088.         label _("Arrow Keys")
  1089.         text _("Navigate the interface.")
  1090.  
  1091.     hbox:
  1092.         label _("Escape")
  1093.         text _("Accesses the game menu.")
  1094.  
  1095.     hbox:
  1096.         label _("Ctrl")
  1097.         text _("Skips dialogue while held down.")
  1098.  
  1099.     hbox:
  1100.         label _("Tab")
  1101.         text _("Toggles dialogue skipping.")
  1102.  
  1103.     hbox:
  1104.         label _("Page Up")
  1105.         text _("Rolls back to earlier dialogue.")
  1106.  
  1107.     hbox:
  1108.         label _("Page Down")
  1109.         text _("Rolls forward to later dialogue.")
  1110.  
  1111.     hbox:
  1112.         label "H"
  1113.         text _("Hides the user interface.")
  1114.  
  1115.     hbox:
  1116.         label "S"
  1117.         text _("Takes a screenshot.")
  1118.  
  1119.     hbox:
  1120.         label "V"
  1121.         text _("Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}.")
  1122.  
  1123.  
  1124. screen mouse_help():
  1125.  
  1126.     hbox:
  1127.         label _("Left Click")
  1128.         text _("Advances dialogue and activates the interface.")
  1129.  
  1130.     hbox:
  1131.         label _("Middle Click")
  1132.         text _("Hides the user interface.")
  1133.  
  1134.     hbox:
  1135.         label _("Right Click")
  1136.         text _("Accesses the game menu.")
  1137.  
  1138.     hbox:
  1139.         label _("Mouse Wheel Up\nClick Rollback Side")
  1140.         text _("Rolls back to earlier dialogue.")
  1141.  
  1142.     hbox:
  1143.         label _("Mouse Wheel Down")
  1144.         text _("Rolls forward to later dialogue.")
  1145.  
  1146.  
  1147. screen gamepad_help():
  1148.  
  1149.     hbox:
  1150.         label _("Right Trigger\nA/Bottom Button")
  1151.         text _("Advances dialogue and activates the interface.")
  1152.  
  1153.     hbox:
  1154.         label _("Left Trigger\nLeft Shoulder")
  1155.         text _("Rolls back to earlier dialogue.")
  1156.  
  1157.     hbox:
  1158.         label _("Right Shoulder")
  1159.         text _("Rolls forward to later dialogue.")
  1160.  
  1161.  
  1162.     hbox:
  1163.         label _("D-Pad, Sticks")
  1164.         text _("Navigate the interface.")
  1165.  
  1166.     hbox:
  1167.         label _("Start, Guide")
  1168.         text _("Accesses the game menu.")
  1169.  
  1170.     hbox:
  1171.         label _("Y/Top Button")
  1172.         text _("Hides the user interface.")
  1173.  
  1174.     textbutton _("Calibrate") action GamepadCalibrate()
  1175.  
  1176.  
  1177. style help_button is gui_button
  1178. style help_button_text is gui_button_text
  1179. style help_label is gui_label
  1180. style help_label_text is gui_label_text
  1181. style help_text is gui_text
  1182.  
  1183. style help_button:
  1184.     properties gui.button_properties("help_button")
  1185.     xmargin 8
  1186.  
  1187. style help_button_text:
  1188.     properties gui.button_text_properties("help_button")
  1189.  
  1190. style help_label:
  1191.     xsize 250
  1192.     right_padding 20
  1193.  
  1194. style help_label_text:
  1195.     size gui.text_size
  1196.     xalign 1.0
  1197.     text_align 1.0
  1198.  
  1199.  
  1200.  
  1201. ################################################################################
  1202. ## Additional screens
  1203. ################################################################################
  1204.  
  1205.  
  1206. ## Confirm screen ##############################################################
  1207. ##
  1208. ## The confirm screen is called when Ren'Py wants to ask the player a yes or no
  1209. ## question.
  1210. ##
  1211. ## https://www.renpy.org/doc/html/screen_special.html#confirm
  1212.  
  1213. screen confirm(message, yes_action, no_action):
  1214.  
  1215.     ## Ensure other screens do not get input while this screen is displayed.
  1216.     modal True
  1217.  
  1218.     zorder 200
  1219.  
  1220.     style_prefix "confirm"
  1221.  
  1222.     add "gui/overlay/confirm.png"
  1223.  
  1224.     frame:
  1225.  
  1226.         vbox:
  1227.             xalign .5
  1228.             yalign .5
  1229.             spacing 30
  1230.  
  1231.             label _(message):
  1232.                 style "confirm_prompt"
  1233.                 xalign 0.5
  1234.  
  1235.             hbox:
  1236.                 xalign 0.5
  1237.                 spacing 100
  1238.  
  1239.                 textbutton _("Yes") action yes_action
  1240.                 textbutton _("No") action no_action
  1241.  
  1242.     ## Right-click and escape answer "no".
  1243.     key "game_menu" action no_action
  1244.  
  1245.  
  1246. style confirm_frame is gui_frame
  1247. style confirm_prompt is gui_prompt
  1248. style confirm_prompt_text is gui_prompt_text
  1249. style confirm_button is gui_medium_button
  1250. style confirm_button_text is gui_medium_button_text
  1251.  
  1252. style confirm_frame:
  1253.     background Frame([ "gui/confirm_frame.png", "gui/frame.png"], gui.confirm_frame_borders, tile=gui.frame_tile)
  1254.     padding gui.confirm_frame_borders.padding
  1255.     xalign .5
  1256.     yalign .5
  1257.  
  1258. style confirm_prompt_text:
  1259.     text_align 0.5
  1260.     layout "subtitle"
  1261.  
  1262. style confirm_button:
  1263.     properties gui.button_properties("confirm_button")
  1264.  
  1265. style confirm_button_text:
  1266.     properties gui.button_text_properties("confirm_button")
  1267.  
  1268.  
  1269. ## Skip indicator screen #######################################################
  1270. ##
  1271. ## The skip_indicator screen is displayed to indicate that skipping is in
  1272. ## progress.
  1273. ##
  1274. ## https://www.renpy.org/doc/html/screen_special.html#skip-indicator
  1275.  
  1276. screen skip_indicator():
  1277.  
  1278.     zorder 100
  1279.     style_prefix "skip"
  1280.  
  1281.     frame:
  1282.  
  1283.         hbox:
  1284.             spacing 6
  1285.  
  1286.             text _("Skipping")
  1287.  
  1288.             text "▸" at delayed_blink(0.0, 1.0) style "skip_triangle"
  1289.             text "▸" at delayed_blink(0.2, 1.0) style "skip_triangle"
  1290.             text "▸" at delayed_blink(0.4, 1.0) style "skip_triangle"
  1291.  
  1292.  
  1293. ## This transform is used to blink the arrows one after another.
  1294. transform delayed_blink(delay, cycle):
  1295.     alpha .5
  1296.  
  1297.     pause delay
  1298.  
  1299.     block:
  1300.         linear .2 alpha 1.0
  1301.         pause .2
  1302.         linear .2 alpha 0.5
  1303.         pause (cycle - .4)
  1304.         repeat
  1305.  
  1306.  
  1307. style skip_frame is empty
  1308. style skip_text is gui_text
  1309. style skip_triangle is skip_text
  1310.  
  1311. style skip_frame:
  1312.     ypos gui.skip_ypos
  1313.     background Frame("gui/skip.png", gui.skip_frame_borders, tile=gui.frame_tile)
  1314.     padding gui.skip_frame_borders.padding
  1315.  
  1316. style skip_text:
  1317.     size gui.notify_text_size
  1318.  
  1319. style skip_triangle:
  1320.     ## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE
  1321.     ## glyph in it.
  1322.     font "DejaVuSans.ttf"
  1323.     size gui.notify_text_size
  1324.     line_leading -5
  1325.  
  1326.  
  1327. ## Notify screen ###############################################################
  1328. ##
  1329. ## The notify screen is used to show the player a message. (For example, when
  1330. ## the game is quicksaved or a screenshot has been taken.)
  1331. ##
  1332. ## https://www.renpy.org/doc/html/screen_special.html#notify-screen
  1333.  
  1334. screen notify(message):
  1335.  
  1336.     zorder 100
  1337.     style_prefix "notify"
  1338.  
  1339.     frame at notify_appear:
  1340.         text "[message!tq]"
  1341.  
  1342.     timer 3.25 action Hide('notify')
  1343.  
  1344.  
  1345. transform notify_appear:
  1346.     on show:
  1347.         alpha 0
  1348.         linear .25 alpha 1.0
  1349.     on hide:
  1350.         linear .5 alpha 0.0
  1351.  
  1352.  
  1353. style notify_frame is empty
  1354. style notify_text is gui_text
  1355.  
  1356. style notify_frame:
  1357.     ypos gui.notify_ypos
  1358.  
  1359.     background Frame("gui/notify.png", gui.notify_frame_borders, tile=gui.frame_tile)
  1360.     padding gui.notify_frame_borders.padding
  1361.  
  1362. style notify_text:
  1363.     properties gui.text_properties("notify")
  1364.  
  1365.  
  1366. ## NVL screen ##################################################################
  1367. ##
  1368. ## This screen is used for NVL-mode dialogue and menus.
  1369. ##
  1370. ## https://www.renpy.org/doc/html/screen_special.html#nvl
  1371.  
  1372.  
  1373. screen nvl(dialogue, items=None):
  1374.  
  1375.     window:
  1376.         style "nvl_window"
  1377.         top_padding 100
  1378.  
  1379.         has vbox:
  1380.             spacing gui.nvl_spacing
  1381.  
  1382.         ## Displays dialogue in either a vpgrid or the vbox.
  1383.         if gui.nvl_height:
  1384.  
  1385.             vpgrid:
  1386.                 cols 1
  1387.                 yinitial 1.0
  1388.  
  1389.                 use nvl_dialogue(dialogue)
  1390.  
  1391.         else:
  1392.  
  1393.             use nvl_dialogue(dialogue)
  1394.  
  1395.         ## Displays the menu, if given. The menu may be displayed incorrectly if
  1396.         ## config.narrator_menu is set to True, as it is above.
  1397.         for i in items:
  1398.  
  1399.             textbutton i.caption:
  1400.                 action i.action
  1401.                 style "nvl_button"
  1402.  
  1403.     add SideImage() xalign 0.0 yalign 1.0
  1404.  
  1405.  
  1406. screen nvl_dialogue(dialogue):
  1407.  
  1408.     for d in dialogue:
  1409.  
  1410.         window:
  1411.             id d.window_id
  1412.  
  1413.             fixed:
  1414.                 yfit gui.nvl_height is None
  1415.  
  1416.                 if d.who is not None:
  1417.  
  1418.                     text d.who:
  1419.                         id d.who_id
  1420.  
  1421.                 text d.what:
  1422.                     id d.what_id
  1423.  
  1424.  
  1425. ## This controls the maximum number of NVL-mode entries that can be displayed at
  1426. ## once.
  1427. define config.nvl_list_length = gui.nvl_list_length
  1428.  
  1429. style nvl_window is default
  1430. style nvl_entry is default
  1431.  
  1432. style nvl_label is say_label
  1433. style nvl_dialogue is say_dialogue
  1434.  
  1435. style nvl_button is button
  1436. style nvl_button_text is button_text
  1437.  
  1438. style nvl_window:
  1439.     xfill True
  1440.     yfill True
  1441.  
  1442.     background "gui/nvl.png"
  1443.     padding gui.nvl_borders.padding
  1444.  
  1445. style nvl_entry:
  1446.     xfill True
  1447.     ysize gui.nvl_height
  1448.  
  1449. style nvl_label:
  1450.     xpos gui.nvl_name_xpos
  1451.     xanchor gui.nvl_name_xalign
  1452.     ypos gui.nvl_name_ypos
  1453.     yanchor 0.0
  1454.     xsize gui.nvl_name_width
  1455.     min_width gui.nvl_name_width
  1456.     text_align gui.nvl_name_xalign
  1457.  
  1458. style nvl_dialogue:
  1459.     xpos gui.nvl_text_xpos
  1460.     xanchor gui.nvl_text_xalign
  1461.     ypos gui.nvl_text_ypos
  1462.     xsize gui.nvl_text_width
  1463.     min_width gui.nvl_text_width
  1464.     text_align gui.nvl_text_xalign
  1465.     layout ("subtitle" if gui.nvl_text_xalign else "tex")
  1466.  
  1467. style nvl_thought:
  1468.     xpos gui.nvl_thought_xpos
  1469.     xanchor gui.nvl_thought_xalign
  1470.     ypos gui.nvl_thought_ypos
  1471.     xsize gui.nvl_thought_width
  1472.     min_width gui.nvl_thought_width
  1473.     text_align gui.nvl_thought_xalign
  1474.     layout ("subtitle" if gui.nvl_text_xalign else "tex")
  1475.  
  1476. style nvl_button:
  1477.     properties gui.button_properties("nvl_button")
  1478.     xpos gui.nvl_button_xpos
  1479.     xanchor gui.nvl_button_xalign
  1480.  
  1481. style nvl_button_text:
  1482.     properties gui.button_text_properties("nvl_button")
  1483.  
  1484.  
  1485.  
  1486. screen interlude:
  1487.     add "saferoom"
  1488.     vbox:
  1489.         xpos gui.navigation_xpos
  1490.         yalign 0.5
  1491.         spacing gui.navigation_spacing
  1492.  
  1493.         textbutton _("Next Chapter") action Return()
  1494.         textbutton _("Save Game") action ShowMenu("save")
  1495.         textbutton _("Load Game") action ShowMenu("load")
  1496.         textbutton _("Return to Menu") action MainMenu(confirm=True)
  1497.  
  1498.  
  1499. screen chapterselect:
  1500.     use chapterselect_1
  1501.  
  1502. screen chapterselect_1:
  1503.     tag chapmenu
  1504.     add "bg/hansei.jpg"
  1505.     vbox:
  1506.         xpos 0.0
  1507.         yalign 0.5
  1508.         spacing gui.navigation_spacing
  1509.  
  1510.         textbutton _("Select Path") action Jump("rinroute") style "mm_button"
  1511.         textbutton _("Next Path") action Show("chapterselect_2") style "mm_button"
  1512.  
  1513. screen chapterselect_2:
  1514.     tag chapmenu
  1515.     add "bg/tsuku.jpg"
  1516.     vbox:
  1517.         xpos 0.0
  1518.         yalign 0.5
  1519.         spacing gui.navigation_spacing
  1520.  
  1521.         textbutton _("Select Path") action Jump("kenroute") style "mm_button"
  1522.         if persistent.completed_rin_and_ken:
  1523.             textbutton _("Next Path") action Show("chapterselect_3") style "mm_button"
  1524.         textbutton _("Prev Path") action Show("chapterselect_1") style "mm_button"
  1525.  
  1526. screen chapterselect_3:
  1527.     tag chapmenu
  1528.     add "bg/harashi.jpg"
  1529.     vbox:
  1530.         xpos 0.0
  1531.         yalign 0.5
  1532.         spacing gui.navigation_spacing
  1533.  
  1534.         textbutton _("Select Path") action Jump("sukuroute") style "mm_button"
  1535.         textbutton _("Prev Path") action Show("chapterselect_2") style "mm_button"
  1536.  
  1537.  
  1538. ##Musicroom
  1539. init python:
  1540.     mr = MusicRoom(fadeout=1.0)
  1541.  
  1542.     mr.add("Akasakura")
  1543.     mr.add("Black Clouds")
  1544.     mr.add("Coffee Break")
  1545.     mr.add("Creepy Hollow")
  1546.     mr.add("Depths of Chaos")
  1547.     mr.add("Gregorian Chant")
  1548.     mr.add("Happy Days")
  1549.     mr.add("In Doubt")
  1550.     mr.add("Darkness")
  1551.     mr.add("Insidious")
  1552.     mr.add("Kamunabi")
  1553.     mr.add("Mending")
  1554.     mr.add("One More Reflection")
  1555.     mr.add("Ossuary")
  1556.     mr.add("Past the Edge")
  1557.     mr.add("Piano Lullaby")
  1558.     mr.add("Reflection")
  1559.     mr.add("Resting Place", always_unlocked=True)
  1560.     mr.add("Shadowlands")
  1561.     mr.add("Summer Chill")
  1562.     mr.add("Swaying Daisies")
  1563.     mr.add("Take Four")
  1564.     mr.add("The Big Sky")
  1565.  
  1566.  
  1567. # Step 3. Create the music room screen.
  1568. screen music_room:
  1569.     tag menu
  1570.     use bonus_game_menu(_("Music Room")):
  1571.         vbox:
  1572.             spacing 2
  1573.             textbutton "Akasakura" action mr.Play("Akasakura") style "mr_button"
  1574.             textbutton "Black Clouds" action mr.Play("Black Clouds") style "mr_button"
  1575.             textbutton "Coffee Break" action mr.Play("Coffee Break") style "mr_button"
  1576.             textbutton "Creepy Hollow" action mr.Play("Creepy Hollow") style "mr_button"
  1577.             textbutton "Depths of Chaos" action mr.Play("Depths of Chaos") style "mr_button"
  1578.             textbutton "Gregorian Chant" action mr.Play("Gregorian Chant") style "mr_button"
  1579.             textbutton "Happy Days" action mr.Play("Happy Days") style "mr_button"
  1580.             textbutton "In Doubt" action mr.Play("In Doubt") style "mr_button"
  1581.             textbutton "In the Darkness" action mr.Play("Darkness") style "mr_button"
  1582.             textbutton "Insidious" action mr.Play("Insidious") style "mr_button"
  1583.             textbutton "Kamunabi" action mr.Play("Kamunabi") style "mr_button"
  1584.         vbox:
  1585.             xalign 0.5
  1586.             spacing 2
  1587.             textbutton "Mending" action mr.Play("Mending") style "mr_button"
  1588.             textbutton "One More Reflection" action mr.Play("One More Reflection") style "mr_button"
  1589.             textbutton "Past the Edge" action mr.Play("Past the Edge") style "mr_button"
  1590.             textbutton "Reflection" action mr.Play("Reflection") style "mr_button"
  1591.             textbutton "Resting Place" action mr.Play("Resting Place") style "mr_button"
  1592.             textbutton "Piano Lullaby" action mr.Play("Piano Lullaby") style "mr_button"
  1593.             textbutton "Shadowlands" action mr.Play("Shadowlands") style "mr_button"
  1594.             textbutton "Summer Chill" action mr.Play("Summer Chill") style "mr_button"
  1595.             textbutton "Swaying Daisies" action mr.Play("Swaying Daisies") style "mr_button"
  1596.             textbutton "Take Four" action mr.Play("Take Four") style "mr_button"
  1597.             textbutton "The Big Sky" action mr.Play("The Big Sky") style "mr_button"
  1598.  
  1599.     hbox:
  1600.         spacing 20
  1601.         xpos 350 ypos 550
  1602.         textbutton "Play" action mr.Play()
  1603.         textbutton "Next Track" action mr.Next()
  1604.         textbutton "Previous Track" action mr.Previous()
  1605.         textbutton "Stop" action mr.Stop()
  1606.  
  1607.     # Start the music playing on entry to the music room.
  1608.     on "replace" action mr.Play()
  1609.  
  1610.     # Restore the main menu music upon leaving.
  1611.     on "replaced" action Play("music", "Resting Place")
  1612. init -2:
  1613.     style mr_button is button:
  1614.         xminimum 5
  1615.         top_padding 6
  1616.     style mr_button background "gui/button/mr_box_idle.png"
  1617.     style mr_button insensitive_background "gui/button/mr_box_idle.png"
  1618.     style mr_button hover_background "gui/button/mr_box_hover.png"
  1619.     style mr_button selected_idle_background "gui/button/mr_box_sel_idle.png"
  1620.     style mr_button selected_hover_background "gui/button/mr_box_hover.png"
  1621.     style mr_button focus_mask "gui/button/mr_box_hover.png"
  1622.     style mr_button hover_sound "audio/sfx/hover.ogg"
  1623.     style mr_button_text color "#888888"
  1624.     style mr_button_text hover_color "#fff"
  1625.     style mr_button_text selected_color "#fff"
  1626.     style mr_button_text insensitive_color "#808080"
  1627. ################################################################################
  1628. ## Mobile Variants
  1629. ################################################################################
  1630.  
  1631. style pref_vbox:
  1632.     variant "medium"
  1633.     xsize 450
  1634.  
  1635. ## Since a mouse may not be present, we replace the quick menu with a version
  1636. ## that uses fewer and bigger buttons that are easier to touch.
  1637. screen quick_menu():
  1638.     variant "touch"
  1639.  
  1640.     zorder 100
  1641.  
  1642.     hbox:
  1643.         style_prefix "quick"
  1644.  
  1645.         xalign 0.5
  1646.         yalign 1.0
  1647.  
  1648.         textbutton _("Back") action Rollback()
  1649.         textbutton _("Skip") action Skip() alternate Skip(fast=True, confirm=True)
  1650.         textbutton _("Auto") action Preference("auto-forward", "toggle")
  1651.         textbutton _("Menu") action ShowMenu()
  1652.  
  1653.  
  1654. style window:
  1655.     variant "small"
  1656.     background "gui/phone/textbox.png"
  1657.  
  1658. style radio_button:
  1659.     variant "small"
  1660.     foreground "gui/phone/button/check_[prefix_]foreground.png"
  1661.  
  1662. style check_button:
  1663.     variant "small"
  1664.     foreground "gui/phone/button/check_[prefix_]foreground.png"
  1665.  
  1666. style nvl_window:
  1667.     variant "small"
  1668.     background "gui/phone/nvl.png"
  1669.  
  1670. style main_menu_frame:
  1671.     variant "small"
  1672.     background "gui/phone/overlay/main_menu.png"
  1673.  
  1674. style game_menu_outer_frame:
  1675.     variant "small"
  1676.     background "gui/phone/overlay/game_menu.png"
  1677.  
  1678. style game_menu_navigation_frame:
  1679.     variant "small"
  1680.     xsize 340
  1681.  
  1682. style game_menu_content_frame:
  1683.     variant "small"
  1684.     top_margin 0
  1685.  
  1686. style pref_vbox:
  1687.     variant "small"
  1688.     xsize 400
  1689.  
  1690. style bar:
  1691.     variant "small"
  1692.     ysize gui.bar_size
  1693.     left_bar Frame("gui/phone/bar/left.png", gui.bar_borders, tile=gui.bar_tile)
  1694.     right_bar Frame("gui/phone/bar/right.png", gui.bar_borders, tile=gui.bar_tile)
  1695.  
  1696. style vbar:
  1697.     variant "small"
  1698.     xsize gui.bar_size
  1699.     top_bar Frame("gui/phone/bar/top.png", gui.vbar_borders, tile=gui.bar_tile)
  1700.     bottom_bar Frame("gui/phone/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile)
  1701.  
  1702. style scrollbar:
  1703.     variant "small"
  1704.     ysize gui.scrollbar_size
  1705.     base_bar Frame("gui/phone/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  1706.     thumb Frame("gui/phone/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
  1707.  
  1708. style vscrollbar:
  1709.     variant "small"
  1710.     xsize gui.scrollbar_size
  1711.     base_bar Frame("gui/phone/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  1712.     thumb Frame("gui/phone/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
  1713.  
  1714. style slider:
  1715.     variant "small"
  1716.     ysize gui.slider_size
  1717.     base_bar Frame("gui/phone/slider/horizontal_[prefix_]bar.png", gui.slider_borders, tile=gui.slider_tile)
  1718.     thumb "gui/phone/slider/horizontal_[prefix_]thumb.png"
  1719.  
  1720. style vslider:
  1721.     variant "small"
  1722.     xsize gui.slider_size
  1723.     base_bar Frame("gui/phone/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile)
  1724.     thumb "gui/phone/slider/vertical_[prefix_]thumb.png"
  1725.  
  1726. style slider_pref_vbox:
  1727.     variant "small"
  1728.     xsize None
  1729.  
  1730. style slider_pref_slider:
  1731.     variant "small"
  1732.     xsize 600
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement