KAZIK/docs/DICE_FIRST_PERSON.md
Игорь Федосеев ca62db53e9 feat: implement native billiards, scratch tickets, first-person dice, and city wake scene
- 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
2026-10-16 12:37:40 +03:00

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.