changes to support multi-duel matches and sideboarding

This commit is contained in:
BetaSteward 2010-12-28 23:34:06 -05:00
parent aa5e45e69d
commit 4b26727d71
40 changed files with 536 additions and 147 deletions

View file

@ -33,8 +33,10 @@ import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import mage.cards.decks.Deck;
import mage.client.MageFrame;
import mage.client.chat.ChatPanel;
import mage.client.constants.Constants.DeckEditorMode;
import mage.client.plugins.impl.Plugins;
import mage.client.util.GameManager;
import mage.interfaces.callback.CallbackClient;
@ -44,6 +46,7 @@ import mage.view.AbilityPickerView;
import mage.view.ChatMessage;
import mage.view.GameClientMessage;
import mage.view.GameView;
import mage.view.TableClientMessage;
/**
*
@ -73,9 +76,9 @@ public class Client implements CallbackClient {
logger.info(callback.getMessageId() + " - " + callback.getMethod());
try {
if (callback.getMethod().equals("startGame")) {
UUID[] data = (UUID[]) callback.getData();
GameManager.getInstance().setCurrentPlayerUUID(data[1]);
gameStarted(data[0], data[1]);
TableClientMessage message = (TableClientMessage) callback.getData();
GameManager.getInstance().setCurrentPlayerUUID(message.getPlayerId());
gameStarted(message.getGameId(), message.getPlayerId());
}
else if (callback.getMethod().equals("replayGame")) {
replayGame();
@ -154,6 +157,10 @@ public class Client implements CallbackClient {
logger.warning("message out of sequence - ignoring");
}
}
else if (callback.getMethod().equals("sideboard")) {
TableClientMessage message = (TableClientMessage) callback.getData();
sideboard(message.getDeck(), message.getTableId());
}
messageId = callback.getMessageId();
}
catch (Exception ex) {
@ -199,6 +206,10 @@ public class Client implements CallbackClient {
}
}
protected void sideboard(Deck deck, UUID tableId) {
frame.showDeckEditor(DeckEditorMode.Sideboard, deck, tableId);
}
private void handleException(Exception ex) {
logger.log(Level.SEVERE, "Client error\n", ex);
JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Unrecoverable client error. Disconnecting", "Error", JOptionPane.ERROR_MESSAGE);