init python: #don't do a halo infinite moment #hard code the header & footer #then iterate the list_credits list_og_credits = { _('Coded By:'): [ '/dev/non', "[[Untitled]] Anon", 'Schizodev Anon', 'Starmanon', 'Nutbuster Anon', 'Inhumanon', 'Spigot the Bear Anon' ], _('Written by:'): [ 'AVGN Anon', 'Coomer Anon', '/trash/ Anon', 'FreemAnon', 'Ccp Anon', 'Kokichi Anon', 'Alex Anon', 'Punished Anon', 'Finn Anon' ], _('Story by:'): [ 'AVGN Anon', 'Coomer Anon', 'Alex Anon', 'Singularity Anon', 'Tombstone Anon' ], _('Production Designer'): [ 'Alex Anon' ], _('Artwork by:'): [ 'Alex Anon', 'Mormon Anon', 'Ccp Anon', 'Aome Anon', '/trash/ Anon', 'Skeleton Anon', 'eyeh Xinnix Anon', 'Brit Anon', 'Dark-N-Wolf Anon', 'Hotel Anon', 'Multi Anon', 'Ionanon' ], _('Additional Artwork by:'): [ _('Backup Anon 1'), _('Backup Anon 2'), _('Backup Anon 3'), _('Backup Anon 4'), _('Backup Anon 5'), _('Backup Anon 6'), ], _("\"Love theme\" by:"): [ _('Only Person In The Team With A\nPortfolio/Experience Anon'), ], _('Music By'): [ 'Shampoo Anon', 'Melo Anon' ], _('Egg Hunt Contest\nWinner:'): [ 'Olivia Anon' ], _('Character Design\nContest Winner:'): [ 'Mono Anon', ], } list_translator_credits = { _('Translators (Spanish):'): [ 'Queso2033 Anon', 'TheShadowTrAnon' ], _('Proofreader (Spanish):'): [ 'ElBan AnĂ³n', 'GMAnon' ], _('Asset help (Spanish):'): [ 'Arkiangelo Anon' ] } textlist = [] alignargs = {'xalign': 0.5, 'yalign': 0.5, 'text_align': 0.5} #sizes in px SIZE_SNOT_GAMES = 68*3+10 SIZE_TITLE = 32*3+10 SIZE_ENTRY = 26*3+10 SIZE_TL = 26*2+10 SIZE_ENDER = 52*3+10 #there is line_spacing but don't usei t textlist.append(Text(_("Snoot Game"), size=SIZE_SNOT_GAMES, **alignargs)) textlist.append(Null(1, 16*1)) textlist.append(Text(_("By CaveManon"), size=SIZE_TITLE, **alignargs)) textlist.append(Null(1, 16*18)) textlist.append(Text(_("developed in Ren'py"), size=SIZE_ENTRY, **alignargs)) textlist.append(Null(1, 16*12)) for key, arr in list_og_credits.items(): textlist.append(Text(key, size=SIZE_TITLE, **alignargs)) textlist.append(Null(1, 16*6)) concatstr = "" for item in arr: concatstr += item + '\n' textlist.append(Text(concatstr, size=SIZE_ENTRY, **alignargs)) textlist.append(Null(1, 16*2)) #smaller font and gridonate for translators TL_WIDTH = 2 TL_HEIGHT = (len(list_translator_credits)+1)//2 tgrid = [] for key, arr in list_translator_credits.items(): vb = [] vb.append(Text(key, size=SIZE_ENTRY, **alignargs)) vb.append(Null(1, 16*6)) concatstr = "" for item in arr: concatstr += item + '\n' vb.append(Text(concatstr, size=SIZE_TL, **alignargs)) vb.append(Null(1, 16*2)) vb = VBox(*vb) tgrid.append(vb) for x in range(len(tgrid), TL_WIDTH*TL_HEIGHT): tgrid.append(Null()) pass tgrid = Grid(TL_WIDTH, TL_HEIGHT, *tgrid) textlist.append(tgrid) textlist.append(Null(1, 16*12)) #check textlist.append(Text(_("T H E E N D"), size=SIZE_ENDER, **alignargs)) textlist.append(Null(1, 16*4)) textlist.append(Text(_("Snoot game started development\n on June 19, 2020"), size=SIZE_ENTRY, **alignargs)) credits_hbox = Fixed(VBox(*textlist, xalign=0.5), xalign=0.5) renpy.image('credits_hbox', credits_hbox) # #slack: 2000 label test_credits: scene black stop ambient #play music 'audio/abloop.wav' "test" window auto hide pause 0.5 show snootgame_big with dissolve: # Renpy not allowing you to grab images from the gui folder is serious bullshit subpixel True xalign 0.5 yalign 0.5 linear 6 zoom 1.2 pause 1.75 show d_credits_text with dissolve: crop (0, 670, 1920, 100000) ypos 670 pause 2 hide d_credits_text hide snootgame_big with dissolve show credits_base at Pan((0, -1080),(0, 8100), 65) behind c_credits_text: subpixel True show d_credits_text at Pan((0, 0),(0, 11675), 65): crop None subpixel True show credits_coverup at Pan((0, 0),(0, 11675), 65): subpixel True #pause 50 #queue music "audio/abend.wav" noloop pause scene black with Dissolve(3)