forked from External/mage
images: fixed miss token image in some use cases (if it was created from a card and a set contains multiple images);
This commit is contained in:
parent
8e2ff2db0f
commit
0e39d6a833
18 changed files with 82 additions and 57 deletions
|
|
@ -2173,19 +2173,17 @@ public final class CardUtil {
|
|||
String needImageFileName;
|
||||
int needImageNumber;
|
||||
boolean needUsesVariousArt = false;
|
||||
if (copyFromObject instanceof Card) {
|
||||
needUsesVariousArt = ((Card) copyFromObject).getUsesVariousArt();
|
||||
}
|
||||
|
||||
needSetCode = copyFromObject.getExpansionSetCode();
|
||||
needCardNumber = copyFromObject.getCardNumber();
|
||||
needImageFileName = copyFromObject.getImageFileName();
|
||||
needImageNumber = copyFromObject.getImageNumber();
|
||||
needUsesVariousArt = copyFromObject.getUsesVariousArt();
|
||||
|
||||
if (targetObject instanceof Permanent) {
|
||||
copySetAndCardNumber((Permanent) targetObject, needSetCode, needCardNumber, needImageFileName, needImageNumber, needUsesVariousArt);
|
||||
} else if (targetObject instanceof Token) {
|
||||
copySetAndCardNumber((Token) targetObject, needSetCode, needCardNumber, needImageFileName, needImageNumber);
|
||||
copySetAndCardNumber((Token) targetObject, needSetCode, needCardNumber, needImageFileName, needImageNumber, needUsesVariousArt);
|
||||
} else if (targetObject instanceof Card) {
|
||||
copySetAndCardNumber((Card) targetObject, needSetCode, needCardNumber, needImageFileName, needImageNumber, needUsesVariousArt);
|
||||
} else {
|
||||
|
|
@ -2197,28 +2195,34 @@ public final class CardUtil {
|
|||
if (targetPermanent instanceof PermanentCard
|
||||
|| targetPermanent instanceof PermanentToken) {
|
||||
targetPermanent.setExpansionSetCode(newSetCode);
|
||||
targetPermanent.setUsesVariousArt(usesVariousArt);
|
||||
targetPermanent.setCardNumber(newCardNumber);
|
||||
targetPermanent.setImageFileName(newImageFileName);
|
||||
targetPermanent.setImageNumber(newImageNumber);
|
||||
targetPermanent.setUsesVariousArt(usesVariousArt);
|
||||
} else {
|
||||
throw new IllegalArgumentException("Wrong code usage: un-supported target permanent type: " + targetPermanent.getClass().getSimpleName());
|
||||
}
|
||||
}
|
||||
|
||||
private static void copySetAndCardNumber(Token targetToken, String newSetCode, String newCardNumber, String newImageFileName, Integer newImageNumber) {
|
||||
private static void copySetAndCardNumber(Token targetToken, String newSetCode, String newCardNumber, String newImageFileName, Integer newImageNumber, boolean newUsesVariousArt) {
|
||||
targetToken.setExpansionSetCode(newSetCode);
|
||||
targetToken.setCardNumber(newCardNumber);
|
||||
targetToken.setImageFileName(newImageFileName);
|
||||
targetToken.setImageNumber(newImageNumber);
|
||||
|
||||
// runtime check
|
||||
if (newUsesVariousArt && newCardNumber.isEmpty()) {
|
||||
throw new IllegalArgumentException("Wrong code usage: usesVariousArt can be used for token from card only");
|
||||
}
|
||||
targetToken.setUsesVariousArt(newUsesVariousArt);
|
||||
}
|
||||
|
||||
private static void copySetAndCardNumber(Card targetCard, String newSetCode, String newCardNumber, String newImageFileName, Integer newImageNumber, boolean usesVariousArt) {
|
||||
targetCard.setExpansionSetCode(newSetCode);
|
||||
targetCard.setUsesVariousArt(usesVariousArt);
|
||||
targetCard.setCardNumber(newCardNumber);
|
||||
targetCard.setImageFileName(newImageFileName);
|
||||
targetCard.setImageNumber(newImageNumber);
|
||||
targetCard.setUsesVariousArt(usesVariousArt);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue