172 lines
5.9 KiB
Plaintext
172 lines
5.9 KiB
Plaintext
define chapter_tuple = [
|
|
(_("1. First Day of School"), "chapter_1"),
|
|
(_("2. Meeting the Band"), "chapter_2"),
|
|
(_("3. Band Practice"), "chapter_3"),
|
|
(_("4. Music Class"), "chapter_4"),
|
|
(_("5. Gardening Club / Heart to Heart"), "chapter_5"), # This is supposed to be split in 2 chapters, but maybe making tons of save files stop working would be too much to ask
|
|
(_("6. Not a Date"), "chapter_6"),
|
|
(_("7. Concert Day"), "chapter_7"),
|
|
(_("8. Study Session"), "chapter_8"),
|
|
(_("9. VVURM DRAMA"), "chapter_9"),
|
|
(_("10. Confession"), "chapter_10"),
|
|
(_("11. Naser drama"), "chapter_11")
|
|
]
|
|
|
|
define ending_1_tuple = [
|
|
(_("11.5. Announcing a Plan"), "lPromAnnouncement"), # this is supposed to be ch 12 (13, accounting for ch 5), but it somehow got counted as part of 11 internally
|
|
(_("12. Let's all go to the Museum"), "chapter_12A"),
|
|
(_("13. Prom is Complicated"), "chapter_12_5D"),
|
|
(_("14. Bowling for Volcano High"), "chapter_14A")
|
|
]
|
|
|
|
define ending_2_tuple = [
|
|
(_("11.5. Announcing Nothing Important"), "lPromAnnouncement"),
|
|
(_("12. Let's all go to a Concert"), "chapter_12B"),
|
|
(_("13. Prom is For Suckers"), "chapter_13B"),
|
|
(_("14. Anon and the Infinite Sadness"), "chapter_14B")
|
|
]
|
|
|
|
define ending_3_tuple = [
|
|
(_("11.5. Announcing a Date"), "lPromAnnouncement"),
|
|
(_("12. Let's all go Camping"), "chapter_12C"),
|
|
(_("13. Prom is Surprising"), "chapter_12_5C"),
|
|
(_("14. Volcano Highschool Musical"), "chapter_14C")
|
|
]
|
|
|
|
define ending_4_tuple = [
|
|
(_("11.5. Announcing a Show"), "lPromAnnouncement"),
|
|
(_("12. Let's all go to the Aquarium"), "chapter_12D"),
|
|
(_("13. Prom is Memorable"), "chapter_12_5D"),
|
|
(_("14. Fast Times at Volcano High"), "chapter_14D")
|
|
]
|
|
|
|
|
|
label chapter_select:
|
|
$ quick_menu = False # Hides bottom quick menu UI
|
|
|
|
camera:
|
|
yanchor 0.0 xanchor 0.0 rotate None zoom 1.0
|
|
matrixcolor None
|
|
|
|
stop ambient
|
|
stop ambient1
|
|
stop ambient2
|
|
stop ambient3
|
|
stop sound
|
|
stop music
|
|
stop music1
|
|
stop music2
|
|
scene black
|
|
with Dissolve(0.25)
|
|
|
|
jump chapter_select_go_back # Technically we don't need to explicitly jump to the label just below here, but doing so anyway for clarity
|
|
|
|
label chapter_select_go_back:
|
|
|
|
# Reset story vars. Not that it terribly matters, but just in case it avoids bugs.
|
|
python:
|
|
anonscore = 0
|
|
fangscore = 0
|
|
wingStory = False
|
|
|
|
chapter_list = base_chapter_list.copy()
|
|
chapter_list_index = 0
|
|
chapter_list_length = get_chapter_list_length()
|
|
ending_route_number = None
|
|
ending_chapters_determined = False
|
|
current_chapter = chapter_list[chapter_list_index]
|
|
|
|
menu:
|
|
"What ending do you want to lock to?"
|
|
|
|
"Ending 1":
|
|
$ ending_route_number = 1
|
|
"Ending 2":
|
|
$ ending_route_number = 2
|
|
"Ending 3":
|
|
$ ending_route_number = 3
|
|
"Ending 4":
|
|
$ ending_route_number = 4
|
|
"Exit to main menu":
|
|
scene black with Dissolve(0.25)
|
|
return
|
|
|
|
window auto hide
|
|
|
|
$ chapter_select()
|
|
|
|
|
|
init python:
|
|
|
|
# Some of this would be much easier to do if we could just reorganize how the chapters are laid out, but breaking translations is way more of a hassle to fix
|
|
|
|
def chapter_select():
|
|
global current_chapter, quick_menu, ending_route_number, chapter_list_index, chapter_list, ending_chapters_determined, chapter_list_length
|
|
|
|
selected_label = display_chapter_choices() # Returns a label of the chapter to jump to
|
|
|
|
setup_ending(ending_route_number) # Add ending chapters to chapter control list
|
|
|
|
# Find the index position of the selected chapter
|
|
try:
|
|
chapter_list_index = chapter_list.index(selected_label)
|
|
except ValueError: # This crashes the game otherwise since it wouldn't find the correct chapter
|
|
|
|
# Make an exception for the 11A/B/C/D chapters, since we're technically supposed to start at the lPromAnnouncement label
|
|
# Stank as fuck
|
|
if selected_label == "lPromAnnouncement":
|
|
chapter_list_index = 10
|
|
current_chapter = "chapter_11"
|
|
|
|
toggle_debug()
|
|
quick_menu = True
|
|
|
|
renpy.call("lPromAnnouncement")
|
|
else:
|
|
print("No such chapter exists!")
|
|
MainMenu(confirm=False) () # Exits to the main menu
|
|
|
|
current_chapter = selected_label
|
|
|
|
# Start playing the game
|
|
toggle_debug()
|
|
quick_menu = True # Restores the bottom quick menu UI
|
|
|
|
renpy.call(current_chapter)
|
|
|
|
def display_chapter_choices():
|
|
# Vars for displaying the choices
|
|
ending_tuples = {
|
|
1: ending_1_tuple,
|
|
2: ending_2_tuple,
|
|
3: ending_3_tuple,
|
|
4: ending_4_tuple
|
|
}
|
|
|
|
final_chapter_tuple = chapter_tuple + ending_tuples[ending_route_number] # Chapter list to select from
|
|
|
|
current_page = 0
|
|
chapters_per_page = 6
|
|
|
|
# The range of choices to display
|
|
start_index = 0
|
|
end_index = chapters_per_page
|
|
|
|
while True:
|
|
# Displays the choices
|
|
selected_label = renpy.display_menu(final_chapter_tuple[start_index:end_index] + [(_("Next Page"), "chapter_select_next_page"), (_("Go Back"), "chapter_select_go_back")])
|
|
|
|
if selected_label == "chapter_select_next_page":
|
|
# If we're at the last page, wrap around to the first
|
|
current_page = 0 if end_index == len(final_chapter_tuple) else (current_page + 1)
|
|
|
|
start_index = chapters_per_page * current_page
|
|
end_index = min(start_index + chapters_per_page, len(final_chapter_tuple))
|
|
|
|
# Exit to ending selection
|
|
elif selected_label == "chapter_select_go_back":
|
|
renpy.jump("chapter_select_go_back")
|
|
|
|
# We've selected a chapter
|
|
else:
|
|
return selected_label |