-
Nikitos создал
Последний блок порта (§12, §6.8). Оригинал почти не трогает Godot — психика это числа и события, поэтому перенесена целиком (alive_psyche.gd 786 строк, alive_raid_director.gd 149). * три слоя: статика (44 психотипа по Личко/Леонгарду, 14 черт, OCEAN выводится из черт, тренированность, роль), динамика (страх, пульс, подавление, усталость, ярость, стресс, голод, холод, глухота) и триггеры (ранение, смерть союзника, пролёт пули, взрыв, окружение, убийство) со спайком и затуханием ПО ЧЕРТАМ, а не константой; * роль в отряде: лидер по психотипу и тренированности; ведомый без лидера сыпется, с лидером остывает быстрее (Маршалл), leadership(); * эффекты по Гроссману: пульс выше 140 сужает обзор и слух, сбивает прицел и мелкую моторику; барьер убийства вблизи тем сильнее, чем выше эмпатия; ступор лицом к лицу; вверх пульс разгоняется быстро, вниз остывает медленно; * срывы по Darkest Dungeon: на пороге стресса проверка даёт панику, ярость, ступор, сдачу или молитву плюс CSR у вымотанных; веса сдвигаются тем, что происходит (лидер не бежит, ведомый без лидера склонен к панике); * моральная травма (Шэй, Litz) с ПОЛОМ черт 30%: ангедония, утрата самосохранения, перенос между рейдами через carryMoralInjury; первое убийство переживается фазами эйфория → отрицание → раскаяние (эмпата вырвет); * режиссёр рейда: фазы spare/even/press, настройки mercy/let_win/focus, «загонщик» идёт к самому слабо вооружённому и НЕ добивает игрока при здоровье ниже 35%, назначения со сроком жизни; * $.alive.attach/of/tick связывают психику с узлом и ставят fear/pulse/stress. Тесты нашли ошибку: у психики не были выставлены геттеры breakCooldown, killPhaseLeft, vomitPending и time — поля менялись внутри, но снаружи их не было видно (проверки читали undefined). Проверка: tests/js/alive_test.mjs (31 проверка), полный набор qjs, bsp и агентских тестов зелёный.
6b2e2767