mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
refactor: improved card info
This commit is contained in:
parent
b1e4ea2790
commit
ad8e7daf97
47 changed files with 84 additions and 81 deletions
|
|
@ -1705,7 +1705,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
|
|||
java.util.List<CardInfo> cardPool = CardRepository.instance.findCards(cardCriteria);
|
||||
|
||||
if (!cardPool.isEmpty()) {
|
||||
Card acard = cardPool.get(RandomUtil.nextInt(cardPool.size())).getMockCard();
|
||||
Card acard = cardPool.get(RandomUtil.nextInt(cardPool.size())).createMockCard();
|
||||
|
||||
if (acard.getName().equals(card.getName())) {
|
||||
CardView pimpedCard = new CardView(acard);
|
||||
|
|
@ -1751,7 +1751,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
|
|||
for (CardView card : stack) {
|
||||
CardInfo oldestCardInfo = CardRepository.instance.findOldestNonPromoVersionCard(card.getName());
|
||||
if (oldestCardInfo != null) {
|
||||
CardView oldestCardView = new CardView(oldestCardInfo.getMockCard());
|
||||
CardView oldestCardView = new CardView(oldestCardInfo.createMockCard());
|
||||
this.removeCardView(card);
|
||||
eventSource.fireEvent(card, ClientEventType.DECK_REMOVE_SPECIFIC_CARD);
|
||||
this.addCardView(oldestCardView, false);
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class VirtualCardInfo {
|
|||
return;
|
||||
}
|
||||
|
||||
this.init(new CardView(cardInfo.getCard()), bigCard, gameId);
|
||||
this.init(new CardView(cardInfo.createCard()), bigCard, gameId);
|
||||
}
|
||||
|
||||
public void init(CardView cardView, BigCard bigCard, UUID gameId) {
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ public class MageEditorPane extends JEditorPane {
|
|||
if (cardView == null) {
|
||||
CardInfo card = CardRepository.instance.findCards(cardName).stream().findFirst().orElse(null);
|
||||
if (card != null) {
|
||||
cardView = new CardView(card.getMockCard());
|
||||
cardView = new CardView(card.createMockCard());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,16 +4,13 @@ import mage.cards.Card;
|
|||
import mage.cards.decks.Deck;
|
||||
import mage.cards.repository.CardCriteria;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.cards.repository.CardRepository;
|
||||
import mage.cards.repository.ExpansionRepository;
|
||||
import mage.client.dialog.PreferencesDialog;
|
||||
import mage.client.util.sets.ConstructedFormats;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.ColoredManaSymbol;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.SuperType;
|
||||
import mage.util.RandomUtil;
|
||||
import mage.util.TournamentUtil;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -230,6 +227,6 @@ public final class DeckGenerator {
|
|||
private static Card getBasicLand(ColoredManaSymbol color, Map<String, List<CardInfo>> basicLands) {
|
||||
String landName = DeckGeneratorPool.getBasicLandName(color.toString());
|
||||
List<CardInfo> basicLandsInfo = basicLands.get(landName);
|
||||
return basicLandsInfo.get(RandomUtil.nextInt(basicLandsInfo.size())).getMockCard().copy();
|
||||
return basicLandsInfo.get(RandomUtil.nextInt(basicLandsInfo.size())).createMockCard().copy();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ public class DeckGeneratorPool
|
|||
public List<Card> filterLands(List<CardInfo> landCardsInfo) {
|
||||
List<Card> matchingLandList = new ArrayList<>();
|
||||
for(CardInfo landCardInfo: landCardsInfo) {
|
||||
Card landCard = landCardInfo.getMockCard();
|
||||
Card landCard = landCardInfo.createMockCard();
|
||||
if(landProducesChosenColors(landCard)) {
|
||||
matchingLandList.add(landCard);
|
||||
}
|
||||
|
|
@ -556,7 +556,7 @@ public class DeckGeneratorPool
|
|||
if (retrievedCount > 0 && retrievedCount >= spellCount) {
|
||||
int tries = 0;
|
||||
while (count < spellCount) {
|
||||
Card card = cardPool.get(RandomUtil.nextInt(retrievedCount)).getMockCard();
|
||||
Card card = cardPool.get(RandomUtil.nextInt(retrievedCount)).createMockCard();
|
||||
if (genPool.isValidSpellCard(card)) {
|
||||
int cardCMC = card.getManaValue();
|
||||
for (DeckGeneratorCMC.CMC deckCMC : deckCMCs) {
|
||||
|
|
|
|||
|
|
@ -480,7 +480,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
|
|||
}
|
||||
}
|
||||
// filter by settings
|
||||
Card card = cardInfo.getMockCard();
|
||||
Card card = cardInfo.createMockCard();
|
||||
if (!filter.match(card, null)) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
|
|||
if (card == null) {
|
||||
// Need to make a new card
|
||||
Logger.getLogger(DeckEditorPanel.class).info("Retrieve " + cardView.getCardNumber() + " Failed");
|
||||
card = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber()).getCard();
|
||||
card = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber()).createCard();
|
||||
} else {
|
||||
// Only need a temporary card once
|
||||
temporaryCards.remove(cardView.getId());
|
||||
|
|
@ -578,7 +578,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
|
|||
// add cards
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber());
|
||||
for (int i = cardsFound; i < numberToSet; i++) {
|
||||
cards.add(cardInfo.getMockCard());
|
||||
cards.add(cardInfo.createMockCard());
|
||||
}
|
||||
} else {
|
||||
// remove cards
|
||||
|
|
@ -605,7 +605,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
|
|||
} else {
|
||||
// editor: create mock card
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber());
|
||||
card = cardInfo != null ? cardInfo.getMockCard() : null;
|
||||
card = cardInfo != null ? cardInfo.createMockCard() : null;
|
||||
}
|
||||
|
||||
if (card != null) {
|
||||
|
|
@ -633,7 +633,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
|
|||
|
||||
SimpleCardView cardView = (SimpleCardView) event.getSource();
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber());
|
||||
Card card = cardInfo != null ? cardInfo.getMockCard() : null;
|
||||
Card card = cardInfo != null ? cardInfo.createMockCard() : null;
|
||||
if (card != null) {
|
||||
deck.getSideboard().add(card);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -443,7 +443,7 @@ public class MageBook extends JComponent {
|
|||
List<CardInfo> cards = CardRepository.instance.findCards(criteria);
|
||||
cards.sort(new NaturalOrderCardNumberComparator());
|
||||
List<Object> res = new ArrayList<>();
|
||||
cards.forEach(card -> res.add(new CardView(card.getMockCard())));
|
||||
cards.forEach(card -> res.add(new CardView(card.createMockCard())));
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ public class AddLandDialog extends MageDialog {
|
|||
int foundLands = 0;
|
||||
int foundNoneAfter = 0;
|
||||
for (int i = 0; foundLands != number && foundNoneAfter < 1000; i++) {
|
||||
Card land = cards.get(RandomUtil.nextInt(cards.size())).getMockCard();
|
||||
Card land = cards.get(RandomUtil.nextInt(cards.size())).createMockCard();
|
||||
boolean useLand = !useFullArt;
|
||||
if (useFullArt && (land.getFrameStyle() == FrameStyle.BFZ_FULL_ART_BASIC
|
||||
|| land.getFrameStyle() == FrameStyle.UGL_FULL_ART_BASIC
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public final class CardsViewUtil {
|
|||
|
||||
for (SimpleCardView simple : view.values()) {
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(simple.getExpansionSetCode(), simple.getCardNumber());
|
||||
Card card = cardInfo != null ? cardInfo.getMockCard() : null;
|
||||
Card card = cardInfo != null ? cardInfo.createMockCard() : null;
|
||||
if (card != null) {
|
||||
cards.put(simple.getId(), new CardView(card, simple));
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ public final class CardsViewUtil {
|
|||
Card card = loadedCards.get(key);
|
||||
if (card == null) {
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(simple.getExpansionSetCode(), simple.getCardNumber());
|
||||
card = cardInfo != null ? cardInfo.getMockCard() : null;
|
||||
card = cardInfo != null ? cardInfo.createMockCard() : null;
|
||||
loadedCards.put(key, card);
|
||||
}
|
||||
if (card != null) {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class DeckUtil {
|
|||
deck.setName(view.getName());
|
||||
for (SimpleCardView cardView : view.getCards().values()) {
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber());
|
||||
Card card = cardInfo != null ? cardInfo.getMockCard() : null;
|
||||
Card card = cardInfo != null ? cardInfo.createMockCard() : null;
|
||||
if (card != null) {
|
||||
deck.getCards().add(card);
|
||||
} else {
|
||||
|
|
@ -36,7 +36,7 @@ public final class DeckUtil {
|
|||
}
|
||||
for (SimpleCardView cardView : view.getSideboard().values()) {
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber());
|
||||
Card card = cardInfo != null ? cardInfo.getMockCard() : null;
|
||||
Card card = cardInfo != null ? cardInfo.createMockCard() : null;
|
||||
if (card != null) {
|
||||
deck.getSideboard().add(card);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -715,7 +715,7 @@ public final class SystemUtil {
|
|||
Set<Card> cardsToLoad = new HashSet<>();
|
||||
for (int i = 0; i < command.Amount; i++) {
|
||||
CardInfo cardInfo = cards.get(RandomUtil.nextInt(cards.size()));
|
||||
Card card = cardInfo != null ? cardInfo.getCard() : null;
|
||||
Card card = cardInfo != null ? cardInfo.createCard() : null;
|
||||
if (card != null) {
|
||||
cardsToLoad.add(card);
|
||||
}
|
||||
|
|
@ -783,7 +783,7 @@ public final class SystemUtil {
|
|||
|
||||
Set<Card> cardsToLoad = new LinkedHashSet<>();
|
||||
for (int i = 0; i < amount; i++) {
|
||||
cardsToLoad.add(cardInfo.getCard());
|
||||
cardsToLoad.add(cardInfo.createCard());
|
||||
}
|
||||
game.loadCards(cardsToLoad, owner.getId());
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class MomirDuel extends GameImpl {
|
|||
Player player = getPlayer(playerId);
|
||||
if (player != null) {
|
||||
CardInfo cardInfo = CardRepository.instance.findCard("Momir Vig, Simic Visionary");
|
||||
addEmblem(new MomirEmblem(), cardInfo.getCard(), playerId);
|
||||
addEmblem(new MomirEmblem(), cardInfo.createCard(), playerId);
|
||||
}
|
||||
}
|
||||
getState().addAbility(ability, null);
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public class MomirGame extends GameImpl {
|
|||
// how-to fix: make sure that a Momir Emblem and a source card uses same set (DIS - Dissension)
|
||||
throw new IllegalStateException("Wrong code usage: momir card and emblem must exists in the same set (DIS)");
|
||||
}
|
||||
addEmblem(new MomirEmblem(), cardInfo.getCard(), playerId);
|
||||
addEmblem(new MomirEmblem(), cardInfo.createCard(), playerId);
|
||||
}
|
||||
}
|
||||
getState().addAbility(ability, null);
|
||||
|
|
|
|||
|
|
@ -2283,7 +2283,7 @@ public class ComputerPlayer extends PlayerImpl {
|
|||
}
|
||||
|
||||
for (int i = 0; i < number; i++) {
|
||||
Card land = cards.get(RandomUtil.nextInt(cards.size())).getCard();
|
||||
Card land = cards.get(RandomUtil.nextInt(cards.size())).createCard();
|
||||
deck.getCards().add(land);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ public class ChatManagerImpl implements ChatManager {
|
|||
CardInfo cardInfo = CardRepository.instance.findCard(searchName, true);
|
||||
if (cardInfo != null) {
|
||||
String newMessagePart = GameLog.getColoredObjectIdName(
|
||||
cardInfo.getCard().getColor(),
|
||||
cardInfo.createCard().getColor(),
|
||||
UUID.randomUUID(),
|
||||
cardInfo.getName(),
|
||||
"",
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ class AWingAttacksNextCombatIfAbleSourceEffect extends RequirementEffect {
|
|||
|
||||
@Override
|
||||
public void init(Ability source, Game game) {
|
||||
super.init(source, game);
|
||||
turnNumber = game.getTurnNum();
|
||||
phaseCount = game.getPhase().getCount();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ enum capitaloffensecount implements DynamicValue {
|
|||
return 0;
|
||||
}
|
||||
|
||||
Card card = cardsInfo.get(0).getCard();
|
||||
Card card = cardsInfo.get(0).createCard();
|
||||
if (card == null) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ class GarthOneEyeEffect extends OneShotEffect {
|
|||
.findCards(new CardCriteria().setCodes("LEA"))
|
||||
.stream()
|
||||
.filter(cardInfo -> names.contains(cardInfo.getName()))
|
||||
.collect(Collectors.toMap(CardInfo::getName, CardInfo::getCard)));
|
||||
.collect(Collectors.toMap(CardInfo::getName, CardInfo::createCard)));
|
||||
}
|
||||
|
||||
GarthOneEyeEffect() {
|
||||
|
|
|
|||
|
|
@ -358,7 +358,7 @@ public final class Battlebond extends ExpansionSet {
|
|||
//Check if the pack already contains a partner pair
|
||||
if (partnerAllowed) {
|
||||
//Added card always replaces an uncommon card
|
||||
Card card = CardRepository.instance.findCardWithPreferredSetAndNumber(partnerName, sourceCard.getExpansionSetCode(), null).getCard();
|
||||
Card card = CardRepository.instance.findCardWithPreferredSetAndNumber(partnerName, sourceCard.getExpansionSetCode(), null).createCard();
|
||||
if (i < max) {
|
||||
booster.add(card);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -3516,7 +3516,7 @@ public class MysteryBooster extends ExpansionSet {
|
|||
for (int slot = 1; slot < 16; ++slot) {
|
||||
final List<CardInfo> availableCards = this.possibleCardsPerBoosterSlot.get(slot);
|
||||
final int printSheetCardNumber = RandomUtil.nextInt(availableCards.size());
|
||||
final Card chosenCard = availableCards.get(printSheetCardNumber).getCard();
|
||||
final Card chosenCard = availableCards.get(printSheetCardNumber).createCard();
|
||||
booster.add(chosenCard);
|
||||
}
|
||||
return booster;
|
||||
|
|
|
|||
|
|
@ -649,8 +649,8 @@ public class CopySpellTest extends CardTestPlayerBase {
|
|||
|
||||
@Test
|
||||
public void test_SimpleCopy_Card() {
|
||||
Card sourceCard = CardRepository.instance.findCard("Grizzly Bears").getCard();
|
||||
Card originalCard = CardRepository.instance.findCard("Grizzly Bears").getCard();
|
||||
Card sourceCard = CardRepository.instance.findCard("Grizzly Bears").createCard();
|
||||
Card originalCard = CardRepository.instance.findCard("Grizzly Bears").createCard();
|
||||
prepareZoneAndZCC(originalCard);
|
||||
Card copiedCard = currentGame.copyCard(originalCard, null, playerA.getId());
|
||||
// main
|
||||
|
|
@ -664,8 +664,8 @@ public class CopySpellTest extends CardTestPlayerBase {
|
|||
|
||||
@Test
|
||||
public void test_SimpleCopy_SplitCard() {
|
||||
SplitCard sourceCard = (SplitCard) CardRepository.instance.findCard("Alive // Well").getCard();
|
||||
SplitCard originalCard = (SplitCard) CardRepository.instance.findCard("Alive // Well").getCard();
|
||||
SplitCard sourceCard = (SplitCard) CardRepository.instance.findCard("Alive // Well").createCard();
|
||||
SplitCard originalCard = (SplitCard) CardRepository.instance.findCard("Alive // Well").createCard();
|
||||
prepareZoneAndZCC(originalCard);
|
||||
SplitCard copiedCard = (SplitCard) currentGame.copyCard(originalCard, null, playerA.getId());
|
||||
// main
|
||||
|
|
@ -693,8 +693,8 @@ public class CopySpellTest extends CardTestPlayerBase {
|
|||
|
||||
@Test
|
||||
public void test_SimpleCopy_AdventureCard() {
|
||||
AdventureCard sourceCard = (AdventureCard) CardRepository.instance.findCard("Animating Faerie").getCard();
|
||||
AdventureCard originalCard = (AdventureCard) CardRepository.instance.findCard("Animating Faerie").getCard();
|
||||
AdventureCard sourceCard = (AdventureCard) CardRepository.instance.findCard("Animating Faerie").createCard();
|
||||
AdventureCard originalCard = (AdventureCard) CardRepository.instance.findCard("Animating Faerie").createCard();
|
||||
prepareZoneAndZCC(originalCard);
|
||||
AdventureCard copiedCard = (AdventureCard) currentGame.copyCard(originalCard, null, playerA.getId());
|
||||
// main
|
||||
|
|
@ -715,8 +715,8 @@ public class CopySpellTest extends CardTestPlayerBase {
|
|||
|
||||
@Test
|
||||
public void test_SimpleCopy_MDFC() {
|
||||
ModalDoubleFacedCard sourceCard = (ModalDoubleFacedCard) CardRepository.instance.findCard("Agadeem's Awakening").getCard();
|
||||
ModalDoubleFacedCard originalCard = (ModalDoubleFacedCard) CardRepository.instance.findCard("Agadeem's Awakening").getCard();
|
||||
ModalDoubleFacedCard sourceCard = (ModalDoubleFacedCard) CardRepository.instance.findCard("Agadeem's Awakening").createCard();
|
||||
ModalDoubleFacedCard originalCard = (ModalDoubleFacedCard) CardRepository.instance.findCard("Agadeem's Awakening").createCard();
|
||||
prepareZoneAndZCC(originalCard);
|
||||
ModalDoubleFacedCard copiedCard = (ModalDoubleFacedCard) currentGame.copyCard(originalCard, null, playerA.getId());
|
||||
// main
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class EmblemOfCardTest extends CardTestPlayerBase {
|
|||
// Flying, lifelink
|
||||
// Pay 7 life: Draw seven cards.
|
||||
addEmblem(playerA, new EmblemOfCard(
|
||||
CardRepository.instance.findCard("Griselbrand", true).getMockCard()
|
||||
CardRepository.instance.findCard("Griselbrand", true).createMockCard()
|
||||
));
|
||||
|
||||
setLife(playerA, 20);
|
||||
|
|
@ -40,7 +40,7 @@ public class EmblemOfCardTest extends CardTestPlayerBase {
|
|||
// A player losing unspent mana causes that player to lose that much life.
|
||||
// {1}, {T}: Each player adds {B}{R}{G}.
|
||||
addEmblem(playerA, new EmblemOfCard(
|
||||
CardRepository.instance.findCard("Yurlok of Scorch Thrash", true).getMockCard()
|
||||
CardRepository.instance.findCard("Yurlok of Scorch Thrash", true).createMockCard()
|
||||
));
|
||||
|
||||
setLife(playerA, 20);
|
||||
|
|
@ -66,7 +66,7 @@ public class EmblemOfCardTest extends CardTestPlayerBase {
|
|||
public void testEmblemOfOmniscience() {
|
||||
// You may cast spells from your hand without paying their mana costs.
|
||||
addEmblem(playerA, new EmblemOfCard(
|
||||
CardRepository.instance.findCard("Omniscience", true).getMockCard()
|
||||
CardRepository.instance.findCard("Omniscience", true).createMockCard()
|
||||
));
|
||||
|
||||
// Colossal Dreadmaw {4}{G}{G}
|
||||
|
|
@ -85,7 +85,7 @@ public class EmblemOfCardTest extends CardTestPlayerBase {
|
|||
public void testEmblemOfParadoxEngine() {
|
||||
// Whenever you cast a spell, untap all nonland permanents you control.
|
||||
addEmblem(playerA, new EmblemOfCard(
|
||||
CardRepository.instance.findCard("Paradox Engine", true).getMockCard()
|
||||
CardRepository.instance.findCard("Paradox Engine", true).createMockCard()
|
||||
));
|
||||
|
||||
// {T}: Add {G}.
|
||||
|
|
@ -136,7 +136,7 @@ public class EmblemOfCardTest extends CardTestPlayerBase {
|
|||
// If an effect would put one or more counters on a permanent you
|
||||
// control, it puts twice that many of those counters on that permanent instead.
|
||||
addEmblem(playerA, new EmblemOfCard(
|
||||
CardRepository.instance.findCard("Doubling Season", true).getMockCard()
|
||||
CardRepository.instance.findCard("Doubling Season", true).createMockCard()
|
||||
));
|
||||
|
||||
// {T}: Add {W}.
|
||||
|
|
@ -191,7 +191,7 @@ public class EmblemOfCardTest extends CardTestPlayerBase {
|
|||
|
||||
// The first spell you cast each turn has cascade.
|
||||
addEmblem(playerA, new EmblemOfCard(
|
||||
CardRepository.instance.findCard("Maelstrom Nexus", true).getMockCard()
|
||||
CardRepository.instance.findCard("Maelstrom Nexus", true).createMockCard()
|
||||
));
|
||||
|
||||
// Grizzly Bears {1}{G}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public class Plus2MaceTest extends CardTestPlayerBase {
|
|||
String cardName = "+2 Mace";
|
||||
CardInfo cardinfo = CardRepository.instance.findCard(cardName);
|
||||
Assert.assertNotNull(cardName + " must exists", cardinfo);
|
||||
Card card = cardinfo.getCard();
|
||||
Card card = cardinfo.createCard();
|
||||
String cardText = GameLog.replaceNameByColoredName(card, card.getSpellAbility().toString(), null);
|
||||
Assert.assertTrue("card text must contain card name", cardText.contains(cardName));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ public class WrennAndSixTest {
|
|||
|
||||
@Test
|
||||
public void testFirstLoyaltyAbilityRulesText() {
|
||||
Card wrennAndSix = CardRepository.instance.findCard("Wrenn and Six").getCard();
|
||||
Card wrennAndSix = CardRepository.instance.findCard("Wrenn and Six").createCard();
|
||||
String firstLoyaltyAbilityRulesText = wrennAndSix.getRules().get(0);
|
||||
|
||||
Assert.assertEquals(firstLoyaltyAbilityRulesText, "+1: Return up to one target land card from your graveyard to your hand.");
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public class CommanderColorIdentityTest extends CardTestCommander3PlayersFFA {
|
|||
if (cardInfo == null) {
|
||||
throw new IllegalArgumentException("Couldn't find the card " + cardName + " in the DB.");
|
||||
}
|
||||
Card card = cardInfo.getCard();
|
||||
Card card = cardInfo.createCard();
|
||||
FilterMana filterMana = card.getColorIdentity();
|
||||
return filterMana.toString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ public class AbilityPickerTest extends CardTestPlayerBase {
|
|||
|
||||
private Abilities<Ability> getAbilitiesFromCard(String cardName) {
|
||||
CardInfo info = CardRepository.instance.findCard(cardName);
|
||||
PermanentImpl permanent = new PermanentCard(info.getCard(), playerA.getId(), currentGame);
|
||||
PermanentImpl permanent = new PermanentCard(info.createCard(), playerA.getId(), currentGame);
|
||||
return permanent.getAbilities(currentGame);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import mage.game.command.CommandObject;
|
|||
import mage.game.command.Emblem;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.PermanentCard;
|
||||
import mage.game.permanent.PermanentToken;
|
||||
import mage.player.ai.ComputerPlayer7;
|
||||
import mage.player.ai.ComputerPlayerMCTS;
|
||||
|
|
@ -683,7 +682,7 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
|
|||
|
||||
if (gameZone == Zone.BATTLEFIELD) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
Card newCard = cardInfo.getCard();
|
||||
Card newCard = cardInfo.createCard();
|
||||
getBattlefieldCards(player).add(new PutToBattlefieldInfo(
|
||||
newCard,
|
||||
tapped
|
||||
|
|
@ -699,7 +698,7 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
|
|||
}
|
||||
List<Card> cards = getCardList(gameZone, player);
|
||||
for (int i = 0; i < count; i++) {
|
||||
Card newCard = cardInfo.getCard();
|
||||
Card newCard = cardInfo.createCard();
|
||||
cards.add(newCard);
|
||||
if (!aliasName.isEmpty()) {
|
||||
player.addAlias(player.generateAliasName(aliasName, useAliasMultiNames, i + 1), newCard.getId());
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public class DeckValidationUtil {
|
|||
}
|
||||
for (int i = 0; i < cardNameAmount.getNumber(); i++) {
|
||||
assert cardinfo != null;
|
||||
deckToTest.getCards().add(cardinfo.getCard());
|
||||
deckToTest.getCards().add(cardinfo.createCard());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@ public class DeckValidationUtil {
|
|||
}
|
||||
for (int i = 0; i < cardNameAmount.getNumber(); i++) {
|
||||
assert cardinfo != null;
|
||||
deckToTest.getSideboard().add(cardinfo.getCard());
|
||||
deckToTest.getSideboard().add(cardinfo.createCard());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class SerializationTest extends CardTestPlayerBase {
|
|||
@Test
|
||||
public void test_PermanentImpl_Simple() {
|
||||
CardInfo cardInfo = CardRepository.instance.findCard("Balduvian Bears");
|
||||
Card newCard = cardInfo.getCard();
|
||||
Card newCard = cardInfo.createCard();
|
||||
Card permCard = CardUtil.getDefaultCardSideForBattlefield(currentGame, newCard);
|
||||
PermanentImpl permanent = new PermanentCard(permCard, playerA.getId(), currentGame);
|
||||
currentGame.addPermanent(permanent, 0);
|
||||
|
|
@ -55,7 +55,7 @@ public class SerializationTest extends CardTestPlayerBase {
|
|||
@Test
|
||||
public void test_PermanentImpl_MarkedDamageInfo() {
|
||||
CardInfo cardInfo = CardRepository.instance.findCard("Balduvian Bears");
|
||||
Card newCard = cardInfo.getCard();
|
||||
Card newCard = cardInfo.createCard();
|
||||
Card permCard = CardUtil.getDefaultCardSideForBattlefield(currentGame, newCard);
|
||||
PermanentImpl permanent = new PermanentCard(permCard, playerA.getId(), currentGame);
|
||||
currentGame.addPermanent(permanent, 0);
|
||||
|
|
@ -77,7 +77,7 @@ public class SerializationTest extends CardTestPlayerBase {
|
|||
|
||||
private void processSingleCard(CardInfo cardInfo) {
|
||||
// compress each card's part
|
||||
Card newCard = cardInfo.getCard();
|
||||
Card newCard = cardInfo.createCard();
|
||||
CardUtil.getObjectPartsAsObjects(newCard).stream()
|
||||
.map(Card.class::cast)
|
||||
.forEach(card -> {
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ public class AliasesApiTest extends CardTestPlayerBase {
|
|||
Assert.assertFalse(CardUtil.haveSameNames("Name1", "Name2", true));
|
||||
|
||||
// name with split card
|
||||
Card splitCard1 = CardRepository.instance.findCard("Armed // Dangerous").getCard();
|
||||
Card splitCard2 = CardRepository.instance.findCard("Alive // Well").getCard();
|
||||
Card splitCard1 = CardRepository.instance.findCard("Armed // Dangerous").createCard();
|
||||
Card splitCard2 = CardRepository.instance.findCard("Alive // Well").createCard();
|
||||
Assert.assertTrue(CardUtil.haveSameNames(splitCard1, "Armed", currentGame));
|
||||
Assert.assertTrue(CardUtil.haveSameNames(splitCard1, "Dangerous", currentGame));
|
||||
Assert.assertTrue(CardUtil.haveSameNames(splitCard1, "Armed // Dangerous", currentGame));
|
||||
|
|
@ -61,7 +61,7 @@ public class AliasesApiTest extends CardTestPlayerBase {
|
|||
Assert.assertFalse(CardUtil.haveSameNames(splitCard1, splitCard2));
|
||||
|
||||
// name with face down spells: face down spells don't have names, see https://github.com/magefree/mage/issues/6569
|
||||
Card bearCard = CardRepository.instance.findCard("Balduvian Bears").getCard();
|
||||
Card bearCard = CardRepository.instance.findCard("Balduvian Bears").createCard();
|
||||
Spell normalSpell = new Spell(bearCard, bearCard.getSpellAbility(), playerA.getId(), Zone.HAND, currentGame);
|
||||
Spell faceDownSpell = new Spell(bearCard, bearCard.getSpellAbility(), playerA.getId(), Zone.HAND, currentGame);
|
||||
faceDownSpell.setFaceDown(true, currentGame);
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ public class ManaUtilTest extends CardTestPlayerBase {
|
|||
*/
|
||||
private void testManaToPayVsLand(String manaToPay, String landName, int expected1, int expected2) {
|
||||
ManaCost unpaid = new ManaCostsImpl<>(manaToPay);
|
||||
Card card = CardRepository.instance.findCard(landName).getCard();
|
||||
Card card = CardRepository.instance.findCard(landName).createCard();
|
||||
Assert.assertNotNull(card);
|
||||
|
||||
Map<UUID, ActivatedManaAbilityImpl> useableAbilities = getManaAbilities(card);
|
||||
|
|
@ -134,7 +134,7 @@ public class ManaUtilTest extends CardTestPlayerBase {
|
|||
*/
|
||||
private void testManaToPayVsLand(String manaToPay, String landName, int expected1, Class<? extends BasicManaAbility> expectedChosen) {
|
||||
ManaCost unpaid = new ManaCostsImpl<>(manaToPay);
|
||||
Card card = CardRepository.instance.findCard(landName).getCard();
|
||||
Card card = CardRepository.instance.findCard(landName).createCard();
|
||||
Assert.assertNotNull(card);
|
||||
|
||||
Map<UUID, ActivatedManaAbilityImpl> useableAbilities = getManaAbilities(card);
|
||||
|
|
|
|||
|
|
@ -620,7 +620,7 @@ public class VerifyCardDataTest {
|
|||
CardInfo cardInfo = CardRepository.instance.findCardsByClass(info.getCardClass().getCanonicalName()).stream().findFirst().orElse(null);
|
||||
Assert.assertNotNull(cardInfo);
|
||||
|
||||
Card card = cardInfo.getCard();
|
||||
Card card = cardInfo.createCard();
|
||||
Card secondCard = card.getSecondCardFace();
|
||||
if (secondCard != null) {
|
||||
if (set.findCardInfoByClass(secondCard.getClass()).isEmpty()) {
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public class ConjureCardEffect extends OneShotEffect {
|
|||
}
|
||||
Set<Card> cards = new HashSet<>();
|
||||
for (int i = 0; i < amount; i++) {
|
||||
Card card = cardInfo.getCard();
|
||||
Card card = cardInfo.createCard();
|
||||
cards.add(card);
|
||||
}
|
||||
game.loadCards(cards, source.getControllerId());
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class DraftFromSpellbookEffect extends OneShotEffect {
|
|||
return false;
|
||||
}
|
||||
Set<Card> cards = new HashSet<>();
|
||||
cards.add(cardInfo.getCard());
|
||||
cards.add(cardInfo.createCard());
|
||||
game.loadCards(cards, player.getId());
|
||||
player.moveCards(cards, Zone.HAND, source, game);
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ public class MeldEffect extends OneShotEffect {
|
|||
if (cardInfoList.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
MeldCard meldCard = (MeldCard) cardInfoList.get(0).getCard().copy();
|
||||
MeldCard meldCard = (MeldCard) cardInfoList.get(0).createCard().copy();
|
||||
meldCard.setOwnerId(controller.getId());
|
||||
meldCard.setTopHalfCard(meldWithCard, game);
|
||||
meldCard.setBottomHalfCard(sourceCard, game);
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ public abstract class ExpansionSet implements Serializable {
|
|||
}
|
||||
|
||||
CardInfo cardInfo = cards.remove(RandomUtil.nextInt(cards.size()));
|
||||
Card card = cardInfo.getCard();
|
||||
Card card = cardInfo.createCard();
|
||||
if (card == null) {
|
||||
// card with error
|
||||
return;
|
||||
|
|
@ -273,7 +273,7 @@ public abstract class ExpansionSet implements Serializable {
|
|||
.makeBooster()
|
||||
.stream()
|
||||
.map(inBoosterMap::get)
|
||||
.map(CardInfo::getCard)
|
||||
.map(CardInfo::createCard)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
|
@ -569,7 +569,7 @@ public abstract class ExpansionSet implements Serializable {
|
|||
booster.forEach(card -> {
|
||||
List<CardInfo> reprints = this.savedReprints.getOrDefault(card.getName(), null);
|
||||
if (reprints != null && reprints.size() > 1) {
|
||||
Card newCard = reprints.get(RandomUtil.nextInt(reprints.size())).getCard();
|
||||
Card newCard = reprints.get(RandomUtil.nextInt(reprints.size())).createCard();
|
||||
if (newCard != null) {
|
||||
finalBooster.add(newCard);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ public class Sets extends HashMap<String, ExpansionSet> {
|
|||
List<Card> cardPool = new ArrayList<>();
|
||||
while (count < cardsCount) {
|
||||
CardInfo cardInfo = cards.get(RandomUtil.nextInt(cards.size()));
|
||||
Card card = cardInfo != null ? cardInfo.getCard() : null;
|
||||
Card card = cardInfo != null ? cardInfo.createCard() : null;
|
||||
if (card != null) {
|
||||
|
||||
FilterMana manaCard = card.getColorIdentity();
|
||||
|
|
|
|||
|
|
@ -184,9 +184,9 @@ public class Deck implements Serializable, Copyable<Deck> {
|
|||
}
|
||||
|
||||
if (mockCards) {
|
||||
return cardInfo.getMockCard();
|
||||
return cardInfo.createMockCard();
|
||||
} else {
|
||||
return cardInfo.getCard();
|
||||
return cardInfo.createCard();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class MockCard extends CardImpl {
|
|||
}
|
||||
|
||||
if (card.isModalDoubleFacedCard()) {
|
||||
ModalDoubleFacedCard mdfCard = (ModalDoubleFacedCard) card.getCard();
|
||||
ModalDoubleFacedCard mdfCard = (ModalDoubleFacedCard) card.createCard();
|
||||
CardInfo mdfSecondSide = new CardInfo(mdfCard.getRightHalfCard());
|
||||
this.secondSideCard = new MockCard(mdfSecondSide);
|
||||
this.isModalDoubleFacedCard = true;
|
||||
|
|
|
|||
|
|
@ -238,11 +238,17 @@ public class CardInfo {
|
|||
this.isExtraDeckCard = card.isExtraDeckCard();
|
||||
}
|
||||
|
||||
public Card getCard() {
|
||||
/**
|
||||
* Create normal card (with full abilities)
|
||||
*/
|
||||
public Card createCard() {
|
||||
return CardImpl.createCard(className, new CardSetInfo(name, setCode, cardNumber, rarity, new CardGraphicInfo(FrameStyle.valueOf(frameStyle), variousArt)));
|
||||
}
|
||||
|
||||
public Card getMockCard() {
|
||||
/**
|
||||
* Create deck editor's mock card (with text only instead real abilities)
|
||||
*/
|
||||
public Card createMockCard() {
|
||||
if (this.splitCard) {
|
||||
return new MockSplitCard(this);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ public abstract class GameTinyLeadersImpl extends GameImpl {
|
|||
default:
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(commanderName);
|
||||
if (cardInfo != null) {
|
||||
commander = cardInfo.getCard();
|
||||
commander = cardInfo.createCard();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public final class EmblemOfCard extends Emblem {
|
|||
.orElseGet(() -> found.stream()
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new IllegalArgumentException("No real card for " + infoTypeForError + " " + cardName)))
|
||||
.getCard();
|
||||
.createCard();
|
||||
}
|
||||
|
||||
public static Card cardFromDeckInfo(DeckCardInfo info) {
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ class MomirEffect extends OneShotEffect {
|
|||
if (expansionSet == null || !expansionSet.getSetType().isEternalLegal()) {
|
||||
options.remove(index);
|
||||
} else {
|
||||
Card card = options.get(index).getCard();
|
||||
Card card = options.get(index).createCard();
|
||||
if (card != null) {
|
||||
token = CopyTokenFunction.createTokenCopy(card, game);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public abstract class DraftCube {
|
|||
}
|
||||
|
||||
if (cardInfo != null) {
|
||||
booster.add(cardInfo.getCard());
|
||||
booster.add(cardInfo.createCard());
|
||||
done = true;
|
||||
} else {
|
||||
logger.warn(new StringBuilder(this.getName()).append(" - Card not found: ").append(cardId.getName()).append(':').append(cardId.extension));
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public class RemixedSet implements Serializable {
|
|||
return;
|
||||
}
|
||||
CardInfo cardInfo = cards.remove(RandomUtil.nextInt(cards.size())); // so no duplicates in a booster
|
||||
Card card = cardInfo.getCard();
|
||||
Card card = cardInfo.createCard();
|
||||
if (card == null) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public final class TournamentUtil {
|
|||
List<Card> cards = new ArrayList<>();
|
||||
if (!lands.isEmpty()) {
|
||||
for (int i = 0; i < number; i++) {
|
||||
Card land = lands.get(RandomUtil.nextInt(lands.size())).getCard();
|
||||
Card land = lands.get(RandomUtil.nextInt(lands.size())).createCard();
|
||||
cards.add(land);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue