feat(engine): батч 2 — оживители статики + партиклы v2 + тайл-анимации
- anim/motion.ts: чистая sampleMotion — bob/sway/pulse/blink, композиция,
  округление bob до целого px; anim/SpriteMotion.ts — Pixi-адаптер
  (база снимается в конструкторе, живые params, detach, seed→фаза)
- render/particleSim.ts (breaking): stepParticle → ParticleVisual
  (alpha/scale/rotation/tint); drag, wobble, fadeIn/fadeOut-хвост,
  scaleOverLife, colorOverLife; mergeEmitterOptions — чистое слияние
  (burst больше не мутирует опции); fix: rng.int инклюзивен — выход
  за границы colors
- render/Particles.ts: текстурные частицы, colors/colorOverLife, spin,
  size-диапазон, max-лимит + пул спрайтов, blend 'add', setOptions,
  onFinish у oneShot
- IsoDepthLayer.addFx(view, tx, ty, bias=0.5) — эффекты поверх актёра
- IsometricTileMap.setTileAnimation(id, frames, fps) + update(dt) —
  один общий таймлайн на все клетки id (вода)
- engine.fx (батч 1) — рецепт авто-тика в доке вместо ручного update
- доки: render.md (частицы, addFx), anim.md (SpriteMotion, тайлы),
  recipes.md (ходьба/атмосфера/статика/вода/удар), maps.md
- тесты: motion (9), particleSim переписан под v2 (итого 360)

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 5bb5861 commit 2cd6bc6945beec157c91575cc01ffc97019852c9
@root root authored 15 hours ago
Showing 13 changed files
View
docs/engine/anim.md
View
docs/engine/maps.md
View
docs/engine/recipes.md
View
docs/engine/render.md
View
packages/engine/src/anim/SpriteMotion.ts 0 → 100644
View
packages/engine/src/anim/__tests__/motion.test.ts 0 → 100644
View
packages/engine/src/anim/motion.ts 0 → 100644
View
packages/engine/src/index.ts
View
packages/engine/src/map/IsometricTileMap.ts
View
packages/engine/src/render/IsoDepthLayer.ts
View
packages/engine/src/render/Particles.ts
View
packages/engine/src/render/__tests__/particleSim.test.ts
View
packages/engine/src/render/particleSim.ts