mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 21:12:04 -08:00
draft stuff
This commit is contained in:
parent
2e13136101
commit
03e3be90d6
34 changed files with 1238 additions and 743 deletions
|
|
@ -50,7 +50,7 @@ import mage.players.PlayerList;
|
|||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
||||
public abstract class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
||||
|
||||
protected final UUID id;
|
||||
protected Map<UUID, DraftPlayer> players = new HashMap<UUID, DraftPlayer>();
|
||||
|
|
@ -74,8 +74,8 @@ public class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
|||
@Override
|
||||
public void addPlayer(Player player) {
|
||||
DraftPlayer draftPlayer = new DraftPlayer(player);
|
||||
players.put(draftPlayer.getId(), draftPlayer);
|
||||
table.add(draftPlayer.getId());
|
||||
players.put(player.getId(), draftPlayer);
|
||||
table.add(player.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -139,7 +139,7 @@ public class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
|||
}
|
||||
|
||||
protected void openBooster() {
|
||||
if (sets.size() < boosterNum) {
|
||||
if (boosterNum < sets.size()) {
|
||||
for (DraftPlayer player: players.values()) {
|
||||
player.setBooster(sets.get(boosterNum).createBooster());
|
||||
}
|
||||
|
|
@ -151,8 +151,8 @@ public class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
|||
for (DraftPlayer player: players.values()) {
|
||||
if (player.getBooster().size() == 0)
|
||||
return false;
|
||||
player.getPlayer().pickCard(player.getBooster(), player.getDeck(), this);
|
||||
player.setPicking();
|
||||
player.getPlayer().pickCard(player.getBooster(), player.getDeck(), this);
|
||||
}
|
||||
while (!donePicking()) {
|
||||
try {
|
||||
|
|
@ -173,21 +173,6 @@ public class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
while (boosterNum < sets.size()) {
|
||||
openBooster();
|
||||
while (pickCards()) {
|
||||
if (boosterNum % 2 == 1)
|
||||
passLeft();
|
||||
else
|
||||
passRight();
|
||||
fireUpdatePlayersEvent();
|
||||
}
|
||||
}
|
||||
startTournament();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTableEventListener(Listener<TableEvent> listener) {
|
||||
tableEventSource.addListener(listener);
|
||||
|
|
@ -205,7 +190,7 @@ public class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
|||
|
||||
@Override
|
||||
public void firePickCardEvent(UUID playerId) {
|
||||
playerQueryEventSource.pickCard(playerId, "Pick card", players.get(playerId).booster);
|
||||
playerQueryEventSource.pickCard(playerId, "Pick card", players.get(playerId).booster, 20);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -214,6 +199,7 @@ public class DraftImpl<T extends DraftImpl<T>> implements Draft {
|
|||
for (Card card: player.booster) {
|
||||
if (card.getId().equals(cardId)) {
|
||||
player.addPick(card);
|
||||
player.booster.remove(card);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class DraftOptions implements Serializable {
|
|||
|
||||
protected String name;
|
||||
protected String draftType;
|
||||
protected List<ExpansionSet> sets;
|
||||
protected List<ExpansionSet> sets = new ArrayList<ExpansionSet>();
|
||||
protected List<String> playerTypes = new ArrayList<String>();
|
||||
protected TimingOption timing;
|
||||
|
||||
|
|
|
|||
|
|
@ -76,12 +76,13 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri
|
|||
this.max = max;
|
||||
}
|
||||
|
||||
private PlayerQueryEvent(UUID playerId, String message, List<Card> booster, QueryType queryType) {
|
||||
private PlayerQueryEvent(UUID playerId, String message, List<Card> booster, QueryType queryType, int time) {
|
||||
super(playerId);
|
||||
this.queryType = queryType;
|
||||
this.message = message;
|
||||
this.playerId = playerId;
|
||||
this.booster = booster;
|
||||
this.max = time;
|
||||
}
|
||||
|
||||
public static PlayerQueryEvent askEvent(UUID playerId, String message) {
|
||||
|
|
@ -127,8 +128,8 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri
|
|||
return new PlayerQueryEvent(playerId, message, null, null, null, cards, QueryType.LOOK, 0, 0, false);
|
||||
}
|
||||
|
||||
public static PlayerQueryEvent pickCard(UUID playerId, String message, List<Card> booster) {
|
||||
return new PlayerQueryEvent(playerId, message, booster, QueryType.PICK_CARD);
|
||||
public static PlayerQueryEvent pickCard(UUID playerId, String message, List<Card> booster, int time) {
|
||||
return new PlayerQueryEvent(playerId, message, booster, QueryType.PICK_CARD, time);
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
|
|
|
|||
|
|
@ -95,8 +95,8 @@ public class PlayerQueryEventSource implements EventSource<PlayerQueryEvent>, Se
|
|||
dispatcher.fireEvent(PlayerQueryEvent.playXManaEvent(playerId, message));
|
||||
}
|
||||
|
||||
public void pickCard(UUID playerId, String message, List<Card> booster) {
|
||||
dispatcher.fireEvent(PlayerQueryEvent.pickCard(playerId, message, booster));
|
||||
public void pickCard(UUID playerId, String message, List<Card> booster, int time) {
|
||||
dispatcher.fireEvent(PlayerQueryEvent.pickCard(playerId, message, booster, time));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue