KAZIK/docs/OBSERVER.md
Artvasil09 23dc40ee5c feat: implement native darts mini-game, AI observer mode, and fortune session assets
- Darts: native 500-point match against Max with sway/fatigue mouse aim, parabolic throw camera, raster arm animations, and 16 camera-relative flying dart views

- AI Observer: autonomous spectator mode for Hold'em, Blackjack, Durak, and Billiards with profile isolation and playback controls

- Fortune Session: raster sprite packs, mist/orb animations, tarot divination spreads, and pack tools

- Hall Integration: wall dartboard in lounge, observer terminal dispatch, and bot turn hooks

- Packaging & Verification: updated installer streaming hash, synchronized launcher, passing check suites and release smoke checks
2026-10-24 22:10:25 +03:00

2.3 KiB

Native AI Observer

The observer lounge opens a game selector rather than the old unavailable modal. All gameplay, decisions, rendering and input remain MASM32. No neural model or network connection is used.

Games

  • Heads-up Hold'em: the existing bot decision is shared by both seats.
  • Blackjack: an autonomous first seat plays against the normal dealer.
  • Durak: both throwing-in and transfer variants use the same legal-move bot.
  • Billiards: both pyramid and eight-ball seats use the existing shot planner.

These are real rounds using the normal shuffled decks, settlement and billiard physics. The observer does not generate scripted winners. Both poker and Durak hands are visible to the spectator, but each bot still sees only its own cards and public information. Blackjack retains the dealer's normal hidden hole card.

Controls

Select a game with the mouse, keys 1-6, or arrows and Enter. During a match:

  • Space or the pause button pauses/resumes decisions and animation.
  • Tab or the speed button cycles 1x, 2x and 4x.
  • N or restart starts a fresh round without adding an abandoned round to scores.
  • Escape or Games returns to the selector. Escape again returns to the hall.

Completed rounds remain visible for three simulated seconds before another round starts. Each round uses a fresh virtual stack. Scores reset when choosing a different watching session. Human gameplay commands are discarded while watching.

Profile Isolation

The observer snapshots the player's balance, RNG state, tournament flag, bets, game variants and blackjack/billiard opponent settings. These are restored before leaving. Native save, NPC-contract progress and loss-protection charms have an observer barrier. Watching does not spend personal funds, charms, grant balance achievements, progress contracts or write the profile.

Verification

C:/Python314/python.exe tools/tests/check_observer.py compiles fresh native game and spectator procedures against existing rendering helpers. It runs 80 complete card rounds, checks both billiard seats, pause and profile restoration, compares runtime files before/after, and captures actual native framebuffers.

After rebuilding the full game, --parity checks that the shipping procedures match the native-tested object. test_billiards_module.ps1 additionally exercises ordinary human/AI billiards with observer mode disabled.