Implement /ready and basic objective mechanics

This commit is contained in:
2022-05-08 18:36:35 +02:00
parent a078f74b4b
commit 2f63695ee9
11 changed files with 263 additions and 36 deletions

View File

@@ -11,6 +11,7 @@ import java.util.Collection;
public class PlayerManager {
HashMap<Player, State> m_playerStates = new HashMap<>();
HashMap<Player, Boolean> m_playerReadyStates = new HashMap<>();
public enum State {
Idle,
@@ -70,6 +71,34 @@ public class PlayerManager {
public void addPlayer(Player player) {
//m_log.info("Adding player " + player);
m_playerStates.put(player, State.Idle);
m_playerReadyStates.put(player, false);
}
public boolean isReady(Player player) {
return m_playerReadyStates.get(player);
}
public void setReady(Player player, boolean ready) {
m_playerReadyStates.put(player, ready);
}
public double readyProgress() {
int readyNum = 0;
for(boolean b : m_playerReadyStates.values()) {
if (b) {
readyNum += 1;
}
}
return (double)readyNum / (double)m_playerReadyStates.size();
}
public boolean isEveryoneReady() {
for(boolean b : m_playerReadyStates.values()) {
if (!b) {
return false;
}
}
return true;
}
public boolean removePlayer(Player player) {