draft stuff

This commit is contained in:
BetaSteward 2011-01-08 23:54:32 -05:00
parent 2e13136101
commit 03e3be90d6
34 changed files with 1238 additions and 743 deletions

View file

@ -93,7 +93,7 @@ public class DraftController {
public void event(PlayerQueryEvent event) {
switch (event.getQueryType()) {
case PICK_CARD:
pickCard(event.getPlayerId());
pickCard(event.getPlayerId(), event.getMax());
break;
}
}
@ -130,6 +130,7 @@ public class DraftController {
return;
}
}
draft.start();
}
private boolean allJoined() {
@ -186,9 +187,9 @@ public class DraftController {
}
}
private synchronized void pickCard(UUID playerId) {
private synchronized void pickCard(UUID playerId, int timeout) {
if (draftSessions.containsKey(playerId))
draftSessions.get(playerId).pickCard(getDraftPickView(playerId));
draftSessions.get(playerId).pickCard(getDraftPickView(playerId), timeout);
}
private DraftView getDraftView() {
@ -196,7 +197,7 @@ public class DraftController {
}
private DraftPickView getDraftPickView(UUID playerId) {
return new DraftPickView();
return new DraftPickView(draft.getPlayer(playerId));
}
}

View file

@ -110,9 +110,9 @@ public class DraftSession {
}
}
public void pickCard(final DraftPickView draftPickView) {
public void pickCard(final DraftPickView draftPickView, int timeout) {
if (!killed) {
setupTimeout(20);
setupTimeout(timeout);
Session session = SessionManager.getInstance().getSession(sessionId);
if (session != null)
session.fireCallback(new ClientCallback("draftPick", new DraftClientMessage(draftPickView)));

View file

@ -46,6 +46,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import mage.Constants.RangeOfInfluence;
import mage.Constants.TableState;
import mage.cards.decks.Deck;
import mage.cards.decks.DeckCardLists;
@ -212,7 +213,13 @@ public class TableController {
}
private Player createPlayer(String name, String playerType) {
Player player = PlayerFactory.getInstance().createPlayer(playerType, name, options.getRange());
Player player;
if (options == null) {
player = PlayerFactory.getInstance().createPlayer(playerType, name, RangeOfInfluence.ALL);
}
else {
player = PlayerFactory.getInstance().createPlayer(playerType, name, options.getRange());
}
logger.info("Player created " + player.getId());
return player;
}
@ -245,7 +252,6 @@ public class TableController {
public synchronized void startDraft(UUID sessionId) {
if (sessionId.equals(this.sessionId) && table.getState() == TableState.STARTING) {
draft.start();
table.initDraft();
DraftManager.getInstance().createDraftSession(draft, sessionPlayerMap, table.getId());
SessionManager sessionManager = SessionManager.getInstance();
@ -274,6 +280,16 @@ public class TableController {
}
}
private void construct(UUID playerId, Deck deck) {
SessionManager sessionManager = SessionManager.getInstance();
for (Entry<UUID, UUID> entry: sessionPlayerMap.entrySet()) {
if (entry.getValue().equals(playerId)) {
sessionManager.getSession(entry.getKey()).construct(deck, table.getId());
break;
}
}
}
public void endGame() {
UUID choosingPlayerId = match.getChooser();
match.endGame();