Skip to content

Add cyberware-gated pool trajectory preview - #155

Merged
dop42 merged 1 commit into
mainfrom
feat/pool-cyberware-trajectory
Oct 24, 2026
Merged

dop42 merged 1 commit into
mainfrom
feat/pool-cyberware-trajectory

Conversation

@dop42

@dop42 dop42 commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Add the accepted optical trajectory assistant to pool, unlocked by cyberware actually installed through the ripperdoc. Default Kiroshi optics tiers 1/2/3 grant incoming impact guidance, separate white/first-object outgoing paths, then bounded cushion rebounds. Configuration controls the minimum free level, implant/slot/tier mappings, condition threshold, range, bounce limit and estimation precision. No implant grants no overlay by default.

The server reads character cyberware metadata, sends only the current shooter's personal numeric grant, and refreshes it independently once per second as well as on watch/entry. Inventory possession and client-supplied levels do not grant assistance. Implant removal, tier changes, ownership loss and character changes revoke the presentation; invalid or missing grants fail closed without interrupting ball playback.

The preview responds to direction and charge, includes drag/momentum-transfer/cushion loss, ends at pockets or the next static-ball collision, and deliberately quantizes direction/power. It is an estimate of the first impact, not a full multi-ball simulation. The existing HUD labels it as an optical estimate. Real ball physics, scoring, native model pack and shot validation remain unchanged.

Validation: full Lua suite 6,722 checks with zero failures; all 69 audits pass. New tests cover installed tiers/condition/slot/custom config, private grants, independent removal/tier refresh, spoofed levels, malformed wire data, first-impact geometry, cut-shot outgoing paths, pockets, charge-dependent range, cushion rebounds, cleanup and native line/VM limits. The measured worst preview callback at the maximum configured 6 m range is 7,300 instructions (guard 8,000); normal enabled-client startup is 6,000. Geometry remains within 20 native lines and expires after 200 ms. Syntax, sandbox scan and pool UI lifecycle pass.

Not yet verified in game: compare all three optic levels and withdrawal during play after reconnecting. Deployment adds the new TRAJECTORY defaults only when absent, preserving existing pool placement/settings. No assets, SQL migration, clinic placement or UI build change is required. MANUAL documents all settings and limits.

Closes #154. Documentation site tracking: opx77-framework/opx77_doc#19.

@dop42 dop42 added the needs-in-game-test Written and tested offline; must be checked on a live Open77 client label Oct 24, 2026
@dop42
dop42 merged commit 594b9b2 into main Oct 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-in-game-test Written and tested offline; must be checked on a live Open77 client

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cyberware-gated pool trajectory preview

1 participant