Что и на сколько меняет время
| Время | Что делает игрок | Где в коде | Заметка |
|---|---|---|---|
| +1 | любой переход героини в другое место (присваивание my_location.name = локация) | script.rpy:409 | Каждая стрелка перехода, ведущая в локацию, и каждое прямое «перенести героиню» внутри сцены. Присваивание той же локации тоже считается (например my_location.name = my_location.name). |
| +2 | пункт «Идти в темноту» на дороге к Гавани (сначала логика -1, безумие +1) | script3_tgavan_road.rpy:98 | Сверх +1 за переход. После этого бросок кубика: при результате выше 18 сцена script_3_tgavan_road_black. |
| +5 | конец воспоминания про сову: «Я просыпаюсь», день | script3_sova.rpy:86 (son_less_end) | Через change_day("day", 5): ставит день и добавляет 5. |
| +5 | сон после сцены «Это... Сон?», наступает день | script_1_less_begin.rpy:266 (c1_sleep) | Через change_day("day", 5). |
| +5 | затемнение в доме Луизы, наступает день | script_4_airat.rpy:1621 (airat_house_luiza) | Через change_day("day", 5). |
| +5 | ночлег в кафе «Кап» (пункт «sleep»/«sleep2»), наступает день | script_4_kapibar.rpy:227 (script4_kapibar_start_menu) | Через change_day("day", 5). |
| -1 | вход в головоломку Бонни (пазл) | script_npc_items.rpy:1567, 1574 (bonny_lock) | Сразу после идёт присваивание my_location.name = less_bonny (+1), итого 0 за вход. |
| -1 | выход из пазла, если собрано меньше 16 деталей | script_npc_items.rpy:1579 (puzzle_complete) | Следом my_location.name = less_per (+1), итого 0. Если деталей 16, этого вычитания нет: пазл завершается и за ним только my_location.name = less_bonny (+1, script_npc_items.rpy:1593). |
| =0 | отладочная кнопка «Время»: обнуляет счётчик | script_newscreens.rpy:689 | Кнопка в экране отладки, обычному игроку не доступна по коду; счётчик показывается там же (script_newscreens.rpy:665). |
Других присваиваний счётчика в коде нет (поиск gametime по всем .rpy). Дорога между двумя местами по стрелке даёт всегда +1, зависимости от расстояния в коде нет. Стрелка, у которой есть только метка перехода без целевой локации, сама время не добавляет: оно добавится, если сцена по метке переносит героиню присваиванием (см. список ниже).
Пределы и сроки, завязанные на счётчик
| Где | Что происходит | Заметка |
|---|---|---|
script _define.rpy:217 | Предел счётчика: 50. Начальное значение 0. | Единицы в минуты/часы в коде не переведены, называем «единица времени». |
script.rpy:622 | Как только счётчик станет ≥ 50, сразу прыжок на end_time (script_av.rpy:98): «Прошло достаточно много времени... Но я так никуда и не пришла.» «NORMAL END. Конец Демоверсии.» | Проверка идёт в момент любого увеличения, в том числе в середине сцены. |
script_4_tgavan_nars.rpy:615 | Согласие Нарси идти к бару: срок = текущее время + 20. Если счётчик становится больше этого срока, срабатывает end_time_nar: Нарси уходит, квест «nars_kap» проваливается (script_4_tgavan_nars.rpy:658-670). | Значит, на путь до бара с Нарси у героини остаётся 20 единиц, на 21-й провал. |
script_4_airat.rpy:356-357, script.rpy:627-628 | В конце сцены перед экраном переходов (script_4_airat.rpy:356), если записи ещё нет, запоминается текущее время gametime._vrem["girl_air"]. Когда счётчик становится больше этого значения +5, у «girl_air» снимается местоположение (girl_air.lock = None). | Какая это сцена и что значит эта «девушка» для сюжета, здесь не расшифровано: только факт кода. |
Каждое прямое «перенести героиню» внутри сцен (+1 каждое)
Эти присваивания в коде не связаны со стрелкой: сцена сама отправляет героиню в место. Ссылки на строки по файлам:
live2d.rpy:60(сценаlive_2d_defines) →loc_tgavan_blackscript3_gubert.rpy:339(сценаchaos_enter_down_next_label) →chaos_enter;395(сценаosm_chaos_table) →chaos_enterscript3_nazad.rpy:4(сценаscript3_nazadli) →less_start;21(сценаscript3_nazad_begin) →less_start;24(сценаscript3_nazad_begin) →less_start;61(сценаscript3_nazad_begin) →less_tashroad_begin;84(сценаscript3_nazad_begin) →less_start;114(сценаscript3_nazad_begin) →less_tashroad_tash;175(сценаscript3_nazad_begin) →less_start;179(сценаscript3_nazad_begin) →less_tashroad_tash;688(сценаscript3_nazad_tash_2gone) →less_slime;1018(сценаscript3_nazad_tash_urza) →less_tashroad_tash;1042(сценаscript3_nazad_tash_urza) →chaos_enterscript3_road.rpy:3(сценаscript_3_road) →less_start;97(сценаless_up_begin_barier_label) →less_up_barier;180(сценаsluc) →less_perscript3_sova.rpy:156(сценаson_less2_end) →my_location.namescript3_tgavan_begin.rpy:756(сценаscript_3_tgavan_vhoddorr_menu) →tgavan_lock;808(сценаscript_3_tgavan_adr_potion_menu) →my_location.name;1081(сценаscript_3_tgavan_enter) →tgavan_lockscript3_tgavan_oh.rpy:421(сценаscript_3_tgavan_airat_adr_menu2) →loc_tgavan_door;703(сценаscript_4_tgavan_adro) →tgavan_lock;726(сценаscript_4_tgavan_adro) →tgavan_lock;1130(сценаscript_3_seal_adro_tgavan) →tgavan_lock;1226(сценаscript_3_seal_adro_tgavan) →tgavan_lock;1228(сценаscript_3_seal_adro_tgavan) →loc_tgavan_door;1230(сценаscript_3_seal_adro_tgavan) →less_left_road;1232(сценаscript_3_seal_adro_tgavan) →less_startscript3_tgavan_road.rpy:54(сценаscript_3_tgavan_road_begin) →less_per;107(сценаscript_3_tgavan_road_begin) →less_per;134(сценаscript_3_tgavan_road_black) →loc_tgavan_doorscript_1_less_begin.rpy:44(сценаstart3) →less_start;51(сценаstart3) →airat_main;55(сценаstart3) →airat_main;57(сценаstart3) →loc_tgavan_door;74(сценаstart3) →less_startscript_1_less_hand.rpy:447(сценаnesm) →less_startscript_4_airat.rpy:3(сценаscript_4_airat_in_wall) →less_white_wall;139(сценаairat_main_bottom) →airat_main;145(сценаairat_main_bottom) →airat_main;186(сценаairat_main_bottom) →less_white_wall;572(сценаairat_church_corridor_arrows_up_next_label) →airat_church_kar;1439(сценаairat_church_inside_arrows_bottom_next_label) →airat_church_inside;1461(сценаairat_church_inside_arrows_bottom_next_label) →airat_church;1498(сценаdev_door_label) →airat_left;1541(сценаairat_house_luiza) →airat_luiza_house;1632(сценаairat_house_luiza) →airat_left;1647(сценаairat_house_luiza) →airat_left;1758(сценаairat_house_luiza_next) →airat_mainscript_4_tgavan_adro.rpy:54(сценаscript_4_tgavan_to_adro) →tgavan_sar_cabscript_4_tgavan_nars.rpy:3(сценаbar_nar_label) →tgavan_lock;29(сценаbar_nar_label) →bar_nar;305(сценаscript_4_tgavan_nars_bar_nar_delo_menu) →tgavan_lock;475(сценаscript_4_tgavan_nars_bar_nar_igl_menu) →tgavan_lock;933(сценаscript_4_tgavan_potion) →my_location.namescript_5_airat.rpy:449(сценаcat_inspect) →airat_catscript_av.rpy:69(сценаblu_label) →chaos_enterscript_npc_items.rpy:1568(сценаbonny_lock) →less_bonny;1575(сценаbonny_lock) →less_bonny;1581(сценаpuzzle_complete) →less_per;1593(сценаpuzzle_complete) →less_bonnyscript_tgavan.rpy:19(сценаtgavan_sarebros_right) →tgavan_corridor_sar
Строка live2d.rpy:60 (начальное назначение места при определении игры) стоит до старта игры; даёт ли она +1 к начальному 0, по порядку запуска не проверено.
Что ещё не сделано
- Время у каждой сцены и каждого выбора внутри локаций (кроме перечисленных мест выше других изменений нет, но на схемах сцен оно пока не подписано).
- Время в «Путях» (минимальное и варианты).
- Условия, при которых прямой перенос идёт или нет, не разобраны для каждой ветки.