SprPoP: тесты смерти от меча (базовое поведение до правок 12/13)
КОД ИГРЫ НЕ МЕНЯЛСЯ. Новый набор t_death — 9 проверок, всего наборов 16. Заведён ПЕРЕД правкой находок 12/13, чтобы поймать деградацию: правка 13 в изоляции уже ломала смерть (мёртвый оставался с ненулевой скоростью падения, проваливался за нижнюю границу, игра уходила на рестарт, не показав тела). Поэтому проверяется ровно то, на что эти правки влияют: * удар не в боевой стойке смертелен независимо от запаса HP; * удар с мечом снимает одно HP, на последнем — убивает; * ПЕРЕЖИВШИЙ удар ставится на пол своего ряда с нулевой скоростью падения (в оригинале это единственная ветка, где координата трогается); * тело после смерти остаётся в своём ряду — и на ровном полу, и у самого обрыва (целевая сцена находки 12; после правки ожидание изменится осознанно). По дороге тест дважды показал не баг движка, а мои ошибки в самой сцене: обвязка выставляет признак «жив» только стражу, а урон применяется не сразу — удар выставляет дельту, и HP меняет отдельный шаг кадра, как в оригинале. Оба раза чинился тест. VANILLA/BUGFIXED: записано, что переключатель уже существует в настройках и зафиксирован в положении VANILLA, второй заводить не нужно. Отмечено главное следствие — наш «ванильный» билд УЖЕ не чистая ваниль (часть ванильных багов пофикшена), поэтому при разделении режимов придётся пройтись по сделанным отступлениям и распределить их; отдельные фиксы (падение сквозь стену) могут быть сделаны и в нынешнем билде. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011MsUsEFAQfsjjQpJ7RtKVY
This commit is contained in:
@@ -67,12 +67,28 @@
|
||||
То есть когда появится BUGFIXED, этому тесту понадобится ожидание,
|
||||
зависящее от режима, — и он готов стать первым таким.
|
||||
|
||||
## Переключатель уже есть — второго не нужно
|
||||
|
||||
Уточнено 2026-08-31: в настройках игры ПЕРЕКЛЮЧАТЕЛЬ VANILLA/ENHANCED
|
||||
СУЩЕСТВУЕТ (`docs/menu_settings_plan.md`), просто сейчас он жёстко
|
||||
зафиксирован в положении VANILLA. Отдельную сущность заводить не надо —
|
||||
эта задача про то, чтобы наполнить смыслом уже имеющееся положение
|
||||
ENHANCED.
|
||||
|
||||
**Наш «ванильный» билд уже не чистая ваниль.** Часть ванильных багов у
|
||||
нас пофикшена по ходу портирования. Значит:
|
||||
|
||||
* нельзя считать текущее поведение эталоном ванили — оно смешанное;
|
||||
* при разделении режимов придётся пройтись по уже сделанным фиксам и
|
||||
решить по каждому, остаётся он в VANILLA или уезжает в ENHANCED;
|
||||
* и наоборот: отдельные исправления (например, падение сквозь стену)
|
||||
вполне могут быть сделаны прямо в нынешнем «ванильном» билде, если
|
||||
сочтём, что играбельность важнее буквальности.
|
||||
|
||||
## Что предстоит решить
|
||||
|
||||
1. **Как переключать.** Ключ сборки (два разных `.exe`) или настройка в
|
||||
`POP.CFG` с проверкой в рантайме. У нас уже есть VANILLA/ENHANCED в
|
||||
меню настроек (`docs/menu_settings_plan.md`) — возможно, это то же
|
||||
самое измерение и стоит объединить, а не заводить второе.
|
||||
1. **Что считать ванилью на практике.** Составить список уже сделанных
|
||||
отступлений от оригинала и распределить их между режимами.
|
||||
2. **Цена рантайм-проверки.** Условия попадают в физику и `play_seq`, то
|
||||
есть в горячий путь. Если переключать в рантайме, проверка должна
|
||||
быть дешевле самого фикса: флаг в резиденте, а не вызов через банк.
|
||||
|
||||
Reference in New Issue
Block a user