- 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
32 lines
1.8 KiB
Markdown
32 lines
1.8 KiB
Markdown
# 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.
|