This commit is contained in:
parent
50b02952c5
commit
5a6b2e2cac
23 changed files with 809 additions and 227 deletions
132
.local/TODO.md
Normal file
132
.local/TODO.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
# Implementation Plan
|
||||
|
||||
Do one phase at a time. Keep the project compiling after every phase.
|
||||
|
||||
- [x] **Phase 0 — Bootstrap**
|
||||
- Confirm exact NeoForge/Minecraft/Java versions and mappings from the project.
|
||||
- Create minimal mod entrypoint/config/logging.
|
||||
- Establish packages and basic test setup.
|
||||
- No gameplay yet.
|
||||
- Completed: `arena` entrypoint, server config/startup logging, `com.shinuwa.arena`
|
||||
and `config` packages; removed template gameplay/client examples.
|
||||
- Versions confirmed: Minecraft 1.21.1, NeoForge 21.1.235, Java 21
|
||||
(local JDK 21.0.8), NeoGradle 7.1.38, Gradle 9.2.1,
|
||||
NeoForm 1.21.1-20240808.144430, Parchment 1.21.1 / 2024.11.17.
|
||||
- Validation: `./gradlew build test --offline` succeeded; 3 JUnit 5.11.4
|
||||
configuration tests passed. Rebuilt and inspected `arena-1.0.0.jar`:
|
||||
correct metadata, no template content, only Minecraft/NeoForge dependencies.
|
||||
- README documents build instructions and dedicated/integrated server smoke
|
||||
tests. Full server/client startup remains a manual check, not executed here.
|
||||
|
||||
- [ ] **Phase 1 — Data model + content loading**
|
||||
- Resource IDs, ranks, class definitions, themes, mob variants, bosses, balance/progression.
|
||||
- JSON loading/reload and validation diagnostics.
|
||||
- Add example built-in/default data.
|
||||
- Unit-test pure validators where practical.
|
||||
|
||||
- [ ] **Phase 2 — Arena Controller + admin setup**
|
||||
- Controller block/block entity.
|
||||
- Relative asymmetric bounding box.
|
||||
- Configurator/admin commands for bounds and points.
|
||||
- Particle visualization of bounds/points.
|
||||
- Tagged spawn points and validation diagnostics.
|
||||
- Export/import arena definition if cleanly supportable.
|
||||
|
||||
- [ ] **Phase 3 — Inventory recovery foundation**
|
||||
- Durable snapshot-before-clear transaction.
|
||||
- Restore and idempotency.
|
||||
- Restore-on-login for disconnected/offline players.
|
||||
- Interrupted-session recovery marker.
|
||||
- Test failure paths before adding full sessions.
|
||||
|
||||
- [ ] **Phase 4 — Session state machine**
|
||||
- Registration, class selection, ready, countdown, active, victory/defeat/abort, cleanup.
|
||||
- Starting roster/config freeze.
|
||||
- Disconnect = remove participant + pending restoration.
|
||||
- Server restart = cancel/recover.
|
||||
- No waves yet; use simple admin-driven state transitions for tests.
|
||||
|
||||
- [ ] **Phase 5 — Classes + reputation**
|
||||
- Class unlock by JSON rank.
|
||||
- Full kit application.
|
||||
- Death handling: no drops, preserve remaining kit state, respawn if life remains.
|
||||
- Elimination restores original inventory.
|
||||
- `addItemFromHand`/slot capture writes JSON, preserves components/count, repairs durability.
|
||||
- `/arena class give`.
|
||||
- Reputation persistence/ranks.
|
||||
|
||||
- [ ] **Phase 6 — Wave Director**
|
||||
- Budget-driven composition.
|
||||
- Theme weights, 5-wave default cooldown + graceful fallback.
|
||||
- Entry cost/weight/min/max.
|
||||
- Player-count budget scaling and modest configurable health scaling.
|
||||
- Deterministic tests with seeded RNG.
|
||||
- Wave Title/subtitle.
|
||||
|
||||
- [ ] **Phase 7 — Spawning + advanced mob variants**
|
||||
- Spawn-point validation.
|
||||
- Equipment/components/attributes/scale.
|
||||
- Vehicles/passengers with nesting limit.
|
||||
- Session entity tagging/tracking.
|
||||
- Modded registry entity support without compile dependency.
|
||||
|
||||
- [ ] **Phase 8 — Modes, lives, progression**
|
||||
- Clear-to-progress individual lives.
|
||||
- Timed-pressure shared lives.
|
||||
- N+2 reputation validation for timed mode.
|
||||
- Wave count tier from frozen group average reputation.
|
||||
- Action bar status.
|
||||
- Defeat conditions.
|
||||
|
||||
- [ ] **Phase 9 — Arena isolation**
|
||||
- Block break/place protection.
|
||||
- Explosion terrain protection.
|
||||
- Entity/player boundary entry/exit.
|
||||
- Enderman restrictions.
|
||||
- Projectile crossing.
|
||||
- Targeting isolation.
|
||||
- Loot/XP suppression.
|
||||
- Cleanup of all tracked arena entities.
|
||||
- Verify spectator stands outside bounds cannot influence session.
|
||||
|
||||
- [ ] **Phase 10 — Boss system + rewards**
|
||||
- Data-driven vanilla/modded boss EntityType.
|
||||
- Pseudo-boss attributes/scale/equipment/boss bar/adds.
|
||||
- Victory detection.
|
||||
- Equal per-player victory currency, scaled by completed tier.
|
||||
- Held-item currency configuration.
|
||||
- Idempotent payout.
|
||||
|
||||
- [ ] **Phase 11 — Water environment**
|
||||
- Configurable baseline/max.
|
||||
- Safe temporary fill for requested layers.
|
||||
- Progressive batched rise/fall.
|
||||
- Exact transactional restoration.
|
||||
- Crash/restart recovery.
|
||||
- WATER spawn integration.
|
||||
|
||||
- [ ] **Phase 12 — Player UX + forfeit**
|
||||
- Intuitive registration/class/ready UX; no player commands required.
|
||||
- Participant/class/ready recap.
|
||||
- In-chat forfeit vote and timeout.
|
||||
- Polish titles/action bar/errors.
|
||||
- Accessibility/readability pass.
|
||||
|
||||
- [ ] **Phase 13 — Optional Cobblemon integration**
|
||||
- Verify actual target Cobblemon API first.
|
||||
- Optional adapter only.
|
||||
- Configurable allow/block Pokémon use/battles during arena session.
|
||||
- Test startup with Cobblemon absent and present.
|
||||
|
||||
- [ ] **Phase 14 — Optional EasyNPC bridge**
|
||||
- Only if useful and actual API is verified.
|
||||
- NPC may initiate/open arena services but must not own core logic.
|
||||
- Test startup with EasyNPC absent.
|
||||
|
||||
- [ ] **Phase 15 — Hardening/release**
|
||||
- Multiplayer tests (1–4 players).
|
||||
- Disconnect/reconnect, kill server mid-session, abort, repeated cleanup.
|
||||
- Duplication/loss tests.
|
||||
- Invalid JSON/mod removed between restarts.
|
||||
- Performance profiling with high mob counts.
|
||||
- Admin documentation and example configs.
|
||||
Loading…
Add table
Add a link
Reference in a new issue