update deck every 5 seconds while constructing or sideboarding

This commit is contained in:
BetaSteward 2011-09-04 13:23:16 -04:00
parent beb2eb8e27
commit fe79ee97a9
15 changed files with 161 additions and 16 deletions

View file

@ -52,6 +52,7 @@ public interface Match {
public MatchPlayer getPlayer(UUID playerId);
public void addPlayer(Player player, Deck deck);
public void submitDeck(UUID playerId, Deck deck);
public void updateDeck(UUID playerId, Deck deck);
public void startMatch() throws GameException;
public void startGame() throws GameException;
public void sideboard();

View file

@ -216,4 +216,13 @@ public abstract class MatchImpl implements Match {
}
}
@Override
public void updateDeck(UUID playerId, Deck deck) {
MatchPlayer player = getPlayer(playerId);
if (player != null) {
player.updateDeck(deck);
}
}
}

View file

@ -76,6 +76,10 @@ public class MatchPlayer {
this.doneSideboarding = true;
}
public void updateDeck(Deck deck) {
this.deck = deck;
}
public Deck generateDeck() {
//TODO: improve this
while (deck.getCards().size() < 40 && deck.getSideboard().size() > 0) {

View file

@ -51,6 +51,7 @@ public interface Tournament {
public Collection<Round> getRounds();
public List<ExpansionSet> getSets();
public void submitDeck(UUID playerId, Deck deck);
public void updateDeck(UUID playerId, Deck deck);
public void autoSubmit(UUID playerId, Deck deck);
public boolean allJoined();
public boolean isDoneConstructing();

View file

@ -124,7 +124,14 @@ public abstract class TournamentImpl implements Tournament {
}
}
protected Round createRoundRandom() {
@Override
public void updateDeck(UUID playerId, Deck deck) {
if (players.containsKey(playerId)) {
players.get(playerId).updateDeck(deck);
}
}
protected Round createRoundRandom() {
Round round = new Round(rounds.size() + 1);
rounds.add(round);
List<TournamentPlayer> roundPlayers = getActivePlayers();

View file

@ -98,6 +98,10 @@ public class TournamentPlayer {
this.doneConstructing = true;
}
public void updateDeck(Deck deck) {
this.deck = deck;
}
public Deck generateDeck() {
//TODO: improve this
while (deck.getCards().size() < 40 && deck.getSideboard().size() > 0) {