Files
spigot-tyrant/design/user-stories/us-010-handle-inactivity-and-selection.md
T
dmg 10f670a7da
Release / release (push) Successful in 2m44s
CI / build (push) Successful in 1m3s
feat(vigilante): add arena boss succession
2026-08-23 17:31:42 -04:00

30 lines
1.7 KiB
Markdown

---
type: User Story
title: "US-010: Handle inactivity and pending selections"
description: Replace absent or unconfirmed role holders using recently active eligible players.
status: done
---
# US-010: Handle inactivity and pending selections
As a **participant**, I want inactive central roles to be replaced fairly so that the game does not stall around absent players.
## Acceptance criteria
- [x] A Tyrant or Vigilante who has not logged in for 48 unpaused hours loses the position.
- [x] Random candidates are drawn from eligible opted-in players who logged in during the preceding 24 hours.
- [x] The Tyrant is always excluded from Vigilante selection.
- [x] A previous role holder is excluded when another eligible candidate exists and may be reused only as a fallback.
- [x] Tyrant inactivity ends the reign, clears all assignments, invokes normal random Tyrant succession, and opens the Vigilante arena challenge once a Tyrant is active.
- [x] Vigilante inactivity clears Followers and opens the Vigilante arena challenge without changing the Tyrant.
- [x] An offline randomly selected candidate must log in within 24 unpaused hours to confirm the assignment.
- [x] An unconfirmed Tyrant selection expires and rerolls automatically under the same eligibility rules.
- [x] Tyrant selection remains vacant and retries periodically when no valid candidate exists.
- [x] Candidate selection cannot assign conflicting roles or choose an opted-out player, including during concurrent joins and deaths.
## Related
- [Tyrant game state machine](../concepts/game-state-machine.md)
- [Inform players and manage participation](us-011-inform-and-manage-participation.md)
- [Claim the Vigilante role in the arena](us-019-claim-vigilante-in-arena.md)