Phase 2 DoD closeout: curve physics, AI delta, share, setup UX

- Curve bumper: spin-modifier ±35° на отскоке (детерминированный знак на bumper)
  + визуальный вихрь-индикатор. Теперь curve механически отличается от standard.
- Easy/Medium AI delta: распознавательная дистанция (Easy 150px / Medium 280px),
  reliability (Easy 0.75 / Medium 0.95). difficulty прокидывается из каждой
  personality в shouldActivateFlipperBase. Hard остаётся placeholder для Phase 3.
- Share button на ResultScene: snapshot canvas → PNG blob → platform.shareImage().
  Mock логирует, YG использует SDK share. Telemetry: share_clicked / share_failed.
- Setup UX переписан: палитра типов сверху (4 типа + trash) + tap-палитра-tap-слот
  (unified mobile/desktop) + drag-from-palette ghost (desktop). Long-tap слота без
  выбранного типа удаляет содержимое (быстрый shortcut). Заменил cycle-on-click
  на normalуй setup, как в DoD.

Closes codex finding #2 (Phase 2 DoD gap).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
aevgarik
2026-05-24 03:50:16 +03:00
parent 8e49e088b0
commit 4e3172de81
8 changed files with 281 additions and 146 deletions

View File

@@ -35,6 +35,7 @@ export class DefensiveAI implements AIPlayer {
'left',
this.params,
this.lastReactionTimeLeft,
this.difficulty,
);
if (shouldLeft) {
if (ctx.leftFlipper.activate()) {
@@ -46,6 +47,7 @@ export class DefensiveAI implements AIPlayer {
'right',
this.params,
this.lastReactionTimeRight,
this.difficulty,
);
if (shouldRight) {
if (ctx.rightFlipper.activate()) {