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