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,31 @@
package dev.loki.phase;
import dev.loki.core.GameSession;
public class EndgamePhase implements Phase {
private int collapseTicks;
private boolean complete;
@Override
public void enter(GameSession session) {
collapseTicks = session.getConfig().getGame().getInt("endgame.collapse-seconds", 120) * 20;
complete = false;
}
@Override
public void tick(GameSession session) {
collapseTicks--;
if (collapseTicks <= 0) {
complete = true;
}
}
@Override
public void exit(GameSession session) {
}
@Override
public boolean isComplete() {
return complete;
}
}