WTS/game/scripts/gui/credits.rpy

331 lines
6.3 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 = 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():
layer "interface"
zorder 0
modal True
predict False
style_prefix "credits"
default duration = 180
default pauses = 13
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")]