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

View file

@ -0,0 +1,36 @@
package dev.loki.phase;
import dev.loki.core.GameSession;
import org.bukkit.Bukkit;
public class GameplayPhase implements Phase {
private int gameTicks;
private boolean shouldEnd;
@Override
public void enter(GameSession session) {
Bukkit.broadcastMessage("[DBD] Игра началась! Выжившие, чините генераторы!");
gameTicks = 0;
shouldEnd = false;
}
@Override
public void tick(GameSession session) {
gameTicks++;
// TODO: Check endgame conditions
}
@Override
public void exit(GameSession session) {
Bukkit.broadcastMessage("[DBD] Игра завершена!");
}
@Override
public boolean isComplete() {
return shouldEnd;
}
public void forceEnd() {
shouldEnd = true;
}
}