Skip to content

Visibility model: ownership, faceVisibility, presence #116

Description

@jordanwallwork

Parent: Issue #98

Implement zone ownership and visibility. Zones have owners; cards have two visibility axes.

  • computeViewState(state, viewerSeat | 'omniscient') → MaskedState
  • Axes: faceVisibility (all|owner|others|none), presence (visible|hidden-from-non-owners)
  • Card masking: non-owners see blanks, hidden piles disappear
  • Solo features: seat switcher, omniscient mode
  • No per-card overrides; reveal = move to visible zone

Acceptance criteria

  • computeViewState() masks by visibility rules
  • Seat switcher updates view without modifying state
  • Omniscient mode shows all cards
  • Solo freeform play still works
  • Tests verify masking for 2/4/8 player configs

Blocked by: None

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions