feat(game): вечер после сдачи квеста, виньетка, световые импульсы в бою
...
- ids.ts: флаг FLAGS.evening; граф elder_hand_in.json ставит его узлом accept
(«вернусь до темноты» — контент-driven, валидатор держит флаг упомянутым)
- LightingDef.nightAmbient: GameLighting.update ведёт ночную цель ambient
(guard по последней цели, фейд 6 c); лампа героя — в тёмной области или вечером
- тёмные ауры зон наката: пятно на каждый тайл HazardDef (multiply под светом)
- виньетка: низкий hp (0.3) / накат без полотна (0.35), фейд 0.5 c
- импульсы: combat:hurt → тёплая вспышка в точке врага, резонанс → вспышка
у героя + подъём ambient, урон герою → красная вспышка на весь экран
- LocationScene: maxLights: MAX_LIGHTS (движковый пул больше не теряет
источники), setTileTracked — индекс layerTilePos живой при смене тайлов
- мост: scene:damagePlayer (полный боевой путь), снапшот lighting.vignette,
инвариант lighting-bounded расширен виньеткой 0..1
- доки: agent.md (vignette/scene:damagePlayer), practices.md (ночь = флаг,
импульсы = тот же пул)
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
9 hours ago