Files
spigot-tyrant/design/user-stories/us-015-manage-tyrant-control-panel.md
T
dmg 553db666e1
Release / release (push) Successful in 2m39s
CI / build (push) Successful in 1m10s
feat(armor): add Tyrant legacy rewards
2026-09-04 22:54:11 -04:00

3.8 KiB

type, title, description, status
type title description status
User Story US-015: Manage a reign through the Tyrant control panel Give the active Tyrant a graphical control panel for inspecting and managing the current reign. done

US-015: Manage a reign through the Tyrant control panel

As the Tyrant, I want a control panel for my reign so that I can inspect progress, purchase unlocks, assign classes, and use abilities without memorizing commands.

Acceptance criteria

  • The active Tyrant can open the control panel with /tyrant menu, and /tyrant with no arguments opens the same panel.
  • A player who is not the active Tyrant cannot open or operate the control panel.
  • When the active Tyrant joins while the event is running, the control panel opens automatically five seconds after login.
  • Automatic opening is cancelled if the Tyrant disconnects, loses the Tyrant role, or the event pauses or stops during the five-second delay.
  • Other players and pending Tyrant candidates do not receive the automatically opened control panel.
  • Closing an automatically opened control panel does not cause it to reopen during the same login session.
  • The Tyrant may open the control panel manually during the five-second delay without causing a second panel to open automatically.
  • The main screen shows the Tyrant's level, unspent choices, purchased unlocks, class assignments, and roster-intelligence cooldown.
  • Purchased, available, unavailable, and cooldown-gated actions are visually distinguishable and explain why they cannot currently be used.
  • The Tyrant can navigate between overview, unlock, class-assignment, and ability screens and can close the panel without changing gameplay state.
  • The Tyrant can review and purchase an available unlock after confirming the selected unlock and its choice cost.
  • After all standard unlocks are purchased, the Tyrant can select and confirm an unclaimed legacy armor slot through the control panel.
  • The Tyrant can select a purchased class and assign or reassign it to an eligible online player.
  • The class player selector excludes the Tyrant and clearly identifies players who are opted out or otherwise ineligible.
  • Class reassignment identifies the current holder and requires confirmation before replacing that holder.
  • The Tyrant can activate roster intelligence from the panel when the ability is purchased and ready.
  • A successful or rejected action refreshes the panel from authoritative current state and communicates the result clearly.
  • Panel actions use the same domain rules and persistence behavior as their command equivalents.
  • Stale, repeated, or concurrent panel interactions cannot duplicate purchases, bypass cooldowns, or create conflicting assignments.
  • Panel actions become unavailable immediately if the game pauses, the reign ends, or the player is no longer the Tyrant.
  • Existing /tyrant choices, /tyrant buy, /tyrant assign, and /tyrant intelligence commands remain available as alternatives.
  • The active Tyrant can open the control panel by using the bound Tyrant control item.

Validation

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