neon-sprawl/docs/decomposition/modules/E6_M2_ConsentAndRiskUxSigna...

2.4 KiB
Raw Blame History

E6.M2 — ConsentAndRiskUxSignals

Summary

Field Value
Module ID E6.M2
Epic Epic 6 — PvP Security
Stage target Prototype
Status Planned (see dependency register)

Purpose

Entry warnings, in-zone risk UI, and clear PvP state communication using eligibility from E6.M1 and camera/readability context from E1.M2.

E1.M2 camera adjacency (NEO-18)

When implementing zone-risk HUD and related client presentation, treat E1.M2 as the framing source:

  • May read the follow rigs camera_state snapshot (client/scripts/camera_state.gd) — field meanings and refresh cadence: Consumer contract.
  • Not duplicated in CameraState today: occlusion on/off, bound zoom/occlusion resources, presentation_yaw_deg, pitch_elevation_deg — read IsometricFollowCamera exports (client/scripts/isometric_follow_camera.gd) when needed.
  • If CameraState.yaw becomes non-zero (orbit enabled mid-project per E1.M2 rotation policy), screen-space layouts that assumed a fixed diagonal may need a compass / telegraph pass; keep gameplay-adjacent semantics world-anchored where possible.
  • Authority: Client vs server — E1.M2 — the server must not use client-reported camera pose for gameplay checks (targeting, LOS, zone rules).

Responsibilities

  • Show RiskPrompt on low-sec entry; drive ZoneRiskState / PvPIndicatorState in HUD.

Key contracts

Contract Role
RiskPrompt Consent dialog payload and outcomes.
ZoneRiskState Display model for current zone risk.
PvPIndicatorState Persistent indicator semantics.

Module dependencies

  • E6.M1 — PvPEligibilityAndFlagState.
  • E1.M2 — IsometricCameraController.

Dependents (by design)

  • Client UX only; server remains authoritative via E6.M1 / E4.M4.

Epic 6 Slice 2risk_prompt_shown, accepted/declined.

Source anchors