Files
onboarding-project/docs/worklog/11-payzone-deposit-flight-unified.md
T
2026-08-14 15:03:43 +03:00

27 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PayZoneC: уніфікація депозит-флайту з ResourceC (2026-08-12)
`playDepositFlight` (політ токена з HUD в Pay Zone) використовував
окремий TweenJS-based шлях, не звʼязаний з новою логікою `ResourceC`:
мав ротейт (`mesh.rotation.y += 0.3`) і стартовий `scale=1` (дефолт
свіжого `ResourceC.createVisual()`, без жодного стиску).
- **Ротейт прибрано** повністю (користувач: "ротейту не має бути").
- **Компенсація перспективи** — та ж сама техніка, що й у
`ResourceC.toTarget`, але в ПРОТИЛЕЖНИЙ бік: цей політ стартує БЛИЗЬКО
до камери (HUD-анкер) і летить ДАЛІ (Pay Zone, зазвичай далі від
камери) — без компенсації токен би візуально ЗМЕНШУВАВСЯ на льоту.
- **⚠️ Знайдений і виправлений баг: токен був значно більшим за ресурс з наземної анімації**
Причина: `ResourceC.createVisual()` не проходить через `SHRINK_AMOUNT`-
стиск (той стосується лише "живих" `FlyingResource` з баунсом) — токен
стартував з `scale=1`, тоді як ресурс, який щойно долетів на те саме
місце з `ResourceC`, виглядав як `0.85`. **Фікс**: `RESOURCE_ICON_BASE_SCALE
= 1 - SHRINK_AMOUNT` (0.85) винесений з `ResourceC.ts` як `export`,
`PayZoneC` множить на нього. Плюс окремий `DEPOSIT_FLIGHT_SCALE_MULTIPLIER`
(зараз `1`, користувач підкрутив до `0.3` в UI-сесії) — локальний
тюнер розміру САМЕ цього польоту, не торкаючись спільної константи
(яка вплинула б і на "земля->юай" анімацію).
- **Урок**: коли два різні контролери візуально показують "той самий"
ресурс в різних сценах польоту — тримати спільну константу базового
розміру (`export`), а не дублювати магічне число, інакше вони
розходяться, як тут.