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,32 @@
---
type: User Story
title: "US-001: Unlock and establish Base I"
description: Let players earn and establish a persistent personal base by breaking dirt and grass blocks.
status: in-progress
---
# US-001: Unlock and establish Base I
As a **player**, I want to earn and set a personal base so that later quality-of-life progression has a location associated with it.
## Acceptance criteria
- [ ] Only blocks broken while the player is in Survival mode contribute progression.
- [ ] Breaking `GRASS_BLOCK` or `DIRT` contributes one unit of Base I progress.
- [ ] Other dirt-like materials, including coarse dirt, rooted dirt, podzol, mycelium, and dirt paths, do not contribute by default.
- [ ] Player-placed blocks may contribute when broken; natural-generation detection is not required.
- [ ] Base I unlocks when the player reaches the configured threshold, which defaults to 250 qualifying blocks.
- [ ] `/setbase` is unavailable before Base I and explains the unmet requirement.
- [ ] After Base I unlocks, `/setbase` records the player's current world and block location as the center of a cylindrical base.
- [ ] The initial cylinder has a configurable 10-block horizontal radius and extends a configurable 25 blocks above and 25 blocks below the set Y coordinate.
- [ ] The first successful `/setbase` is immediately available.
- [ ] A successful relocation starts a configurable elapsed-time cooldown that defaults to 24 hours.
- [ ] Failed attempts do not start or extend the relocation cooldown.
- [ ] Progress and base state are associated with the player's UUID and survive restarts.
## Related
- [US-002: Unlock Base II navigation](us-002-unlock-base-navigation.md)
- [US-003: Expand the base](us-003-expand-the-base.md)
- [US-004: Unlock and control base flight](us-004-unlock-and-control-base-flight.md)
- [US-005: Unlock Base III teleportation](us-005-unlock-base-teleportation.md)