This commit is contained in:
BetaSteward 2010-10-06 01:59:06 +00:00
parent 5eae8136e4
commit e9249bfcf6
7 changed files with 121 additions and 89 deletions

View file

@ -37,8 +37,6 @@ package mage.client;
import java.awt.Cursor;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;

View file

@ -205,7 +205,9 @@ public class Card extends javax.swing.JPanel implements MouseMotionListener, Mou
for (String rule: getRules()) {
sb.append("\n").append(rule);
}
sb.append("\n").append(Sets.getInstance().get(card.getExpansionSetCode()).getName()).append(" - ").append(card.getRarity().toString());
if (card.getExpansionSetCode().length() > 0) {
sb.append("\n").append(Sets.getInstance().get(card.getExpansionSetCode()).getName()).append(" - ").append(card.getRarity().toString());
}
}
// sb.append("\n").append(card.getId());
return sb.toString();

View file

@ -113,7 +113,9 @@ public class Permanent extends Card {
for (String rule: getRules()) {
sb.append("\n").append(rule);
}
sb.append("\n").append(Sets.getInstance().get(permanent.getOriginal().getExpansionSetCode()).getName()).append(" - ").append(permanent.getOriginal().getRarity().toString());
if (permanent.getOriginal().getExpansionSetCode().length() > 0) {
sb.append("\n").append(Sets.getInstance().get(permanent.getOriginal().getExpansionSetCode()).getName()).append(" - ").append(permanent.getOriginal().getRarity().toString());
}
// sb.append("\n").append(card.getId());
return sb.toString();

View file

@ -72,11 +72,11 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
public void loadCards(BigCard bigCard) {
this.bigCard = bigCard;
cbExpansionSet.setModel(new DefaultComboBoxModel(Sets.getInstance().values().toArray()));
cbExpansionSet.insertItemAt("All sets", 0);
cbExpansionSet.setSelectedIndex(0);
// cbExpansionSet.insertItemAt("All sets", 0);
for (ExpansionSet set: Sets.getInstance().values()) {
allCards.addAll(set.createCards());
}
cbExpansionSet.setSelectedIndex(0);
filter.setUseColor(true);
filter.getColor().setBlack(true);
filter.getColor().setBlue(true);
@ -95,6 +95,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
filter.getCardType().add(CardType.PLANESWALKER);
filter.getCardType().add(CardType.SORCERY);
filter.setScopeCardType(ComparisonScope.Any);
filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode());
filterCards();
}

View file

