refactor: improved card info

This commit is contained in:
Oleg Agafonov 2024-02-18 22:40:30 +04:00
parent b1e4ea2790
commit ad8e7daf97
47 changed files with 84 additions and 81 deletions

View file

@ -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

View file

@ -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}

View file

@ -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));
}

View file

@ -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.");

View file

@ -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();
}

View file

@ -86,7 +86,7 @@ public class AbilityPickerTest extends CardTestPlayerBase {
private Abilities<Ability> getAbilitiesFromCard(String cardName) {
CardInfo info = CardRepository.instance.findCard(cardName);
PermanentImpl permanent = new PermanentCard(info.getCard(), playerA.getId(), currentGame);
PermanentImpl permanent = new PermanentCard(info.createCard(), playerA.getId(), currentGame);
return permanent.getAbilities(currentGame);
}
}

View file

@ -21,7 +21,6 @@ import mage.game.command.CommandObject;
import mage.game.command.Emblem;
import mage.game.match.MatchOptions;
import mage.game.permanent.Permanent;
import mage.game.permanent.PermanentCard;
import mage.game.permanent.PermanentToken;
import mage.player.ai.ComputerPlayer7;
import mage.player.ai.ComputerPlayerMCTS;
@ -683,7 +682,7 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
if (gameZone == Zone.BATTLEFIELD) {
for (int i = 0; i < count; i++) {
Card newCard = cardInfo.getCard();
Card newCard = cardInfo.createCard();
getBattlefieldCards(player).add(new PutToBattlefieldInfo(
newCard,
tapped
@ -699,7 +698,7 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
List<Card> cards = getCardList(gameZone, player);
for (int i = 0; i < count; i++) {
Card newCard = cardInfo.getCard();
Card newCard = cardInfo.createCard();
cards.add(newCard);
if (!aliasName.isEmpty()) {
player.addAlias(player.generateAliasName(aliasName, useAliasMultiNames, i + 1), newCard.getId());

View file

@ -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());
}
}
}

View file

@ -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 -> {

View file

@ -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);

View file

@ -106,7 +106,7 @@ public class ManaUtilTest extends CardTestPlayerBase {
*/
private void testManaToPayVsLand(String manaToPay, String landName, int expected1, int expected2) {
ManaCost unpaid = new ManaCostsImpl<>(manaToPay);
Card card = CardRepository.instance.findCard(landName).getCard();
Card card = CardRepository.instance.findCard(landName).createCard();
Assert.assertNotNull(card);
Map<UUID, ActivatedManaAbilityImpl> useableAbilities = getManaAbilities(card);
@ -134,7 +134,7 @@ public class ManaUtilTest extends CardTestPlayerBase {
*/
private void testManaToPayVsLand(String manaToPay, String landName, int expected1, Class<? extends BasicManaAbility> expectedChosen) {
ManaCost unpaid = new ManaCostsImpl<>(manaToPay);
Card card = CardRepository.instance.findCard(landName).getCard();
Card card = CardRepository.instance.findCard(landName).createCard();
Assert.assertNotNull(card);
Map<UUID, ActivatedManaAbilityImpl> useableAbilities = getManaAbilities(card);