Complete Stage 1: Core Game Loop

- Add GameState enum (LOBBY, ROLE_ASSIGN, IN_GAME, ENDING)
- Add Phase interface with enter/tick/exit/isComplete
- Add GameSession with tick-based phase machine
- Add GameEventBus for internal events
- Add GameManager for session lifecycle
- Add all phases: LobbyPhase, RoleAssignPhase, GameplayPhase, EndgamePhase
- Add role assignment: RoleAssigner, RoleQueue, SpawnPosition
- Add BasePlayer, Survivor, Killer, PlayerState
- Add DBDCommand with /dbd join/leave/create/forcestart/stop
- Update mdbd.java with GameManager and command registration
- Add command definition to paper-plugin.yml
- Mark Stage 1 complete in PLAN.md
This commit is contained in:
loki5512344 2026-05-31 20:43:40 +02:00
parent 53f3f6e9da
commit 82ed455cd2
20 changed files with 884 additions and 8 deletions

16
PLAN.md
View file

@ -175,14 +175,14 @@ src/main/java/com/dbd/plugin/
- [x] `GameConfig` — балансные цифры
### Этап 1: Core Game Loop
- [ ] `GameState` enum
- [ ] `GameSession` — хранит игроков, фазу, таймер
- [ ] `Phase` interface
- [ ] `LobbyPhase` — ожидание, минимум 5 игроков, таймер 60сек
- [ ] `RoleAssigner` + `RoleQueue` — кто киллер
- [ ] `RoleAssignPhase` — телепорты, задержка 5сек
- [ ] `GameplayPhase` — заглушка
- [ ] `/dbd join`, `/dbd leave`, `/dbd forcestart`
- [x] `GameState` enum
- [x] `GameSession` — хранит игроков, фазу, таймер
- [x] `Phase` interface
- [x] `LobbyPhase` — ожидание, минимум 5 игроков, таймер 60сек
- [x] `RoleAssigner` + `RoleQueue` — кто киллер
- [x] `RoleAssignPhase` — телепорты, задержка 5сек
- [x] `GameplayPhase` — заглушка
- [x] `/dbd join`, `/dbd leave`, `/dbd forcestart`
### Этап 2: Игроки и состояния
- [ ] `BasePlayer`, `Survivor`, `Killer`