@ -30,7 +30,9 @@ package mage.client.remote;
import java.rmi.RemoteException;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import mage.client.MageFrame;
import mage.interfaces.callback.CallbackClient;
import mage.interfaces.callback.ClientCallback;
@ -66,85 +68,90 @@ public class Client implements CallbackClient {
@Override
public synchronized void processCallback(ClientCallback callback) {
logger.info(callback.getMessageId() + " - " + callback.getMethod());
if (callback.getMethod().equals("startGame")) {
UUID[] data = (UUID[]) callback.getData();
gameStarted(data[0], data[1]);
}
else if (callback.getMethod().equals("replayGame")) {
replayGame();
}
else if (callback.getMethod().equals("watchGame")) {
watchGame((UUID) callback.getData());
}
else if (callback.getMethod().equals("chatMessage")) {
ChatMessage message = (ChatMessage) callback.getData();
session.getChats().get(message.getChatId()).receiveMessage(message.getMessage(), message.getColor());
}
else if (callback.getMethod().equals("replayInit")) {
session.getGame().init((GameView) callback.getData());
}
else if (callback.getMethod().equals("replayDone")) {
session.getGame().modalMessage((String) callback.getData());
session.getGame().hideGame();
}
else if (callback.getMethod().equals("replayUpdate")) {
session.getGame().updateGame((GameView) callback.getData());
}
else if (callback.getMethod().equals("gameInit")) {
session.getGame().init((GameView) callback.getData());
}
else if (callback.getMethod().equals("gameOver")) {
session.getGame().modalMessage((String) callback.getData());
session.getGame().hideGame();
}
else if (callback.getMethod().equals("gameAsk")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().ask(message.getMessage(), message.getGameView());
}
else if (callback.getMethod().equals("gameTarget")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().pickTarget(message.getMessage(), message.getCardsView(), message.getGameView(), message.isFlag());
}
else if (callback.getMethod().equals("gameSelect")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().select(message.getMessage(), message.getGameView());
}
else if (callback.getMethod().equals("gameChooseAbility")) {
session.getGame().pickAbility((AbilityPickerView) callback.getData());
}
else if (callback.getMethod().equals("gameChoose")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().getChoice(message.getMessage(), message.getStrings());
}
else if (callback.getMethod().equals("gamePlayMana")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().playMana(message.getMessage(), message.getGameView());
}
else if (callback.getMethod().equals("gamePlayXMana")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().playXMana(message.getMessage(), message.getGameView());
}
else if (callback.getMethod().equals("gameSelectAmount")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().getAmount(message.getMin(), message.getMax(), message.getMessage());
}
else if (callback.getMethod().equals("gameReveal")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().revealCards(message.getMessage(), message.getCardsView());
}
else if (callback.getMethod().equals("gameUpdate")) {
session.getGame().updateGame((GameView) callback.getData());
}
else if (callback.getMethod().equals("gameInform")) {
if (callback.getMessageId() > messageId) {
try {
if (callback.getMethod().equals("startGame")) {
UUID[] data = (UUID[]) callback.getData();
gameStarted(data[0], data[1]);
}
else if (callback.getMethod().equals("replayGame")) {
replayGame();
}
else if (callback.getMethod().equals("watchGame")) {
watchGame((UUID) callback.getData());
}
else if (callback.getMethod().equals("chatMessage")) {
ChatMessage message = (ChatMessage) callback.getData();
session.getChats().get(message.getChatId()).receiveMessage(message.getMessage(), message.getColor());
}
else if (callback.getMethod().equals("replayInit")) {
session.getGame().init((GameView) callback.getData());
}
else if (callback.getMethod().equals("replayDone")) {
session.getGame().modalMessage((String) callback.getData());
session.getGame().hideGame();
}
else if (callback.getMethod().equals("replayUpdate")) {
session.getGame().updateGame((GameView) callback.getData());
}
else if (callback.getMethod().equals("gameInit")) {
session.getGame().init((GameView) callback.getData());
}
else if (callback.getMethod().equals("gameOver")) {
session.getGame().modalMessage((String) callback.getData());
session.getGame().hideGame();
}
else if (callback.getMethod().equals("gameAsk")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().inform(message.getMessage(), message.getGameView());
session.getGame().ask(message.getMessage(), message.getGameView());
}
else {
logger.warning("message out of sequence - ignoring");
else if (callback.getMethod().equals("gameTarget")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().pickTarget(message.getMessage(), message.getCardsView(), message.getGameView(), message.isFlag());
}
else if (callback.getMethod().equals("gameSelect")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().select(message.getMessage(), message.getGameView());
}
else if (callback.getMethod().equals("gameChooseAbility")) {
session.getGame().pickAbility((AbilityPickerView) callback.getData());
}
else if (callback.getMethod().equals("gameChoose")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().getChoice(message.getMessage(), message.getStrings());
}
else if (callback.getMethod().equals("gamePlayMana")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().playMana(message.getMessage(), message.getGameView());
}
else if (callback.getMethod().equals("gamePlayXMana")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().playXMana(message.getMessage(), message.getGameView());
}
else if (callback.getMethod().equals("gameSelectAmount")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().getAmount(message.getMin(), message.getMax(), message.getMessage());
}
else if (callback.getMethod().equals("gameReveal")) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().revealCards(message.getMessage(), message.getCardsView());
}
else if (callback.getMethod().equals("gameUpdate")) {
session.getGame().updateGame((GameView) callback.getData());
}
else if (callback.getMethod().equals("gameInform")) {
if (callback.getMessageId() > messageId) {
GameClientMessage message = (GameClientMessage) callback.getData();
session.getGame().inform(message.getMessage(), message.getGameView());
}
else {
logger.warning("message out of sequence - ignoring");
}
}
messageId = callback.getMessageId();
}
catch (Exception ex) {
handleException(ex);
}
messageId = callback.getMessageId();
}
public UUID getId() throws RemoteException {
@ -152,18 +159,40 @@ public class Client implements CallbackClient {
}
protected void gameStarted(UUID gameId, UUID playerId) {
frame.showGame(gameId, playerId);
logger.info("Game " + gameId + " started for player " + playerId);
try {
frame.showGame(gameId, playerId);
logger.info("Game " + gameId + " started for player " + playerId);
}
catch (Exception ex) {
handleException(ex);
}
}
protected void watchGame(UUID gameId) {
frame.watchGame(gameId);
logger.info("Watching game " + gameId);
try {
frame.watchGame(gameId);
logger.info("Watching game " + gameId);
}
catch (Exception ex) {
handleException(ex);
}
}
protected void replayGame() {
frame.replayGame();
logger.info("Replaying game");
try {
frame.replayGame();
logger.info("Replaying game");
}
catch (Exception ex) {
handleException(ex);
}
}
private void handleException(Exception ex) {
logger.log(Level.SEVERE, "Client error", ex);
JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Unrecoverable client error. Disconnecting", "Error", JOptionPane.ERROR_MESSAGE);
session.disconnect();
frame.disableButtons();
}
}

View file

@ -28,7 +28,6 @@
package mage.client.remote;
import java.awt.Cursor;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

View file

@ -41,6 +41,7 @@ import java.util.HashMap;
import java.util.List;
import javax.imageio.ImageIO;
import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.client.cards.CardDimensions;
import mage.sets.Sets;
import mage.view.AbilityView;
@ -110,7 +111,7 @@ public class ImageHelper {
g.drawImage(art, CONTENT_MAX_XOFFSET, ART_MAX_YOFFSET, null);
}
if (card.getExpansionSetCode() != null && card.getRarity() != null) {
if (card.getExpansionSetCode() != null && card.getExpansionSetCode().length() > 0 && card.getRarity() != null && card.getRarity() != Rarity.NA) {
String symbolCode = Sets.getInstance().get(card.getExpansionSetCode()).getSymbolCode();
if (symbolCode != null && symbolCode.length() > 0) {
StringBuilder sb = new StringBuilder();