Files
pgames-manager/backend/tests/fixtures/sample/script.rpy
T
mrleo1nidandClaude Opus 5.5 364b312064 Initial MVP: local visual novel library with Ren'Py → PGVN converter
- FastAPI backend: admin bootstrap with forced credential change, admin-created
  users with one-time generated passwords, roles as permission sets
- Games and versions with content-addressed blob storage; forks copy only the
  manifest, so mods share assets with the original
- Worker: archive/RPA extraction, unrpyc for .rpyc, own .rpy parser, Python
  subset translated via ast, media converted to WebP/Opus/WebM
- React panel (library search, game page, upload, users, roles) and a
  framework-free web player with saves, history, skip/auto, transitions
- docker compose: postgres, backend, worker, nginx on a single HTTP port

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 02:41:32 +03:00

75 lines
1.9 KiB
Plaintext

# Sample game used by converter tests and the end-to-end check.
define e = Character("Эйлин", color="#c8ffc8")
define m = Character("[player_name]", color="#c8c8ff")
define n = Character(None, kind=nvl)
define flash = Fade(0.1, 0.0, 0.5, color="#fff")
define audio.theme = "audio/theme.ogg"
default points = 0
default player_name = "Гость"
default inventory = []
image bg room = "bg room.png"
image eileen happy = "eileen happy.png"
image eileen sad = Transform("eileen happy.png", alpha=0.7)
image black = "#000"
transform slightleft:
xalign 0.3 yalign 1.0
init python:
def helper():
return 1
bonus = 5
persistent.seen_intro = False
label start:
scene bg room with fade
play music theme fadein 1.0
"Добро пожаловать в {b}тестовую{/b} новеллу."
show eileen happy at left with dissolve
e "Привет! Как тебя зовут?"
$ player_name = "Алекс"
m "Меня зовут [player_name]."
menu:
e "Что будем делать?"
"Пойдём гулять" if points >= 0:
$ points += 1
$ inventory.append("map")
jump walk
"Останемся дома":
$ points -= 1
call stay_home
e "Вернулись из call."
jump ending
label walk:
show eileen sad at slightleft
e sad "На улице дождь..."
with flash
$ renpy.pause(0.5)
if points > 0 and "map" in inventory:
e "Но у нас есть карта, [points] очков!"
elif points == 0:
e "Ничего."
else:
e "Плохо."
jump ending
label stay_home:
hide eileen with dissolve
"Тихий вечер дома."
$ i = 0
while i < 2:
$ i += 1
"Тик-так [i]."
return
label ending:
stop music fadeout 1.0
scene black with dissolve
centered "Конец. Очки: [points]"
return