From d357f4a0b012b3f429d76f0cb57d897f8a018fa5 Mon Sep 17 00:00:00 2001 From: "Alex W. Jackson" Date: Fri, 24 Dec 2021 03:38:48 -0500 Subject: [PATCH] Add MDFC support to CardCriteria and use it for ZNR --- Mage.Sets/src/mage/sets/ZendikarRising.java | 20 +++++++++++++------ .../mage/cards/repository/CardCriteria.java | 15 ++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Mage.Sets/src/mage/sets/ZendikarRising.java b/Mage.Sets/src/mage/sets/ZendikarRising.java index 6ae423eff9e..44e7be65b73 100644 --- a/Mage.Sets/src/mage/sets/ZendikarRising.java +++ b/Mage.Sets/src/mage/sets/ZendikarRising.java @@ -1,8 +1,9 @@ package mage.sets; -import mage.cards.Card; import mage.cards.ExpansionSet; -import mage.cards.ModalDoubleFacesCard; +import mage.cards.repository.CardCriteria; +import mage.cards.repository.CardInfo; +import mage.cards.repository.CardRepository; import mage.constants.Rarity; import mage.constants.SetType; @@ -28,7 +29,9 @@ public final class ZendikarRising extends ExpansionSet { this.numBoosterCommon = 10; this.numBoosterUncommon = 3; this.numBoosterRare = 1; - this.ratioBoosterMythic = 7.4; + this.ratioBoosterMythic = 8; + this.ratioBoosterSpecialRare = 5.5; + this.ratioBoosterSpecialMythic = 5.4; // 5 mythic MDFCs, 11 rare MDFCs this.maxCardNumberInBooster = 280; cards.add(new SetCardInfo("Acquisitions Expert", 89, Rarity.UNCOMMON, mage.cards.a.AcquisitionsExpert.class)); @@ -425,8 +428,13 @@ public final class ZendikarRising extends ExpansionSet { } @Override - protected boolean boosterIsValid(List booster) { - return super.boosterIsValid(booster) - && booster.stream().filter(ModalDoubleFacesCard.class::isInstance).count() == 1; + protected List findSpecialCardsByRarity(Rarity rarity) { + List cardInfos = super.findSpecialCardsByRarity(rarity); + cardInfos.addAll(CardRepository.instance.findCards(new CardCriteria() + .setCodes(this.code) + .rarities(rarity) + .modalDoubleFaced(true) + .maxCardNumber(maxCardNumberInBooster))); + return cardInfos; } } diff --git a/Mage/src/main/java/mage/cards/repository/CardCriteria.java b/Mage/src/main/java/mage/cards/repository/CardCriteria.java index 6ab85b4adf7..e9a5c044ba9 100644 --- a/Mage/src/main/java/mage/cards/repository/CardCriteria.java +++ b/Mage/src/main/java/mage/cards/repository/CardCriteria.java @@ -30,6 +30,7 @@ public class CardCriteria { private final List subtypes; private final List rarities; private Boolean doubleFaced; + private Boolean modalDoubleFaced; private boolean black; private boolean blue; private boolean green; @@ -100,6 +101,11 @@ public class CardCriteria { return this; } + public CardCriteria modalDoubleFaced(boolean modalDoubleFaced) { + this.modalDoubleFaced = modalDoubleFaced; + return this; + } + public CardCriteria name(String name) { this.name = name; return this; @@ -215,6 +221,11 @@ public class CardCriteria { clausesCount++; } + if (modalDoubleFaced != null) { + where.eq("modalDoubleFacesCard", modalDoubleFaced); + clausesCount++; + } + for (Rarity rarity : rarities) { where.eq("rarity", rarity); } @@ -412,6 +423,10 @@ public class CardCriteria { return doubleFaced; } + public Boolean getModalDoubleFaced() { + return modalDoubleFaced; + } + public boolean isBlack() { return black; }