feat(opy): support getHorizontalFacingAngle receiver member - #138
Conversation
Teakowa
left a comment
There was a problem hiding this comment.
Major — crates/opy-rs/src/manifest/data/manifest.json
The new member lowers directly to the Workshop getHorizontalFacingAngle catalog value. #130 requires preserving OverPy's degree-to-radian wrapper semantics (radians(Horizontal Facing Angle Of(player))). The new oracle test uses ... == 0, which cannot distinguish radians from raw degrees and therefore masks this regression. Preserve the conversion and add a non-zero/value-capturing regression that proves it.
Major — compatibility evidence
#130 requires both overpy-client-to-server and 6v6-adjustments to remain represented in validation/provenance. This PR adds only the client-to-server-derived regression; 6v6-adjustments still stops earlier at the #defineMember residual and no 6v6-derived evidence is added. Add 6v6-linked regression/provenance, or resolve the Issue/AC mismatch before closing #130.
|
Addressed the review feedback in 2839baf:\n\n- The synthetic/probe regression now captures getHorizontalFacingAngle() into a global variable, and the Rust test asserts the captured canonical WIR value and receiver.\n- Added a 6v6-adjustments-linked minimized regression with provenance to heroes/juno/orbital_ray.opy:20-24.\n- The 6v6 regression and the pinned OverPy oracle emit the same direct canonical value.\n\nI did not add an implicit radians wrapper because the current pinned evidence contradicts that requirement: OverPy 9.7.10 describes this member as returning degrees, the full clientToServer oracle emits Horizontal Facing Angle Of directly (including its numeric comparisons), and the workshop-rs catalog has no radians conversion value. Issue #130 also defines the contract as Player -> Number and requires canonical-WIR equivalence. If the intended contract is a radians wrapper, please point to the updated oracle/catalog contract or a source example; otherwise the direct lowering is the evidence-backed behavior. |
Summary
getHorizontalFacingAnglereceiver-member mapping to the OPY manifest.horizontalAngleOfDirection.Verification
cargo fmt --all -- --checkcargo test --workspace --all-targets --all-featurescargo clippy --workspace --all-targets --all-features -- -D warningsFixes #130