diff --git a/forge-core/src/main/java/forge/StaticData.java b/forge-core/src/main/java/forge/StaticData.java index d21e37192c6..19b919df9d9 100644 --- a/forge-core/src/main/java/forge/StaticData.java +++ b/forge-core/src/main/java/forge/StaticData.java @@ -236,6 +236,10 @@ public class StaticData { return commonCards; } + public CardDb getCustomCards() { + return customCards; + } + public CardDb getVariantCards() { return variantCards; } diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 8f16038c932..07e021ea5fc 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -2569,12 +2569,18 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont final CardDb carddb = FModel.getMagicDb().getCommonCards(); final List faces = Lists.newArrayList(carddb.getAllFaces()); + final CardDb customDb = FModel.getMagicDb().getCustomCards(); + final List customFaces = Lists.newArrayList(customDb.getAllFaces()); List choices = new ArrayList<>(); CardFaceView cardFaceView; for (ICardFace cardFace : faces) { cardFaceView = new CardFaceView(CardTranslation.getTranslatedName(cardFace.getName()), cardFace.getName()); choices.add(cardFaceView); } + for (ICardFace cardFace : customFaces) { + cardFaceView = new CardFaceView(CardTranslation.getTranslatedName(cardFace.getName()), cardFace.getName()); + choices.add(cardFaceView); + } Collections.sort(choices); // use standard forge's list selection dialog @@ -2583,10 +2589,13 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont return; } - final PaperCard c = carddb.getUniqueByName(f.getOracleName()); + PaperCard c = carddb.getUniqueByName(f.getOracleName()); + if (c == null) + c = customDb.getUniqueByName(f.getOracleName()); final Card forgeCard = Card.fromPaperCard(c, p); forgeCard.setTimestamp(getGame().getNextTimestamp()); + PaperCard finalC = c; getGame().getAction().invoke(new Runnable() { @Override public void run() { @@ -2618,7 +2627,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont return; } } else { - if (c.getRules().getType().isLand()) { + if (finalC.getRules().getType().isLand()) { // this is needed to ensure land abilities fire getGame().getAction().moveToHand(forgeCard, null); getGame().getAction().moveToPlay(forgeCard, null);