Files
spigot-tyrant/design/user-stories/us-016-manage-vigilante-control-panel.md
T

3.8 KiB

type, title, description, status
type title description status
User Story US-016: Manage Followers through the Vigilante control panel Give the active Vigilante a graphical control panel for reviewing and managing the resistance. done

US-016: Manage Followers through the Vigilante control panel

As the Vigilante, I want a control panel for managing Followers so that I can coordinate the resistance without memorizing commands.

Acceptance criteria

  • The active Vigilante can open the control panel with /vigilante menu, and /vigilante with no arguments opens the same panel.
  • A player who is not the active Vigilante cannot open or operate the control panel.
  • The control panel opens automatically five seconds after the active Vigilante joins a running event.
  • Automatic opening is cancelled if the player disconnects, loses the Vigilante role, or the event pauses or stops during the five-second delay.
  • Pending Vigilante candidates and other players do not receive the automatically opened control panel.
  • Manually opening the control panel during the delay prevents a duplicate automatic opening.
  • Closing the automatically opened control panel does not cause it to reopen during the same login session.
  • The overview shows current Followers, pending invitations, and the number of nearby Followers currently eligible to contribute combat effects.
  • Each Follower's online, living, same-world, proximity, and participation status is communicated without exposing information unavailable to the Vigilante.
  • The control panel shows the current Strength and Resistance contribution and configured caps.
  • The Vigilante can navigate between overview, recruitment, Follower-management, and role-control screens.
  • The recruitment screen lists eligible online players and explains why opted-out, Tyrant, Vigilante, or otherwise ineligible players cannot be invited.
  • The Vigilante can invite an eligible player after confirmation.
  • Pending outgoing invitations are identified and cannot be duplicated through repeated or concurrent interaction.
  • Invited players receive the existing invitation notice and may continue using /vigilante accept.
  • The Follower-management screen identifies current Followers and requires confirmation before dismissal.
  • Successful invitations and dismissals refresh the control panel from authoritative current state and notify affected players.
  • The role-control screen allows the Vigilante to relinquish the role only after explicit confirmation.
  • Relinquishing through the control panel uses normal Vigilante replacement and Follower-cleanup rules.
  • Every action revalidates the running lifecycle and active Vigilante before changing state.
  • Stale or repeated control-panel interactions cannot invite an ineligible player, duplicate an invitation, or dismiss the wrong Follower.
  • Existing /vigilante invite, /vigilante accept, /vigilante dismiss, /vigilante leave, and /tyrant relinquish confirm commands remain available.
  • The active Vigilante can open the control panel by using the bound Vigilante control item.

Validation

Automated tests verify default and explicit command entry points, active-Vigilante authorization, overview state, invitation deduplication and eligibility, the exact 100-tick login delay, lifecycle cancellation, and duplicate-opening prevention. The complete ./gradlew clean check jar lifecycle passes.