56 lines
No EOL
1.4 KiB
Java
56 lines
No EOL
1.4 KiB
Java
package dev.loki.phase;
|
|
|
|
import dev.loki.core.GameSession;
|
|
import dev.loki.role.RoleAssigner;
|
|
import net.kyori.adventure.text.Component;
|
|
import net.kyori.adventure.text.format.NamedTextColor;
|
|
import org.bukkit.Bukkit;
|
|
|
|
public class RoleAssignPhase implements Phase {
|
|
private final RoleAssigner assigner;
|
|
private int ticksLeft;
|
|
private boolean complete;
|
|
private final boolean skipDelay;
|
|
|
|
public RoleAssignPhase(RoleAssigner assigner) {
|
|
this(assigner, false);
|
|
}
|
|
|
|
public RoleAssignPhase(RoleAssigner assigner, boolean skipDelay) {
|
|
this.assigner = assigner;
|
|
this.complete = false;
|
|
this.skipDelay = skipDelay;
|
|
}
|
|
|
|
@Override
|
|
public void enter(GameSession session) {
|
|
if (skipDelay) {
|
|
ticksLeft = 0;
|
|
} else {
|
|
ticksLeft = session.getConfig().getRoleAssignDelay() * 20;
|
|
}
|
|
assigner.assignRoles(session);
|
|
}
|
|
|
|
@Override
|
|
public void tick(GameSession session) {
|
|
if (skipDelay) {
|
|
complete = true;
|
|
return;
|
|
}
|
|
ticksLeft--;
|
|
if (ticksLeft <= 0) {
|
|
complete = true;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void exit(GameSession session) {
|
|
Bukkit.broadcast(Component.text("[DBD] Роли назначены!", NamedTextColor.GREEN));
|
|
}
|
|
|
|
@Override
|
|
public boolean isComplete() {
|
|
return complete;
|
|
}
|
|
} |