|
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> |
|---|
|
|
| apps/game/src/agent/SceneAgentView.ts |
|---|
| apps/game/src/agent/__tests__/snapshot.test.ts |
|---|
| apps/game/src/agent/snapshot.ts |
|---|
| apps/game/src/data/dialogues/elder_hand_in.json |
|---|
| apps/game/src/data/ids.ts |
|---|
| apps/game/src/data/locations.ts |
|---|
| apps/game/src/scenes/LocationScene.ts |
|---|
| apps/game/src/systems/Lighting.ts |
|---|
| apps/game/src/systems/__tests__/lighting.test.ts |
|---|
| docs/engine/agent.md |
|---|
| docs/engine/practices.md |
|---|