flight: wind the key — a held Launch, the called shot, and a wreck that waits for the city
Launch is HELD now. Each Rules.LAUNCH.windSeconds of hold is one wind of the
key, the last wind gets a window of its own, past it a red zone of
overwindSeconds throws overwound (faster, five seconds of boost fuel, and an
airframe that breaks overwindDamage times as easily), and past THAT the spring
slips and the throw is a dud. The modelled key on the toy's back turns a full
turn per wind, trembles in the red zone and spins back when the spring goes.
Boost is what the wind bought: boostFuel is seconds of thrust, it drains only
while Boost is thrusting, and an empty tank is a dead throttle.
On the launcher Boost and Dive step the called shot forward and back through
the landmarks City:landmarks() reports still standing, with 'no call' as one of
the stops — no new control on any device.
The round now ends when the airframe has settled AND City:atRest() agrees, or
after a further restCityGrace; measured last-moving-to-wreck fell from ~1.8 s to
1.20 / 1.22 s on a settled city. The permanent no-op Game.tickChain call is
gone, telemetry publishes elevation / winds / windCharge / winding / overwound /
boostFuel / launchSpeed every frame, and onModuleReload re-subscribes the bus.
Verified on keyboard, gamepad and touch: holds of 0.8 / 1.35 / 1.9 s read
1 / 2 / 3 winds and throw at 9 / 12 / 15 m/s (peaks 8.3 / 10.9 / 13.9), a 2.4 s
hold releases overwound at 16 with boostFuel 5.0, a 3.5 s hold is a 6 m/s dud;
the called ring reads none/tower/span/tank on all three; a called SPAN topple
pays 500 x tier x 2 x 2 = 4000; Escape on the launcher pauses; boosted peak
19.11 m/s under the 20 cap with no CCD anywhere.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0139MdCaDTnP2jpG8zgk5N2N