feat(armor): add Tyrant legacy rewards
This commit is contained in:
@@ -20,3 +20,4 @@
|
||||
18. [US-018: Complete Tyrant commands contextually](us-018-complete-commands-contextually.md)
|
||||
19. [US-019: Claim the Vigilante role in the arena](us-019-claim-vigilante-in-arena.md)
|
||||
20. [US-020: Claim the Tyrant role in the arena](us-020-claim-tyrant-in-arena.md)
|
||||
21. [US-021: Claim Tyrant legacy armor](us-021-claim-tyrant-legacy-armor.md)
|
||||
|
||||
@@ -14,6 +14,7 @@ As the **Tyrant**, I want to earn one meaningful choice for defeating the Vigila
|
||||
- [x] The Tyrant gains one level and one unlock choice only when personally credited with killing the current Vigilante.
|
||||
- [x] An administrator can grant the current Tyrant one level and one unlock choice without changing purchases or unrelated game state.
|
||||
- [x] Each successful administrative grant adds exactly one level and one choice, including across repeated invocations.
|
||||
- [x] After purchasing all six standard unlocks, the Tyrant may spend later choices on one of each legacy armor slot during the reign.
|
||||
- [x] A Vigilante death caused by another player, the environment, or the Vigilante does not level the Tyrant.
|
||||
- [x] Available purchases are Assassin, Fixer, Tamer, roster intelligence, permanent Resistance, and permanent Strength.
|
||||
- [x] Each class or ability can be purchased at most once during a reign.
|
||||
@@ -31,3 +32,4 @@ As the **Tyrant**, I want to earn one meaningful choice for defeating the Vigila
|
||||
- [Assign unlocked classes](us-004-assign-unlocked-classes.md)
|
||||
- [Purchase and use Tyrant abilities](us-009-use-tyrant-abilities.md)
|
||||
- [Manage a reign through the Tyrant control panel](us-015-manage-tyrant-control-panel.md)
|
||||
- [Claim Tyrant legacy armor](us-021-claim-tyrant-legacy-armor.md)
|
||||
|
||||
@@ -14,7 +14,7 @@ As a **server operator**, I want configurable and durable game behavior so that
|
||||
- [x] Configuration covers ranges, durations, cooldowns, inactivity and maintenance intervals, effect levels and caps, mob restrictions, item materials and names, messages, timer behavior, shared-role-arena boss balance, and a validated barrier wall height defaulting to 12 blocks.
|
||||
- [x] Defaults match the approved user stories, including a 50-block Tyrant range and Follower range, seven-day opt-out, 48-hour inactivity, and one-minute role maintenance.
|
||||
- [x] Invalid required configuration prevents partial plugin initialization and produces a clear server log message.
|
||||
- [x] UUID-keyed state stores lifecycle, current and pending roles, assignments, login history, participation, reign progression, purchases, choices, cooldowns, paused time, item delivery, and captured mobs; the administrator-set arena center is durable across restarts.
|
||||
- [x] UUID-keyed state stores lifecycle, current and pending roles, assignments, login history, participation, reign progression, purchases, choices, claimed legacy armor slots, cooldowns, paused time, item delivery, and captured mobs; the administrator-set arena center is durable across restarts.
|
||||
- [x] Cooldowns and deadlines use UTC instants and exclude administratively paused time.
|
||||
- [x] State is saved using atomic replacement where supported so failed writes do not replace valid state with partial data.
|
||||
- [x] Corrupt, unknown, or invalid records cannot silently grant progression, roles, powers, items, or duplicated mobs.
|
||||
@@ -27,3 +27,4 @@ As a **server operator**, I want configurable and durable game behavior so that
|
||||
- [Build, test, and release the plugin](us-013-build-test-and-release.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)
|
||||
- [Claim Tyrant legacy armor](us-021-claim-tyrant-legacy-armor.md)
|
||||
|
||||
@@ -22,6 +22,7 @@ As the **Tyrant**, I want a control panel for my reign so that I can inspect pro
|
||||
- [x] Purchased, available, unavailable, and cooldown-gated actions are visually distinguishable and explain why they cannot currently be used.
|
||||
- [x] The Tyrant can navigate between overview, unlock, class-assignment, and ability screens and can close the panel without changing gameplay state.
|
||||
- [x] The Tyrant can review and purchase an available unlock after confirming the selected unlock and its choice cost.
|
||||
- [x] After all standard unlocks are purchased, the Tyrant can select and confirm an unclaimed legacy armor slot through the control panel.
|
||||
- [x] The Tyrant can select a purchased class and assign or reassign it to an eligible online player.
|
||||
- [x] The class player selector excludes the Tyrant and clearly identifies players who are opted out or otherwise ineligible.
|
||||
- [x] Class reassignment identifies the current holder and requires confirmation before replacing that holder.
|
||||
@@ -44,3 +45,4 @@ Automated tests verify command entry points, active-Tyrant authorization, author
|
||||
- [Purchase and use Tyrant abilities](us-009-use-tyrant-abilities.md)
|
||||
- [Inform players and manage participation](us-011-inform-and-manage-participation.md)
|
||||
- [Use bound role control items](us-017-use-bound-role-control-items.md)
|
||||
- [Claim Tyrant legacy armor](us-021-claim-tyrant-legacy-armor.md)
|
||||
|
||||
@@ -13,6 +13,7 @@ As a **player or administrator**, I want contextual command suggestions so that
|
||||
|
||||
- [x] `/tyrant` suggests its available subcommands instead of arbitrary player names.
|
||||
- [x] `/tyrant buy` suggests Tyrant unlock names.
|
||||
- [x] `/tyrant armor` suggests `helmet`, `chestplate`, `leggings`, and `boots` and accepts no further arguments.
|
||||
- [x] `/tyrant assign` suggests `assassin`, `fixer`, and `tamer`, followed by eligible online players.
|
||||
- [x] `/tyrant relinquish` suggests `confirm`.
|
||||
- [x] `/vigilante` suggests its available subcommands.
|
||||
@@ -30,7 +31,7 @@ As a **player or administrator**, I want contextual command suggestions so that
|
||||
|
||||
## Validation
|
||||
|
||||
Automated tests verify root syntax, unlocks, classes, confirmations, eligible recruits, current Followers, permission gating, online administrative candidates, the argument-free `grantpoint` command, argument positions, and case-insensitive prefix filtering. The complete `./gradlew clean check jar` lifecycle passes.
|
||||
Automated tests verify root syntax, unlocks, legacy armor pieces, classes, confirmations, eligible recruits, current Followers, permission gating, online administrative candidates, the argument-free `grantpoint` command, argument positions, and case-insensitive prefix filtering. The complete `./gradlew clean check jar` lifecycle passes.
|
||||
|
||||
## Related
|
||||
|
||||
@@ -40,3 +41,4 @@ Automated tests verify root syntax, unlocks, classes, confirmations, eligible re
|
||||
- [Manage a reign through the Tyrant control panel](us-015-manage-tyrant-control-panel.md)
|
||||
- [Claim the Vigilante role in the arena](us-019-claim-vigilante-in-arena.md)
|
||||
- [Manage Followers through the Vigilante control panel](us-016-manage-vigilante-control-panel.md)
|
||||
- [Claim Tyrant legacy armor](us-021-claim-tyrant-legacy-armor.md)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
type: User Story
|
||||
title: "US-021: Claim Tyrant legacy armor"
|
||||
description: Let a fully unlocked Tyrant spend later choices on unique tradable armor rewards.
|
||||
status: done
|
||||
---
|
||||
|
||||
# US-021: Claim Tyrant legacy armor
|
||||
|
||||
As a **fully unlocked Tyrant**, I want to turn later progression choices into named armor so that continued victories create lasting trophies with ordinary player value.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [x] Once all six standard reign unlocks are purchased, the active Tyrant may spend each additional unspent choice on one legacy armor piece.
|
||||
- [x] Available rewards are a Netherite Helmet, Netherite Chestplate, Netherite Leggings, and Netherite Boots.
|
||||
- [x] Each piece has Protection V and Mending I, a display name in the form `Tyrant's <player name> <piece>`, and lore identifying the named Tyrant and reign reward.
|
||||
- [x] Each armor slot may be claimed only once during a reign, limiting a Tyrant to four legacy armor rewards per reign.
|
||||
- [x] A successful claim consumes exactly one unspent choice and records the claimed slot durably.
|
||||
- [x] Armor is delivered to normal inventory rather than auto-equipped; insufficient inventory space does not consume a choice or record a claim.
|
||||
- [x] The armor is ordinary transferable equipment: it may be worn, repaired, enchanted, dropped, traded, stored, or retained after the reign ends.
|
||||
- [x] Lost or transferred armor is not recoverable and does not permit that slot to be claimed again during the same reign.
|
||||
- [x] Claimed-slot state survives logout and restart, resets when the reign ends, and loads missing legacy state as no claimed pieces.
|
||||
- [x] Paused games, non-Tyrants, incomplete standard unlocks, exhausted choices, duplicate slots, malformed requests, and stale or repeated interactions cannot create or duplicate armor.
|
||||
- [x] The Tyrant can select and confirm an available armor piece through the existing control panel, using the same domain and persistence rules as the command path.
|
||||
- [x] `/tyrant armor <helmet|chestplate|leggings|boots>` remains available as an alternative and supports contextual completion.
|
||||
|
||||
## Related
|
||||
|
||||
- [Progress and purchase Tyrant unlocks](us-003-progress-and-purchase-unlocks.md)
|
||||
- [Configure and persist game state](us-012-configure-and-persist-state.md)
|
||||
- [Manage a reign through the Tyrant control panel](us-015-manage-tyrant-control-panel.md)
|
||||
- [Complete Tyrant commands contextually](us-018-complete-commands-contextually.md)
|
||||
- [Role and class model](../concepts/role-and-class-model.md)
|
||||
Reference in New Issue
Block a user