feat(tyrant): add arena boss succession
Release / release (push) Successful in 2m29s
CI / build (push) Successful in 1m7s

This commit is contained in:
dmg
2026-08-23 17:55:14 -04:00
parent 10f670a7da
commit 9ed0eed832
44 changed files with 536 additions and 535 deletions
@@ -1,25 +1,23 @@
---
type: User Story
title: "US-010: Handle inactivity and pending selections"
description: Replace absent or unconfirmed role holders using recently active eligible players.
title: "US-010: Handle inactivity and arena vacancies"
description: Replace inactive role holders through the shared arena without granting legacy pending selections.
status: done
---
# US-010: Handle inactivity and pending selections
# US-010: Handle inactivity and arena vacancies
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] Tyrant and Vigilante vacancies use their shared arena challenges rather than random candidate selection.
- [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] Previous role holders may compete for their former role under the same arena eligibility and reset rules as other opted-in participants.
- [x] Tyrant inactivity ends the reign, clears all assignments, and opens the Tyrant arena challenge; the Vigilante challenge can open only after a Tyrant becomes 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] Legacy pending role selections are cleared safely into the applicable arena vacancy without granting a role.
- [x] Candidate selection cannot assign conflicting roles or choose an opted-out player, including during concurrent joins and deaths.
## Related
@@ -27,3 +25,4 @@ As a **participant**, I want inactive central roles to be replaced fairly so tha
- [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)
- [Claim the Tyrant role in the arena](us-020-claim-tyrant-in-arena.md)