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,36 @@
---
type: User Story
title: "US-008: Unlock Base IV visitor access"
description: Let players spend diamonds to permit controlled, cooldown-limited visitor teleports to their base.
status: in-progress
---
# US-008: Unlock Base IV visitor access
As a **player with Base III**, I want to open my base to visitors so that other players can conveniently join me there under my control.
## Acceptance criteria
- [ ] Base IV requires Base III and an established base.
- [ ] `/base upgrade` offers the Base IV purchase for a configurable price that defaults to 128 diamonds.
- [ ] A successful purchase removes the complete price atomically from the player's direct inventory.
- [ ] Insufficient funds, an invalid state, or a failed persistence operation does not consume any diamonds or grant Base IV.
- [ ] `/basevisitors` lets a Base IV owner toggle visitor access on and off.
- [ ] The visitor-access preference persists across reconnects and restarts.
- [ ] `/gotobase <owner>` autocompletes bases that the requesting player is currently eligible to visit.
- [ ] Enabled bases remain visitable while their owners are offline.
- [ ] A visitor teleport uses the destination owner's current warm-up tier.
- [ ] Looking around is permitted, while movement between block coordinates, damage, teleportation, world change, death, logout, or a conflicting teleport cancels the visitor warm-up.
- [ ] Cancellation or destination failure does not consume a visitor cooldown.
- [ ] A safe destination is resolved at or near the owner's recorded base center.
- [ ] Each visitor has an independent cooldown for each destination owner.
- [ ] On successful teleport, the visitor cooldown duration is captured from the destination owner's current cooldown tier.
- [ ] A later owner cooldown upgrade applies to future visits without rewriting a cooldown already in progress.
- [ ] Visiting another base does not consume or modify the owner's personal `/base` cooldown or the visitor's personal `/base` cooldown.
- [ ] Disabling visits prevents new requests but does not interrupt a teleport that has already completed.
## Related
- [US-005: Unlock Base III teleportation](us-005-unlock-base-teleportation.md)
- [US-006: Reduce the base teleport warm-up](us-006-reduce-teleport-warmup.md)
- [US-007: Reduce the base teleport cooldown](us-007-reduce-teleport-cooldown.md)