- Billiards: add native Russian Pyramid & American Eight-Ball pool with physics prediction, controls, and regression tests - Scratch Tickets: add dedicated counter, mat presentation, elliptical coin scraping, 4 ticket types, and payout effects - First-Person Dice: add native dice scene, hand anchor frames, throwing animation, and table perspective - City Wake & Weather: add arrival cutscene, alley geometry, weather/rain effects, and lighter/rocker animation - World Dressing: add hall paintings, furniture packs, hall lighting, and scene regression tests - Build & Tooling: update build.bat for modern MSVC toolchain, update launcher hash, and refresh shipping binaries
1.8 KiB
First-Person Dice
The ivory/red identity and MASM triangle renderer are retained. Held dice are now integrated into the first four hand poses, with skin contact and shading, rather than painted as unrelated cubes over the palm. Once released, procedural MASM cubes take over at anchors measured from the last held sprite.
The scene reuses the coin table/dealer art and adds sixteen generated hand poses with a full black-leather cuff. Preparation lasts 240 ms, followed by the original three-bounce curve remapped into the remaining 1360 ms. The unchanged parity wager settles once at 1600 ms. The stationary top faces and explicit Russian sum/payout strip reveal the result. Ready and result states do not consume random numbers during rendering.
Rotation completes full revolutions with eased angular speed. The resting orientation is a yaw on the cloth plane, viewed from above, without sideways roll. A projected bottom-face contact shadow and soft ambient shadow attach each settled cube to the felt. Opposite faces sum to seven.
Mouse buttons map into the original keyboard rules. Escape or the Exit button queues departure during a paid throw; settlement occurs before returning to the hall. W/S, arrows, 1/2 and Space remain supported.
All rendering, input, animation, loading and gameplay are MASM. The Python
script only normalizes a transparent sprite atlas offline. Built-in generation
specification and provenance: assets/sprites/dice/prompts-v2.json.
Verification: the native action suite covers 300 paid throws at four update
rates, queued exits, mouse controls, missing-art fallback, six checkpoints and
forty production-renderer animation frames, release-boundary snapshots and all
six top-face results. check_dice_scene.py --parity
compares shipped and tested procedures and checks native Russian result glyphs.