diff --git a/game/images/bg_corridor.png b/game/images/bg_corridor.png new file mode 100644 index 0000000..f3c8b1a --- /dev/null +++ b/game/images/bg_corridor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26d1b9d11f70e7928ed88ac1fe069fdcc4f7916d6e0f2cf29b81f6dfbb2511a5 +size 1920154 diff --git a/game/images/bg_desk_close.png b/game/images/bg_desk_close.png new file mode 100644 index 0000000..bab82ac --- /dev/null +++ b/game/images/bg_desk_close.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbd359b2457b6f68243fa3c92cf1987ad7e70c4ae71a4e5104c44d5ea0b4ecc1 +size 1852952 diff --git a/game/images/bg_door_to_server.png b/game/images/bg_door_to_server.png new file mode 100644 index 0000000..48abb01 --- /dev/null +++ b/game/images/bg_door_to_server.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7f9c9935e68dcf5975581c048432ac6c6a4a07c73ca753b853c4ee4d06dd755 +size 2105671 diff --git a/game/images/bg_exit.png b/game/images/bg_exit.png new file mode 100644 index 0000000..a68c32d --- /dev/null +++ b/game/images/bg_exit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3843b871e2c4bbc24410701c64a0df403e60efa1b109444edae6e2f85bcffd0 +size 1948011 diff --git a/game/images/bg_room.png b/game/images/bg_room.png new file mode 100644 index 0000000..e594268 --- /dev/null +++ b/game/images/bg_room.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed49d33c3797fa1d13550956c0c7aaf114345376ef945e85b0699b007e487403 +size 1956818 diff --git a/game/images/bg_room_coffee.png b/game/images/bg_room_coffee.png new file mode 100644 index 0000000..22e2c13 --- /dev/null +++ b/game/images/bg_room_coffee.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddfeaa623afe1e5a2a609a551c43c47dd5474da63bc970ce9afcf026bc90d886 +size 1970311 diff --git a/game/images/bg_room_generator.png b/game/images/bg_room_generator.png new file mode 100644 index 0000000..1627b4a --- /dev/null +++ b/game/images/bg_room_generator.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36d7cf55c8848660dbbaea4296f2aac9c59b3e4794e6219a35adbd69735d3953 +size 2147561 diff --git a/game/images/bg_room_iney.png b/game/images/bg_room_iney.png new file mode 100644 index 0000000..1fa40cd --- /dev/null +++ b/game/images/bg_room_iney.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:699e6c66e6f2d4daf591f7c46a58b4297a188538049da2e52213c132df0c7001 +size 2328892 diff --git a/game/images/bg_server_close.png b/game/images/bg_server_close.png new file mode 100644 index 0000000..af9b28a --- /dev/null +++ b/game/images/bg_server_close.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a44fec3cb7bd76f20cccbabafb633357d3b6f1ea36d25a70215eca61c3cb42ec +size 1901555 diff --git a/game/images/bg_server_close_broken.png b/game/images/bg_server_close_broken.png new file mode 100644 index 0000000..c201224 --- /dev/null +++ b/game/images/bg_server_close_broken.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:008f0dc4116ba6301224ea9c412a6f7cafd84d2d2581844d19973411981f5a56 +size 2101769 diff --git a/game/images/bg_server_close_keyboard.png b/game/images/bg_server_close_keyboard.png new file mode 100644 index 0000000..0ca6016 --- /dev/null +++ b/game/images/bg_server_close_keyboard.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2fd42e930b54eb0b5ffb394a25ad25610ab76560a4b41d4bfa06dd537e8ae1 +size 1837584 diff --git a/game/images/bg_server_close_light_from_monitor.png b/game/images/bg_server_close_light_from_monitor.png new file mode 100644 index 0000000..e471569 --- /dev/null +++ b/game/images/bg_server_close_light_from_monitor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ba52f10156809cfac3f3f1d8585a6565ae07b0b45e2a37279d4595ddd34ada8 +size 1946115 diff --git a/game/images/bg_server_close_off.png b/game/images/bg_server_close_off.png new file mode 100644 index 0000000..2eab46c --- /dev/null +++ b/game/images/bg_server_close_off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e386721a958d42762ff0eacdbc5b9c388b56b49b0576610ce047b5d4e25d1722 +size 1910523 diff --git a/game/images/bg_terminal.png b/game/images/bg_terminal.png new file mode 100644 index 0000000..4461375 --- /dev/null +++ b/game/images/bg_terminal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5254a20c5a0e93793d9e12398c04bd0cd5fef7c026a3f001b0e313052ed60acd +size 2111638 diff --git a/game/images/puzzle_0.png b/game/images/puzzle_0.png index 08a850d..59fda6a 100644 --- a/game/images/puzzle_0.png +++ b/game/images/puzzle_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a659f71202d247f1dc5cfa8f4466c6fb9c105da293ebe94d1205838c4f1feb9f -size 129086 +oid sha256:706cf566811a18ca0b4ddfc6f169451d0a508f5de24fa992e10256f465ad8a72 +size 100079 diff --git a/game/images/puzzle_1.png b/game/images/puzzle_1.png index a463c9e..8c581b2 100644 --- a/game/images/puzzle_1.png +++ b/game/images/puzzle_1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:18fb7861ecaaa3c4772b469356ac420d1973bbd15b9248f7f45fa3e142bfe582 -size 127857 +oid sha256:c12942a5704fb0a2881bb70ea9d6f3f42178195664e5c5d9fcac3459a77d5fe0 +size 108230 diff --git a/game/images/puzzle_2.png b/game/images/puzzle_2.png index 4fe7759..8f225e2 100644 --- a/game/images/puzzle_2.png +++ b/game/images/puzzle_2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:22625b2493cda710d7ec4ec6993da591095f7a0e2ab8b5bf9331acec0c5f9394 -size 132946 +oid sha256:6d096e07fbab1a36da7bb99deb29bbda9ca1c57f9d0bddcf102a43b00d1424a9 +size 93315 diff --git a/game/images/puzzle_3.png b/game/images/puzzle_3.png index 3af4f78..4f7f368 100644 --- a/game/images/puzzle_3.png +++ b/game/images/puzzle_3.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8526b39725d8c57b4c1f43664a786ed28fa3281db70693ae48ab4e71987b3e97 -size 136224 +oid sha256:5a1faa59eac2f06a19f53eed1f141bd82c7492a54f2e7972a45da1f931cd003a +size 100817 diff --git a/game/script.rpy b/game/script.rpy index 063338e..7b3c547 100644 --- a/game/script.rpy +++ b/game/script.rpy @@ -115,16 +115,22 @@ screen terminal_rhythm_screen(): if len(player_input) >= 3: timer 0.3 action Return(player_input == signal_sequence) +transform slow_zoom_pan: + zoom 1.0 + linear 15.0 zoom 1.05 + linear 15.0 zoom 1.0 + repeat + label start: scene black play sound "audio/typing.ogg" loop fadein 0.5 - show text "{size=150}{cps=10}ТИШИНА{/cps}{/size}" with dissolve + show text "{size=150}{cps=2}ТИШИНА{/cps}{/size}" with dissolve pause 2.0 hide text with dissolve - show text "{size=120}{cps=10}20.04.2023{/cps}{/size}" with dissolve + show text "{size=120}{cps=2}20.04.2023{/cps}{/size}" with dissolve pause 2.0 hide text with dissolve @@ -143,7 +149,7 @@ label start: label phase_1_intro: $ routine_tasks = 0 - scene bg_room with dissolve + scene bg_room at slow_zoom_pan with dissolve "Я просыпаюсь. Шум генератора — единственное, что доказывает, что я еще здесь. Но сегодня этот звук другой. Он надтреснутый, хриплый, как дыхание умирающего." "Индикатор на консоли мигает тусклым оранжевым. 100\%. Это последняя порция топлива. Последние искры жизни этой консервной банки." "Семь лет назад я считал эту станцию своей крепостью. Теперь — это мой склеп, где я сам себе надсмотрщик, а генератор — мой метроном, отсчитывающий секунды до полной темноты." @@ -152,44 +158,50 @@ label phase_1_intro: "Сегодня двадцатое апреля. И если верить датчикам, сегодня — последний день, когда станция сможет поддерживать жизнеобеспечение. К полуночи, если я не решусь на что-то, здесь станет холодно по-настоящему." "Мои руки привычно тянутся к вещам, которые я переставляю изо дня в день. Это не привычка. Это попытка доказать самому себе, что я всё ещё существую в этой физической реальности, а не стал частью фонового шума оборудования." "Мне нужно закончить утренний ритуал. Последний утренний ритуал. Только после этого я смогу сосредоточиться на том, чтобы принять решение, от которого я бежал три года." + jump routine_loop - label routine_loop: - if routine_tasks >= 3: - jump start_game_proper +label routine_loop: + scene bg_room with fade + + if routine_tasks >= 3: + jump start_game_proper "Комната кажется пустой, но в ней всё ещё остались вещи, которые требуют моего внимания. Вещи, которые я должен 'оживить' в последний раз." - - menu: - "Налить остывший кофе" if not coffee_done: - $ coffee_done = True - $ routine_tasks += 1 - "Чашка холодная, стенки покрыты въевшимся коричневым налетом. Я смотрю на эту мутную жидкость и вспоминаю, как раньше мы спорили о том, какой сорт кофе лучше — с кислинкой или с горчинкой." - "Теперь мне всё равно. Это просто топливо. Жидкая горечь, чтобы хоть как-то почувствовать себя живым. Я делаю глоток, и холод металла чашки обжигает губы сильнее, чем сам напиток. Это вкус прощания." - jump routine_loop + + menu: + "Налить остывший кофе" if not coffee_done: + $ coffee_done = True + $ routine_tasks += 1 + scene bg_room_coffee with fade + "Чашка холодная, стенки покрыты въевшимся коричневым налетом. Я смотрю на эту мутную жидкость и вспоминаю, как раньше мы спорили о том, какой сорт кофе лучше — с кислинкой или с горчинкой." + "Теперь мне всё равно. Это просто топливо. Жидкая горечь, чтобы хоть как-то почувствовать себя живым. Я делаю глоток, и холод металла чашки обжигает губы сильнее, чем сам напиток. Это вкус прощания." + jump routine_loop - "Подойти к окну и стереть иней" if not window_done: - $ window_done = True - $ routine_tasks += 1 - "Стекло промерзло насквозь. Я провожу рукавом, оставляя длинную, неровную полосу. Иней осыпается, как пепел." - "За окном — только серая, бескрайняя пелена. Ни горизонта, ни неба. Иногда мне кажется, что я нахожусь не на станции связи, а внутри собственного разума, куда забыли подать свет." - "Я вглядываюсь в это 'ничто', надеясь увидеть хоть что-то, кроме собственного бледного отражения. Но вижу лишь глаза человека, который три года назад решил, что ожидание лучше, чем риск." - jump routine_loop + "Подойти к окну и стереть иней" if not window_done: + $ window_done = True + $ routine_tasks += 1 + scene bg_room_iney with fade + "Стекло промерзло насквозь. Я провожу рукавом, оставляя длинную, неровную полосу. Иней осыпается, как пепел." + "За окном — только серая, бескрайняя пелена. Ни горизонта, ни неба. Иногда мне кажется, что я нахожусь не на станции связи, а внутри собственного разума, куда забыли подать свет." + "Я вглядываюсь в это 'ничто', надеясь увидеть хоть что-то, кроме собственного бледного отражения. Но вижу лишь глаза человека, который три года назад решил, что ожидание лучше, чем риск." + jump routine_loop - "Проверить статус генератора" if not power_done: - $ power_done = True - $ routine_tasks += 1 - "Я подхожу к главному щитку. Индикаторы мерцают, как нервные окончания, готовые вот-вот перегореть. Семь лет эксплуатации — это не шутки. Сегодня он сдастся." - "Генератор стонет под нагрузкой. Я касаюсь рычага, чувствуя его дрожь. Если я сейчас уйду — он просто сгорит. Если останусь — буду жечь последние крохи энергии на поддержание пустоты." - "Каждый мой шаг здесь — это повторение того, от чего я пытаюсь сбежать, но я не могу позволить станции заглохнуть раньше времени. Это моё единственное наследие, мой памятник трусости." - jump routine_loop + "Проверить статус генератора" if not power_done: + $ power_done = True + $ routine_tasks += 1 + scene bg_room_generator with fade + "Я подхожу к главному щитку. Индикаторы мерцают, как нервные окончания, готовые вот-вот перегореть. Семь лет эксплуатации — это не шутки. Сегодня он сдастся." + "Генератор стонет под нагрузкой. Я касаюсь рычага, чувствуя его дрожь. Если я сейчас уйду — он просто сгорит. Если останусь — буду жечь последние крохи энергии на поддержание пустоты." + "Каждый мой шаг здесь — это повторение того, от чего я пытаюсь сбежать, но я не могу позволить станции заглохнуть раньше времени. Это моё единственное наследие, мой памятник трусости." + jump routine_loop - label start_game_proper: - "Ритуал завершен. Пустота внутри стала немного привычнее, но теперь она давит сильнее." - "Станция издает низкий, вибрирующий гул. Это звук умирающего сердца станции, и он резонирует где-то в моих ребрах." - "Каждый мой шаг отзывается эхом. Здесь слишком много тишины для места, которое когда-то было наполнено смехом и голосами." - "Что мне делать сегодня? Время утекает, как песок сквозь пальцы, и заряд батареи с каждой минутой становится всё ближе к нулю." - $ game_started = True - jump main_loop +label start_game_proper: + "Ритуал завершен. Пустота внутри стала немного привычнее, но теперь она давит сильнее." + "Станция издает низкий, вибрирующий гул. Это звук умирающего сердца станции, и он резонирует где-то в моих ребрах." + "Каждый мой шаг отзывается эхом. Здесь слишком много тишины для места, которое когда-то было наполнено смехом и голосами." + "Что мне делать сегодня? Время утекает, как песок сквозь пальцы, и заряд батареи с каждой минутой становится всё ближе к нулю." + $ game_started = True + jump main_loop label main_loop: if battery <= 0: @@ -221,7 +233,7 @@ label main_loop: jump phase_3_culmination label qte_date_input: - # scene bg_desk_close with fade + scene bg_desk_close with fade # play sound "audio/keyboard_clack.ogg" "Рабочий стол. Слой пыли здесь настолько толстый, что кажется, будто никто не садился сюда вечность." @@ -323,8 +335,6 @@ label phase_3_culmination: "Серверная. Место, где родилась вся эта ложь." "Я помню, как три года назад входил сюда, чтобы заглушить голос совести. Семь лет работы, три года молчания — всё это здесь." - "Светодиоды на стойках серверов мигают, словно конвульсии умирающего. Воздух здесь настолько сухой и горячий, что обжигает горло при каждом вдохе." - "На центральном терминале мерцает последний интерфейс. Если я нажму 'Ввод', пути назад не будет. Станция отключит жизнеобеспечение окончательно." jump final_choice @@ -332,6 +342,8 @@ label final_choice: scene bg_server_close with dissolve # play music "audio/tension_finale.ogg" fadein 5.0 + "Светодиоды на стойках серверов мигают, словно конвульсии умирающего. Воздух здесь настолько сухой и горячий, что обжигает горло при каждом вдохе." + "На центральном терминале мерцает последний интерфейс. Если я нажму 'Ввод', пути назад не будет. Станция отключит жизнеобеспечение окончательно." "Курсор пульсирует. Он ждет. Решение, от которого я бежал три года, теперь стоит передо мной во весь рост." "Я чувствую, как холод металла терминала пробирает до костей, несмотря на жар в серверной." @@ -357,6 +369,7 @@ label ending_silence: jump quit_after_ending label ending_anger: + scene bg_server_close_broken with shake # play sound "audio/glass_shatter.ogg" "Гнев — это единственное, что заставляет меня чувствовать себя живым. Я срываю красную панель, сдирая кожу на пальцах до крови." "Тумблер падает вниз с хрустом ломающихся костей. Искры бьют в лицо, выжигая остатки рассудка." @@ -365,6 +378,7 @@ label ending_anger: jump quit_after_ending label ending_acceptance: + scene bg_server_close_off with fade "Курсор мигает в ритме моего безразличия. Раз, два... Раз, два..." "Зачем что-то менять? Зачем бороться с энтропией, если она всё равно победит?" "Я откидываюсь на спинку кресла. Инфантильное желание просто закрыть глаза и ждать, пока тьма поглотит эту станцию, кажется единственно верным." @@ -372,15 +386,18 @@ label ending_acceptance: jump quit_after_ending label ending_reflection: + scene bg_server_close_keyboard with fade "Я печатаю дрожащими пальцами: 'Я был неправ. Это была глупая, бесконечная игра в мученика, в которой не было победителей'." "Я признаю это. Три года я строил стены из своего молчания, думая, что защищаюсь. Но я просто возвел свою собственную тюрьму." "Я выключаю станцию. Впервые за долгое время я чувствую, что в воздухе стало меньше гари. Я должен двигаться дальше. Я не знаю, что там, во внешнем мире, но я больше не заперт внутри себя." jump quit_after_ending label ending_light: + scene bg_server_close_light_from_monitor with fade "Я направляю остатки энергии на передатчик. Каждый процент заряда — это вырванный из жизни кусок, который я отдаю за шанс сказать правду." "Я пишу не для того, чтобы получить ответ. Я пишу, чтобы освободиться. 'Прости за тишину. Она была моей ошибкой'." "Нажимаю 'Отправить'. Система оповещает о передаче пакета, и тут же питание отключается. Станция замирает." + scene bg_exit_winter with fade "Я встаю и иду к выходу. Я не оглядываюсь. Мой долг перед прошлым оплачен, а будущее... будущее наконец-то принадлежит мне." jump quit_after_ending