feat(base): implement progression system

This commit is contained in:
dmg
2026-08-09 15:01:44 -04:00
commit c87d923cad
76 changed files with 5092 additions and 0 deletions
@@ -0,0 +1,35 @@
---
type: User Story
title: "US-004: Unlock and control base flight"
description: Let players permanently unlock and toggle increasingly broad flight within their personal base.
status: in-progress
---
# US-004: Unlock and control base flight
As a **player with Base I**, I want to unlock controlled flight around my base so that I can build large structures more conveniently.
## Acceptance criteria
- [ ] Flight progression is unavailable until Base I is unlocked and a base is established.
- [ ] The plugin observes elytra held directly in the player's inventory and armor equipment while the player is in Survival mode.
- [ ] Elytra inside shulker boxes, bundles, or other nested containers do not count.
- [ ] Observing one elytra permanently unlocks Flight I, two simultaneous elytra unlock Flight II, and three simultaneous elytra unlock Flight III.
- [ ] A player observed with enough elytra for a later tier receives all unmet preceding flight tiers.
- [ ] Elytra are not consumed, and losing them later does not revoke an earned tier.
- [ ] Flight I permits plugin-granted flight within the current horizontal base radius and from 25 blocks below through 25 blocks above base Y by default.
- [ ] Flight II expands the vertical range to 100 blocks below and above base Y by default.
- [ ] Flight III expands the vertical range to the world's minimum and maximum build heights.
- [ ] A configurable five-block horizontal warning buffer extends beyond the current base radius.
- [ ] Plugin-granted flight remains active in the warning buffer and displays prominent on-screen notice that the player is leaving the base.
- [ ] Passing beyond the warning buffer removes only flight granted by this plugin.
- [ ] Flight is not granted outside the unlocked vertical range.
- [ ] `/baseflight` toggles the player's unlocked base flight on and off.
- [ ] The flight toggle persists across reconnects and restarts.
- [ ] The plugin handles teleportation, world changes, game-mode changes, death, logout, and plugin shutdown without leaving unintended flight enabled.
## Related
- [US-001: Unlock and establish Base I](us-001-unlock-and-establish-base.md)
- [US-003: Expand the base](us-003-expand-the-base.md)
- [US-009: View progression and unlock notifications](us-009-view-progression-and-notifications.md)