From ad8e7daf97866543e0370b272522f3596d2e0bb9 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sun, 18 Feb 2024 22:40:30 +0400 Subject: [PATCH] refactor: improved card info --- .../java/mage/client/cards/DragCardGrid.java | 4 ++-- .../java/mage/client/cards/VirtualCardInfo.java | 2 +- .../mage/client/components/MageEditorPane.java | 2 +- .../client/deck/generator/DeckGenerator.java | 5 +---- .../client/deck/generator/DeckGeneratorPool.java | 4 ++-- .../mage/client/deckeditor/CardSelector.java | 2 +- .../mage/client/deckeditor/DeckEditorPanel.java | 8 ++++---- .../deckeditor/collection/viewer/MageBook.java | 2 +- .../java/mage/client/dialog/AddLandDialog.java | 2 +- .../java/mage/client/util/CardsViewUtil.java | 4 ++-- .../src/main/java/mage/client/util/DeckUtil.java | 4 ++-- .../src/main/java/mage/utils/SystemUtil.java | 4 ++-- .../src/mage/game/MomirDuel.java | 2 +- .../src/mage/game/MomirGame.java | 2 +- .../main/java/mage/player/ai/ComputerPlayer.java | 2 +- .../main/java/mage/server/ChatManagerImpl.java | 2 +- Mage.Sets/src/mage/cards/a/AWing.java | 1 + Mage.Sets/src/mage/cards/c/CapitalOffense.java | 2 +- Mage.Sets/src/mage/cards/g/GarthOneEye.java | 2 +- Mage.Sets/src/mage/sets/Battlebond.java | 2 +- Mage.Sets/src/mage/sets/MysteryBooster.java | 2 +- .../org/mage/test/cards/copy/CopySpellTest.java | 16 ++++++++-------- .../test/cards/emblems/EmblemOfCardTest.java | 12 ++++++------ .../test/cards/single/afr/Plus2MaceTest.java | 2 +- .../mage/test/cards/text/WrennAndSixTest.java | 2 +- .../commander/CommanderColorIdentityTest.java | 2 +- .../mage/test/serverside/AbilityPickerTest.java | 2 +- .../base/impl/CardTestPlayerAPIImpl.java | 5 ++--- .../test/serverside/deck/DeckValidationUtil.java | 4 ++-- .../performance/SerializationTest.java | 6 +++--- .../org/mage/test/testapi/AliasesApiTest.java | 6 +++--- .../java/org/mage/test/utils/ManaUtilTest.java | 4 ++-- .../java/mage/verify/VerifyCardDataTest.java | 2 +- .../effects/common/ConjureCardEffect.java | 2 +- .../effects/common/DraftFromSpellbookEffect.java | 2 +- .../abilities/effects/common/MeldEffect.java | 2 +- Mage/src/main/java/mage/cards/ExpansionSet.java | 6 +++--- Mage/src/main/java/mage/cards/Sets.java | 2 +- Mage/src/main/java/mage/cards/decks/Deck.java | 4 ++-- Mage/src/main/java/mage/cards/mock/MockCard.java | 2 +- .../java/mage/cards/repository/CardInfo.java | 10 ++++++++-- .../main/java/mage/game/GameTinyLeadersImpl.java | 2 +- .../mage/game/command/emblems/EmblemOfCard.java | 2 +- .../mage/game/command/emblems/MomirEmblem.java | 2 +- .../src/main/java/mage/game/draft/DraftCube.java | 2 +- .../main/java/mage/game/draft/RemixedSet.java | 2 +- Mage/src/main/java/mage/util/TournamentUtil.java | 2 +- 47 files changed, 84 insertions(+), 81 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java index 40fb19b0e9f..30d27afc6d7 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java @@ -1705,7 +1705,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg java.util.List 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); diff --git a/Mage.Client/src/main/java/mage/client/cards/VirtualCardInfo.java b/Mage.Client/src/main/java/mage/client/cards/VirtualCardInfo.java index a537320007d..4ae4af5fcf4 100644 --- a/Mage.Client/src/main/java/mage/client/cards/VirtualCardInfo.java +++ b/Mage.Client/src/main/java/mage/client/cards/VirtualCardInfo.java @@ -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) { diff --git a/Mage.Client/src/main/java/mage/client/components/MageEditorPane.java b/Mage.Client/src/main/java/mage/client/components/MageEditorPane.java index c10c66403a0..474bbdee84e 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageEditorPane.java +++ b/Mage.Client/src/main/java/mage/client/components/MageEditorPane.java @@ -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()); } } diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java index a9f99c1daa8..1d08e11bfd3 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java @@ -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> basicLands) { String landName = DeckGeneratorPool.getBasicLandName(color.toString()); List basicLandsInfo = basicLands.get(landName); - return basicLandsInfo.get(RandomUtil.nextInt(basicLandsInfo.size())).getMockCard().copy(); + return basicLandsInfo.get(RandomUtil.nextInt(basicLandsInfo.size())).createMockCard().copy(); } } diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java index e2b9d5cf6c1..5c60b989043 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java @@ -278,7 +278,7 @@ public class DeckGeneratorPool public List filterLands(List landCardsInfo) { List 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) { diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index fe1b569879b..9bd926665e5 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -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; } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java index 580537ccaa0..03b97fce029 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -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); } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java index cdf68fb97b1..176561f739b 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java @@ -443,7 +443,7 @@ public class MageBook extends JComponent { List cards = CardRepository.instance.findCards(criteria); cards.sort(new NaturalOrderCardNumberComparator()); List res = new ArrayList<>(); - cards.forEach(card -> res.add(new CardView(card.getMockCard()))); + cards.forEach(card -> res.add(new CardView(card.createMockCard()))); return res; } diff --git a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java index ca47f570d56..32f7e2f49e4 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java @@ -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 diff --git a/Mage.Client/src/main/java/mage/client/util/CardsViewUtil.java b/Mage.Client/src/main/java/mage/client/util/CardsViewUtil.java index bc2a1b4654d..0f34fda338b 100644 --- a/Mage.Client/src/main/java/mage/client/util/CardsViewUtil.java +++ b/Mage.Client/src/main/java/mage/client/util/CardsViewUtil.java @@ -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) { diff --git a/Mage.Client/src/main/java/mage/client/util/DeckUtil.java b/Mage.Client/src/main/java/mage/client/util/DeckUtil.java index 45cf31101a3..b171fcd06c3 100644 --- a/Mage.Client/src/main/java/mage/client/util/DeckUtil.java +++ b/Mage.Client/src/main/java/mage/client/util/DeckUtil.java @@ -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 { diff --git a/Mage.Common/src/main/java/mage/utils/SystemUtil.java b/Mage.Common/src/main/java/mage/utils/SystemUtil.java index 83f5a1c832a..b253196888f 100644 --- a/Mage.Common/src/main/java/mage/utils/SystemUtil.java +++ b/Mage.Common/src/main/java/mage/utils/SystemUtil.java @@ -715,7 +715,7 @@ public final class SystemUtil { Set 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 cardsToLoad = new LinkedHashSet<>(); for (int i = 0; i < amount; i++) { - cardsToLoad.add(cardInfo.getCard()); + cardsToLoad.add(cardInfo.createCard()); } game.loadCards(cardsToLoad, owner.getId()); diff --git a/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java b/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java index 42b5cdbec50..d4b8b571f08 100644 --- a/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java +++ b/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java @@ -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); diff --git a/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java b/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java index 470696ae11a..ccb28b895a9 100644 --- a/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java +++ b/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java @@ -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); diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index 5c43777769e..e2da7dd0a70 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -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); } } diff --git a/Mage.Server/src/main/java/mage/server/ChatManagerImpl.java b/Mage.Server/src/main/java/mage/server/ChatManagerImpl.java index 2315544dd7f..de1c4e24081 100644 --- a/Mage.Server/src/main/java/mage/server/ChatManagerImpl.java +++ b/Mage.Server/src/main/java/mage/server/ChatManagerImpl.java @@ -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(), "", diff --git a/Mage.Sets/src/mage/cards/a/AWing.java b/Mage.Sets/src/mage/cards/a/AWing.java index 3dc8f2a0447..d40532abf61 100644 --- a/Mage.Sets/src/mage/cards/a/AWing.java +++ b/Mage.Sets/src/mage/cards/a/AWing.java @@ -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(); } diff --git a/Mage.Sets/src/mage/cards/c/CapitalOffense.java b/Mage.Sets/src/mage/cards/c/CapitalOffense.java index a6209f158a8..47c1722a577 100644 --- a/Mage.Sets/src/mage/cards/c/CapitalOffense.java +++ b/Mage.Sets/src/mage/cards/c/CapitalOffense.java @@ -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; } diff --git a/Mage.Sets/src/mage/cards/g/GarthOneEye.java b/Mage.Sets/src/mage/cards/g/GarthOneEye.java index 944632a03e7..4a2b385deeb 100644 --- a/Mage.Sets/src/mage/cards/g/GarthOneEye.java +++ b/Mage.Sets/src/mage/cards/g/GarthOneEye.java @@ -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() { diff --git a/Mage.Sets/src/mage/sets/Battlebond.java b/Mage.Sets/src/mage/sets/Battlebond.java index fc2fa54e79b..42e1784f8f9 100644 --- a/Mage.Sets/src/mage/sets/Battlebond.java +++ b/Mage.Sets/src/mage/sets/Battlebond.java @@ -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 { diff --git a/Mage.Sets/src/mage/sets/MysteryBooster.java b/Mage.Sets/src/mage/sets/MysteryBooster.java index 0a3cb5b9b53..17dd6cd76bf 100644 --- a/Mage.Sets/src/mage/sets/MysteryBooster.java +++ b/Mage.Sets/src/mage/sets/MysteryBooster.java @@ -3516,7 +3516,7 @@ public class MysteryBooster extends ExpansionSet { for (int slot = 1; slot < 16; ++slot) { final List 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; diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/copy/CopySpellTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/copy/CopySpellTest.java index e5174bfdfc6..d8b9b9886b0 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/copy/CopySpellTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/copy/CopySpellTest.java @@ -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 diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/emblems/EmblemOfCardTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/emblems/EmblemOfCardTest.java index 20fbeb98ebc..924d6f13381 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/emblems/EmblemOfCardTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/emblems/EmblemOfCardTest.java @@ -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} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/afr/Plus2MaceTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/afr/Plus2MaceTest.java index 2d6711ac1d5..301af112f15 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/afr/Plus2MaceTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/afr/Plus2MaceTest.java @@ -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)); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/text/WrennAndSixTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/text/WrennAndSixTest.java index 21a30a73caa..e584e3a7e57 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/text/WrennAndSixTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/text/WrennAndSixTest.java @@ -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."); diff --git a/Mage.Tests/src/test/java/org/mage/test/commander/CommanderColorIdentityTest.java b/Mage.Tests/src/test/java/org/mage/test/commander/CommanderColorIdentityTest.java index 2ab600627f7..53656cefbb3 100644 --- a/Mage.Tests/src/test/java/org/mage/test/commander/CommanderColorIdentityTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/commander/CommanderColorIdentityTest.java @@ -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(); } diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/AbilityPickerTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/AbilityPickerTest.java index 100e71737d1..e8094c9c2dc 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/AbilityPickerTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/AbilityPickerTest.java @@ -86,7 +86,7 @@ public class AbilityPickerTest extends CardTestPlayerBase { private Abilities 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); } } diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java index 0128bfa6256..ba48ae65a86 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java @@ -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 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()); diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidationUtil.java b/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidationUtil.java index 8f8eee99e65..590df6e19fa 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidationUtil.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidationUtil.java @@ -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()); } } } diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java index b762e7d609b..3ebd8e0e4ef 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java @@ -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 -> { diff --git a/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java b/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java index 19b6226953e..4de1ffeba24 100644 --- a/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java @@ -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); diff --git a/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java b/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java index 2f854c85e43..d162c5a9c90 100644 --- a/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/utils/ManaUtilTest.java @@ -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 useableAbilities = getManaAbilities(card); @@ -134,7 +134,7 @@ public class ManaUtilTest extends CardTestPlayerBase { */ private void testManaToPayVsLand(String manaToPay, String landName, int expected1, Class expectedChosen) { ManaCost unpaid = new ManaCostsImpl<>(manaToPay); - Card card = CardRepository.instance.findCard(landName).getCard(); + Card card = CardRepository.instance.findCard(landName).createCard(); Assert.assertNotNull(card); Map useableAbilities = getManaAbilities(card); diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index 1d53278399e..53e79d68c5e 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -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()) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java index 45848e36ac8..a21fecfd441 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java @@ -65,7 +65,7 @@ public class ConjureCardEffect extends OneShotEffect { } Set 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()); diff --git a/Mage/src/main/java/mage/abilities/effects/common/DraftFromSpellbookEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DraftFromSpellbookEffect.java index cc658c87f4c..062c110f18b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DraftFromSpellbookEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DraftFromSpellbookEffect.java @@ -70,7 +70,7 @@ public class DraftFromSpellbookEffect extends OneShotEffect { return false; } Set 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; diff --git a/Mage/src/main/java/mage/abilities/effects/common/MeldEffect.java b/Mage/src/main/java/mage/abilities/effects/common/MeldEffect.java index e0bfbafdf1c..eaabf2f5e90 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/MeldEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/MeldEffect.java @@ -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); diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java index dbba6605550..a9e8be08ee9 100644 --- a/Mage/src/main/java/mage/cards/ExpansionSet.java +++ b/Mage/src/main/java/mage/cards/ExpansionSet.java @@ -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 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; diff --git a/Mage/src/main/java/mage/cards/Sets.java b/Mage/src/main/java/mage/cards/Sets.java index 40943485f36..152d51e53bf 100644 --- a/Mage/src/main/java/mage/cards/Sets.java +++ b/Mage/src/main/java/mage/cards/Sets.java @@ -127,7 +127,7 @@ public class Sets extends HashMap { List 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(); diff --git a/Mage/src/main/java/mage/cards/decks/Deck.java b/Mage/src/main/java/mage/cards/decks/Deck.java index a5ff5fb02f4..a68343a35d6 100644 --- a/Mage/src/main/java/mage/cards/decks/Deck.java +++ b/Mage/src/main/java/mage/cards/decks/Deck.java @@ -184,9 +184,9 @@ public class Deck implements Serializable, Copyable { } if (mockCards) { - return cardInfo.getMockCard(); + return cardInfo.createMockCard(); } else { - return cardInfo.getCard(); + return cardInfo.createCard(); } } diff --git a/Mage/src/main/java/mage/cards/mock/MockCard.java b/Mage/src/main/java/mage/cards/mock/MockCard.java index 7361b6cc04e..d61d968bd8c 100644 --- a/Mage/src/main/java/mage/cards/mock/MockCard.java +++ b/Mage/src/main/java/mage/cards/mock/MockCard.java @@ -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; diff --git a/Mage/src/main/java/mage/cards/repository/CardInfo.java b/Mage/src/main/java/mage/cards/repository/CardInfo.java index e838b1cf252..4876768cdd7 100644 --- a/Mage/src/main/java/mage/cards/repository/CardInfo.java +++ b/Mage/src/main/java/mage/cards/repository/CardInfo.java @@ -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 { diff --git a/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java b/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java index 13dd37646cb..1e76c1986d6 100644 --- a/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java +++ b/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java @@ -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(); } } } diff --git a/Mage/src/main/java/mage/game/command/emblems/EmblemOfCard.java b/Mage/src/main/java/mage/game/command/emblems/EmblemOfCard.java index 74c16dbb2e2..5c2a66b911f 100644 --- a/Mage/src/main/java/mage/game/command/emblems/EmblemOfCard.java +++ b/Mage/src/main/java/mage/game/command/emblems/EmblemOfCard.java @@ -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) { diff --git a/Mage/src/main/java/mage/game/command/emblems/MomirEmblem.java b/Mage/src/main/java/mage/game/command/emblems/MomirEmblem.java index 2c0ba23ba7c..ede372976fb 100644 --- a/Mage/src/main/java/mage/game/command/emblems/MomirEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/MomirEmblem.java @@ -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; diff --git a/Mage/src/main/java/mage/game/draft/DraftCube.java b/Mage/src/main/java/mage/game/draft/DraftCube.java index a73623f823f..d01888a5c39 100644 --- a/Mage/src/main/java/mage/game/draft/DraftCube.java +++ b/Mage/src/main/java/mage/game/draft/DraftCube.java @@ -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)); diff --git a/Mage/src/main/java/mage/game/draft/RemixedSet.java b/Mage/src/main/java/mage/game/draft/RemixedSet.java index 1d00693264c..ac64a38353f 100644 --- a/Mage/src/main/java/mage/game/draft/RemixedSet.java +++ b/Mage/src/main/java/mage/game/draft/RemixedSet.java @@ -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; } diff --git a/Mage/src/main/java/mage/util/TournamentUtil.java b/Mage/src/main/java/mage/util/TournamentUtil.java index 3df492aad2c..3abca0e9d9a 100644 --- a/Mage/src/main/java/mage/util/TournamentUtil.java +++ b/Mage/src/main/java/mage/util/TournamentUtil.java @@ -73,7 +73,7 @@ public final class TournamentUtil { List 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); } }