diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java index 3a362676025..6d63757c9e5 100644 --- a/Mage/src/main/java/mage/cards/ExpansionSet.java +++ b/Mage/src/main/java/mage/cards/ExpansionSet.java @@ -188,13 +188,16 @@ public abstract class ExpansionSet implements Serializable { protected int addMissingPartner(List booster, boolean partnerAllowed, int max, int i) { - for (Ability ability : booster.get(booster.size() - 1).getAbilities()) { + Card sourceCard = booster.get(booster.size() - 1); + for (Ability ability : sourceCard.getAbilities()) { + //Check if fetched card has the PartnerWithAbility if (ability instanceof PartnerWithAbility) { + String partnerName = ((PartnerWithAbility) ability).getPartnerName(); //Check if the pack already contains a partner pair if (partnerAllowed) { //Added card always replaces an uncommon card - Card card = CardRepository.instance.findCard(((PartnerWithAbility) ability).getPartnerName()).getCard(); + Card card = CardRepository.instance.findCardWPreferredSet(partnerName, sourceCard.getExpansionSetCode(), false).getCard(); if (i < max) { booster.add(card); } else { diff --git a/Mage/src/main/java/mage/cards/mock/MockCard.java b/Mage/src/main/java/mage/cards/mock/MockCard.java index 680ecb4007c..49dc039463c 100644 --- a/Mage/src/main/java/mage/cards/mock/MockCard.java +++ b/Mage/src/main/java/mage/cards/mock/MockCard.java @@ -1,6 +1,5 @@ package mage.cards.mock; -import java.util.List; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; @@ -9,6 +8,8 @@ import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; import org.apache.log4j.Logger; +import java.util.List; + /** * @author North */ @@ -45,7 +46,7 @@ public class MockCard extends CardImpl { this.transformable = card.isDoubleFaced(); this.nightCard = card.isNightCard(); if (card.getSecondSideName() != null && !card.getSecondSideName().isEmpty()) { - this.secondSideCard = new MockCard(CardRepository.instance.findCard(card.getSecondSideName())); + this.secondSideCard = new MockCard(CardRepository.instance.findCardWPreferredSet(card.getSecondSideName(), card.getSetCode(), false)); } if (this.isPlaneswalker()) { diff --git a/Mage/src/main/java/mage/cards/mock/MockSplitCard.java b/Mage/src/main/java/mage/cards/mock/MockSplitCard.java index ff7a83dd9dd..d5694d00613 100644 --- a/Mage/src/main/java/mage/cards/mock/MockSplitCard.java +++ b/Mage/src/main/java/mage/cards/mock/MockSplitCard.java @@ -1,6 +1,5 @@ package mage.cards.mock; -import java.util.List; import mage.MageInt; import mage.abilities.Ability; import mage.cards.CardSetInfo; @@ -11,8 +10,9 @@ import mage.cards.repository.CardRepository; import mage.constants.CardType; import mage.constants.SpellAbilityType; +import java.util.List; + /** - * * @author North */ public class MockSplitCard extends SplitCard { @@ -41,7 +41,7 @@ public class MockSplitCard extends SplitCard { this.transformable = card.isDoubleFaced(); this.nightCard = card.isNightCard(); if (card.getSecondSideName() != null && !card.getSecondSideName().isEmpty()) { - this.secondSideCard = new MockCard(CardRepository.instance.findCard(card.getSecondSideName())); + this.secondSideCard = new MockCard(CardRepository.instance.findCardWPreferredSet(card.getSecondSideName(), card.getSetCode(), false)); } this.flipCardName = card.getFlipCardName(); @@ -50,16 +50,16 @@ public class MockSplitCard extends SplitCard { this.addAbility(textAbilityFromString(ruleText)); } - CardInfo leftHalf = CardRepository.instance.findCard(getLeftHalfName(card)); + CardInfo leftHalf = CardRepository.instance.findCardWPreferredSet(getLeftHalfName(card), card.getSetCode(), false); if (leftHalf != null) { this.leftHalfCard = new MockSplitCardHalf(leftHalf); - ((SplitCardHalf)this.leftHalfCard).setParentCard(this); + ((SplitCardHalf) this.leftHalfCard).setParentCard(this); } - CardInfo rightHalf = CardRepository.instance.findCard(getRightHalfName(card)); + CardInfo rightHalf = CardRepository.instance.findCardWPreferredSet(getRightHalfName(card), card.getSetCode(), false); if (rightHalf != null) { this.rightHalfCard = new MockSplitCardHalf(rightHalf); - ((SplitCardHalf)this.rightHalfCard).setParentCard(this); + ((SplitCardHalf) this.rightHalfCard).setParentCard(this); } }