forked from External/mage
draft stuff
This commit is contained in:
parent
2e13136101
commit
03e3be90d6
34 changed files with 1238 additions and 743 deletions
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)));
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue