LoafyLemon
c7df99e4b0
* Fixed fake credits * Fixed hotkeys overlap with Ren'py hotkeys * Fixed overflowing character names
331 lines
6.4 KiB
Plaintext
331 lines
6.4 KiB
Plaintext
init python in credits:
|
|
def convert(text):
|
|
lines = text.split("\n")
|
|
output_lines = []
|
|
|
|
for line in lines:
|
|
if line.startswith("###"):
|
|
text = line[3:].strip()
|
|
output_lines.append(f"{{=credits_header3}}{text}{{/}}")
|
|
elif line.startswith("##"):
|
|
text = line[2:].strip()
|
|
output_lines.append(f"{{=credits_header2}}{text}{{/}}")
|
|
elif line.startswith("#"):
|
|
text = line[1:].strip()
|
|
output_lines.append(f"{{=credits_header1}}{text}{{/}}")
|
|
elif line.startswith("-"):
|
|
text = line[1:].strip()
|
|
output_lines.append(f"{{=credits_entry}}{text}{{/}}")
|
|
else:
|
|
# Plain text and Ren'py text tags.
|
|
output_lines.append(line)
|
|
|
|
return "\n".join(output_lines)
|
|
|
|
image game_logo = Image("gui/creamy_pumpkin_pie/game_logo.png", oversample=8)
|
|
image studio_logo = Image("gui/creamy_pumpkin_pie/studio_logo.png", oversample=4)
|
|
image engine_logo = Image("gui/creamy_pumpkin_pie/engine_logo.png", oversample=2)
|
|
|
|
define credits_images = [] # TODO: Add images once new chibis are in.
|
|
|
|
# define credits_images = (
|
|
# (Transform("ch_sna wand_defend", xzoom=-1), 1, 12, True),
|
|
# ("ch_sna jerk_off", 15, 8, False),
|
|
# ("ch_hem run", 17, 6, True),
|
|
# (Transform("hj", zoom=2, crop=(225,200,200,235)), 25, 8, True),
|
|
# )
|
|
|
|
define credits_mods = _("\n\n## Game Mods\n\n") + "\n\n".join(["### " + i[1]["Name"] + "\n- " + i[1]["Author"] for i in mods_list.items()]) if mods_list else ""
|
|
|
|
define credits_text = credits.convert(_(f"""{{image=game_logo}}{{vspace=10}}
|
|
## Development Team
|
|
|
|
### Project Lead
|
|
### Lead Programmer
|
|
### Lead Artist and Designer
|
|
### UI/UX Designer and {{flip}}{{=credits_animator}}Animator{{/}}{{/flip}}
|
|
- LoafyLemon
|
|
|
|
### Game Director
|
|
### Lead Writer
|
|
### Lead Game Tester
|
|
### Sound Designer
|
|
### Scriptwriter
|
|
- Johnny28
|
|
|
|
## Contributors
|
|
|
|
### Programmers
|
|
- STG Anon
|
|
- MadMerlin
|
|
- Asease1
|
|
- TropeCode
|
|
- Gouvernathor
|
|
|
|
### Writers
|
|
- MadMerlin
|
|
- Livvypoo
|
|
- Mo
|
|
|
|
### Proofreaders
|
|
- Livvypoo
|
|
- MedicBear
|
|
- MaiL
|
|
- Lineup
|
|
- Cosmic
|
|
|
|
### Character Designers
|
|
- Soggy
|
|
- DostojevskijSTG
|
|
- Noodle
|
|
- MadMerlin
|
|
- Artguy
|
|
|
|
### Clothing Designers
|
|
- Soggy
|
|
- perniciousducks
|
|
- DostojevskijSTG
|
|
- Noodle
|
|
- MadMerlin
|
|
- BopJp
|
|
|
|
### Scene Designers
|
|
- BopJp
|
|
- KitsuneArts
|
|
|
|
### Game Testers
|
|
- MadMerlin
|
|
- Livvypoo
|
|
- Cosmic
|
|
- MaiL
|
|
- Lineup
|
|
- MedicBear
|
|
- perniciousducks
|
|
|
|
### Mirror of Erised
|
|
### Content Creators
|
|
- Livvypoo
|
|
- NotTera
|
|
- Ignatz
|
|
- Waxerred{credits_mods}
|
|
|
|
## Music
|
|
|
|
### Kevin MacLeod
|
|
- "Anguish"
|
|
- "Awkward Meeting"
|
|
- "Deadly Roulette"
|
|
- "Brittle Rille"
|
|
- "Firebrand"
|
|
- "Chipper Doodle v2"
|
|
- "Dark Fog"
|
|
- "Despair"
|
|
- "Game Over Theme"
|
|
- "Boss Theme"
|
|
- "Hitman"
|
|
- "Music for Manatees"
|
|
- "Plaint"
|
|
- "Fuzzball Parade"
|
|
- "Teddy Bear Waltz"
|
|
- "Scheming Weasel (Slower version)"
|
|
- "Open Those Bright Eyes"
|
|
- "Wallpaper"
|
|
- "Hidden Agenda"
|
|
- "Aquarium"
|
|
- "Court of the Queen"
|
|
- "Machinations"
|
|
- "Brandenburg Concerto No. 4 in G, Movement I (Allegro), BWV 1049"
|
|
- "March of the spoons"
|
|
- "The other side of the door"
|
|
|
|
### PhobyAk
|
|
- "Under-the-radar
|
|
|
|
### Shadow16nh
|
|
- "Playful Tension (Orchestral)"
|
|
|
|
### controllerhead
|
|
- "Item Shop"
|
|
|
|
### jrayteam6
|
|
- "Grape Soda is Fucking Raw"
|
|
|
|
### Juhani Junkala
|
|
- "Title Screen"
|
|
- "Level 1"
|
|
- "Level 3"
|
|
|
|
### Snabisch
|
|
- "Only 115 (Dance Loop)"
|
|
|
|
### Nene
|
|
- "Boss Battle #2"
|
|
|
|
### Tim Kulig
|
|
- "Anticipations"
|
|
|
|
### BoxCat Games
|
|
- "Battle (Boss)"
|
|
|
|
## Additional Credits
|
|
|
|
### Miscellaneous Artwork
|
|
- CaptainNemo
|
|
- Darwin7
|
|
- That one Disney employee
|
|
- Johnny28
|
|
|
|
### Miscellaneous Sound Effects
|
|
- LoafyLemon
|
|
|
|
### Creative Hecklers
|
|
- Livvypoo
|
|
- perniciousducks
|
|
- Cosmic
|
|
|
|
### Discord Moderators
|
|
- Dr. Lupin
|
|
- MadMerlin
|
|
- Perniciousducks
|
|
- Livvypoo
|
|
- Cosmic
|
|
- Lineup
|
|
- MedicBear
|
|
- Johnny28
|
|
- LoafyLemon
|
|
|
|
### Social Media Managers
|
|
- Soggy
|
|
- Sandmaster
|
|
- MadMerlin
|
|
- Johnny28
|
|
- LoafyLemon
|
|
|
|
### Servers & Websites
|
|
- LoafyLemon
|
|
|
|
## Special Thanks
|
|
|
|
### Akabur
|
|
- The creator of the original Witch Trainer and other awesome games!
|
|
|
|
- Booom313
|
|
- Pinguino
|
|
- UE Crew
|
|
- Catbug
|
|
- Linear
|
|
- Amadan
|
|
- Heretic
|
|
- Maverick
|
|
- Cleanzo
|
|
- Techy
|
|
- Zuel32
|
|
- Ven
|
|
- Armise
|
|
- Anonymous
|
|
|
|
## Software
|
|
|
|
{{image=engine_logo}}
|
|
### Ren'Py Engine v[renpy.version_only]
|
|
- [renpy.license!t]
|
|
{{vspace=400}}
|
|
{{image=studio_logo}}
|
|
# Thank you for playing!{{vspace=200}}
|
|
"""))
|
|
|
|
style credits_header1:
|
|
color "#ffffff"
|
|
outlines [(3, "#000000", 1, 1)]
|
|
hinting "auto"
|
|
font gui.bold_font
|
|
size 48
|
|
xalign 0.5
|
|
|
|
style credits_header2 is credits_header1:
|
|
color "#61BDEA"
|
|
outlines [(3, "#000000", 1, 1)]
|
|
size 32
|
|
|
|
style credits_header3 is credits_header1:
|
|
color "#EA8E61"
|
|
size 24
|
|
outlines [(2, "#000000", 1, 1)]
|
|
|
|
style credits_entry:
|
|
color "#ffffff"
|
|
outlines [(1, "#000000", 1, 1)]
|
|
size 18
|
|
xalign 0.5
|
|
|
|
style credits_animator is credits_header3:
|
|
xoffset -243
|
|
|
|
style credits_you is credits_header1:
|
|
color "#61BDEA"
|
|
outlines [(3, "#000000", 1, 1)]
|
|
hinting "auto"
|
|
font gui.bold_font
|
|
size 48
|
|
xoffset -240
|
|
|
|
style credits_text:
|
|
color "#fff"
|
|
outlines [(2, "#000", 0, 0)]
|
|
|
|
transform credits_scroll(duration):
|
|
subpixel True
|
|
yanchor 0.0
|
|
alpha 0.0
|
|
pause 1
|
|
linear 1.0 alpha 1.0
|
|
pause 3
|
|
parallel:
|
|
linear (duration - 1) yanchor 1.0
|
|
parallel:
|
|
linear (duration - 1) ypos (config.screen_height)
|
|
pause 7
|
|
|
|
linear 1.0 alpha 0.0
|
|
|
|
transform credits_fade_image(start, duration):
|
|
alpha 0
|
|
pause start
|
|
linear 0.5 alpha 1.0
|
|
pause duration
|
|
linear 0.5 alpha 0.0
|
|
|
|
screen credits(credits=credits_text, duration=180, pauses=13):
|
|
layer "interface"
|
|
zorder 0
|
|
modal True
|
|
predict False
|
|
style_prefix "credits"
|
|
|
|
default duration = duration
|
|
default pauses = pauses
|
|
|
|
add "gui_fade_both" at gui_fade
|
|
|
|
use close_button_background(Hide("credits"), "game_menu")
|
|
|
|
for img, t, d, left in credits_images:
|
|
add img:
|
|
at credits_fade_image(t, d)
|
|
|
|
if left:
|
|
pos (20, config.screen_height - 20)
|
|
anchor (0.0, 1.0)
|
|
else:
|
|
pos (config.screen_width - 20, config.screen_height - 20)
|
|
anchor (1.0, 1.0)
|
|
|
|
text credits:
|
|
at credits_scroll(duration)
|
|
xalign 0.5
|
|
text_align 0.5 # Note: This is different from setting xalign inside the style.
|
|
|
|
use player((0.025, 0.88))
|
|
|
|
timer duration+pauses action [Hide("credits"), Function(achievements.unlock, "Credits")]
|