Игра: AudioSystem — позиционный звук мира, бой на событийной шине
- systems/AudioSystem.ts: playAt (затухание 1.5 степени + pan по экранному
  смещению от слушателя), playStep (джиттер rate), attach (подписки combat:*),
  setLayer (локальный амбиент, тик-фейд через новый MusicHandle.setVolume)
- CombatWorld освобождён от deps.audio: 5 play-вызовов -> события
  (новое combat:spit {pos}, combat:awake дополнен pos) — симуляция снова чистая
- combat:playerHit -> sfx/hurt подпиской; sink интерактивов через playAt
- MusicHandle.setVolume в движке (cancel+setValueAtTime — без борьбы с ramp)
- 11 тестов AudioSystem; agent:check зелёный

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 52c2452 commit dee4716d53e33029ff2d2743a06a0c1fb25ad3ba
@root root authored 12 hours ago
Showing 8 changed files
View
apps/game/src/scenes/LocationScene.ts
View
apps/game/src/systems/AudioSystem.ts 0 → 100644
View
apps/game/src/systems/__tests__/AudioSystem.test.ts 0 → 100644
View
apps/game/src/systems/combat/CombatWorld.ts
View
apps/game/src/testing/combatWorld.ts
View
docs/engine/assets-audio-save.md
View
packages/engine/src/audio/AudioManager.ts
View
packages/engine/src/audio/__tests__/AudioManager.test.ts