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; } }