Refactor: removed server side objects from a client side game's data (#10788)

* Clean original values transmitted with CardView.originalObject
* Move RateCard to mage.Common, support cardView as argument.
* Clean PermanentView constructor for TestCardRenderDialog
This commit is contained in:
Susucre 2023-08-24 10:04:07 +02:00 committed by GitHub
parent ba411e0054
commit 5062c84098
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 285 additions and 149 deletions

View file

@ -37,7 +37,7 @@ import mage.client.util.stats.UpdateMemUsageTask;
import mage.components.ImagePanel;
import mage.components.ImagePanelStyle;
import mage.constants.PlayerAction;
import mage.game.draft.RateCard;
import mage.cards.RateCard;
import mage.interfaces.MageClient;
import mage.interfaces.callback.CallbackClient;
import mage.interfaces.callback.ClientCallback;
@ -73,7 +73,6 @@ import java.io.InputStream;
import java.net.SocketException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.*;
import java.util.concurrent.Executors;

View file

@ -1,5 +1,6 @@
package mage.client.deckeditor.collection.viewer;
import static java.lang.Math.min;
import mage.abilities.icon.CardIconRenderSettings;
import mage.cards.CardDimensions;
import mage.cards.ExpansionSet;
@ -21,7 +22,7 @@ import mage.components.ImagePanelStyle;
import mage.game.command.Dungeon;
import mage.game.command.Emblem;
import mage.game.command.Plane;
import mage.game.draft.RateCard;
import mage.cards.RateCard;
import mage.game.permanent.PermanentToken;
import mage.game.permanent.token.Token;
import mage.game.permanent.token.TokenImpl;
@ -42,8 +43,6 @@ import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static java.lang.Math.min;
/**
* Card viewer (mage book) with cards and page flipping
*
@ -388,9 +387,9 @@ public class MageBook extends JComponent {
draftRating.setBounds(rectangle.x, rectangle.y + cardImg.getCardLocation().getCardHeight() + dy, cardDimensions.getFrameWidth(), 20);
draftRating.setHorizontalAlignment(SwingConstants.CENTER);
draftRating.setFont(jLayeredPane.getFont().deriveFont(jLayeredPane.getFont().getStyle() | Font.BOLD));
if (card.getOriginalCard() != null) {
if (card.isOriginalACard()) {
// card
draftRating.setText("draft rating: " + RateCard.rateCard(card.getOriginalCard(), null));
draftRating.setText("draft rating: " + RateCard.rateCard(card, null));
} else {
// token
draftRating.setText("");

View file

@ -2,7 +2,7 @@ package mage.client.deckeditor.table;
import mage.cards.MageCard;
import mage.client.util.comparators.CardViewComparator;
import mage.game.draft.RateCard;
import mage.cards.RateCard;
import mage.view.CardView;
import org.apache.log4j.Logger;
@ -83,8 +83,8 @@ public class MageCardComparator implements CardViewComparator {
bCom = Integer.parseInt(b.getCardNumber().replaceAll("[\\D]", ""));
break;
case 9:
aCom = RateCard.rateCard(a.getOriginalCard(), null);
bCom = RateCard.rateCard(b.getOriginalCard(), null);
aCom = RateCard.rateCard(a, null);
bCom = RateCard.rateCard(b, null);
break;
case 10:
aCom = a.getColorIdentityStr();

View file

@ -12,7 +12,7 @@ import mage.client.util.Event;
import mage.client.util.Listener;
import mage.client.util.gui.GuiDisplayUtil;
import mage.constants.EnlargeMode;
import mage.game.draft.RateCard;
import mage.cards.RateCard;
import mage.view.CardView;
import mage.view.CardsView;
import org.apache.log4j.Logger;
@ -253,7 +253,7 @@ public class TableModel extends AbstractTableModel implements ICardGrid {
case 8:
return c.getCardNumber();
case 9:
return RateCard.rateCard(c.getOriginalCard(), null);
return RateCard.rateCard(c, null);
case 10:
return ManaSymbols.getClearManaCost(c.getColorIdentityStr());
default:

View file

@ -28,7 +28,6 @@ import mage.game.command.Plane;
import mage.game.match.MatchType;
import mage.game.mulligan.Mulligan;
import mage.game.mulligan.MulliganType;
import mage.game.permanent.Permanent;
import mage.game.permanent.PermanentCard;
import mage.game.permanent.PermanentMeld;
import mage.game.permanent.PermanentToken;
@ -402,9 +401,9 @@ public class TestCardRenderDialog extends MageDialog {
if (main.getGameCard() instanceof PermanentView) {
// new settings must be as a new copy -- it would activate the animations
PermanentView oldPermanent = (PermanentView) main.getGameCard();
PermanentView newPermament = new PermanentView( // ???
(Permanent) oldPermanent.getOriginalCard(),
game.getCard(oldPermanent.getOriginalCard().getId()),
PermanentView newPermament = new PermanentView(
oldPermanent,
game.getCard(oldPermanent.getOriginalId()),
UUID.randomUUID(),
game
);

View file

@ -446,20 +446,8 @@ public class CardPanelRenderModeImage extends CardPanel {
if (cardView.showPT()) {
// real PT info
MageInt currentPower;
MageInt currentToughness;
if (cardView.getOriginalCard() != null) {
// card
currentPower = cardView.getOriginalCard().getPower();
currentToughness = cardView.getOriginalCard().getToughness();
} else if (cardView.getOriginalToken() != null) {
// token
currentPower = cardView.getOriginalToken().getPower();
currentToughness = cardView.getOriginalToken().getToughness();
} else {
currentPower = null;
currentToughness = null;
}
MageInt currentPower = cardView.getOriginalPower();
MageInt currentToughness = cardView.getOriginalToughness();
prepareGlowFont(ptText1, Math.max(CARD_PT_FONT_MIN_SIZE, fontSize), currentPower, false);
prepareGlowFont(ptText2, Math.max(CARD_PT_FONT_MIN_SIZE, fontSize), null, false);

View file

@ -1096,20 +1096,8 @@ public class ModernCardRenderer extends CardRenderer {
g.setFont(ptTextFont);
// real PT info
MageInt currentPower;
MageInt currentToughness;
if (cardView.getOriginalCard() != null) {
// card
currentPower = cardView.getOriginalCard().getPower();
currentToughness = cardView.getOriginalCard().getToughness();
} else if (cardView.getOriginalToken() != null) {
// token
currentPower = cardView.getOriginalToken().getPower();
currentToughness = cardView.getOriginalToken().getToughness();
} else {
currentPower = null;
currentToughness = null;
}
MageInt currentPower = cardView.getOriginalPower();
MageInt currentToughness = cardView.getOriginalToughness();
// draws
int ptEmptySpace = (partBoxWidth - ptContentWidth) / 2;