[NEO] Implemented Boseiju Reaches Skyward

This commit is contained in:
Evan Kranzler 2022-01-30 15:58:12 -05:00
parent 2f189c1dec
commit 14c8ead72f
3 changed files with 121 additions and 0 deletions

View file

@ -0,0 +1,72 @@
package mage.cards.b;
import mage.abilities.common.SagaAbility;
import mage.abilities.effects.common.ExileSagaAndReturnTransformedEffect;
import mage.abilities.effects.common.PutOnLibraryTargetEffect;
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
import mage.abilities.keyword.TransformAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SagaChapter;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.FilterCard;
import mage.filter.StaticFilters;
import mage.target.common.TargetCardInLibrary;
import mage.target.common.TargetCardInYourGraveyard;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class BoseijuReachesSkyward extends CardImpl {
private static final FilterCard filter = new FilterCard("basic Forest cards");
static {
filter.add(SuperType.BASIC.getPredicate());
filter.add(SubType.FOREST.getPredicate());
}
public BoseijuReachesSkyward(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}");
this.subtype.add(SubType.SAGA);
this.secondSideCardClazz = mage.cards.b.BranchOfBoseiju.class;
// (As this Saga enters and after your draw step, add a lore counter.)
SagaAbility sagaAbility = new SagaAbility(this, SagaChapter.CHAPTER_III);
// I Search your library for up to two basic Forest cards, reveal them, put them into your hand, then shuffle.
sagaAbility.addChapterEffect(
this, SagaChapter.CHAPTER_I,
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(
0, 2, filter
), true, true)
);
// II Put up to one target land card from your graveyard on top of your library.
sagaAbility.addChapterEffect(
this, SagaChapter.CHAPTER_II, SagaChapter.CHAPTER_II,
new PutOnLibraryTargetEffect(true),
new TargetCardInYourGraveyard(0, 1, StaticFilters.FILTER_CARD_LAND)
);
// III Exile this Saga, then return it to the battlefield transformed under your control.
this.addAbility(new TransformAbility());
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new ExileSagaAndReturnTransformedEffect());
this.addAbility(sagaAbility);
}
private BoseijuReachesSkyward(final BoseijuReachesSkyward card) {
super(card);
}
@Override
public BoseijuReachesSkyward copy() {
return new BoseijuReachesSkyward(this);
}
}

View file

@ -0,0 +1,47 @@
package mage.cards.b;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.LandsYouControlCount;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.keyword.ReachAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class BranchOfBoseiju extends CardImpl {
public BranchOfBoseiju(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "");
this.subtype.add(SubType.PLANT);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.color.setGreen(true);
this.nightCard = true;
// Reach
this.addAbility(ReachAbility.getInstance());
// Branch of Boseiju gets +1/+1 for each land you control.
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(
LandsYouControlCount.instance, LandsYouControlCount.instance, Duration.WhileOnBattlefield
).setText("{this} gets +1/+1 for each land you control")));
}
private BranchOfBoseiju(final BranchOfBoseiju card) {
super(card);
}
@Override
public BranchOfBoseiju copy() {
return new BranchOfBoseiju(this);
}
}

View file

@ -35,6 +35,8 @@ public final class KamigawaNeonDynasty extends ExpansionSet {
cards.add(new SetCardInfo("Banishing Slash", 3, Rarity.UNCOMMON, mage.cards.b.BanishingSlash.class)); cards.add(new SetCardInfo("Banishing Slash", 3, Rarity.UNCOMMON, mage.cards.b.BanishingSlash.class));
cards.add(new SetCardInfo("Befriending the Moths", 4, Rarity.COMMON, mage.cards.b.BefriendingTheMoths.class)); cards.add(new SetCardInfo("Befriending the Moths", 4, Rarity.COMMON, mage.cards.b.BefriendingTheMoths.class));
cards.add(new SetCardInfo("Biting-Palm Ninja", 88, Rarity.RARE, mage.cards.b.BitingPalmNinja.class)); cards.add(new SetCardInfo("Biting-Palm Ninja", 88, Rarity.RARE, mage.cards.b.BitingPalmNinja.class));
cards.add(new SetCardInfo("Boseiju Reaches Skyward", 177, Rarity.UNCOMMON, mage.cards.b.BoseijuReachesSkyward.class));
cards.add(new SetCardInfo("Branch of Boseiju", 177, Rarity.UNCOMMON, mage.cards.b.BranchOfBoseiju.class));
cards.add(new SetCardInfo("Bronzeplate Boar", 135, Rarity.UNCOMMON, mage.cards.b.BronzeplateBoar.class)); cards.add(new SetCardInfo("Bronzeplate Boar", 135, Rarity.UNCOMMON, mage.cards.b.BronzeplateBoar.class));
cards.add(new SetCardInfo("Covert Technician", 49, Rarity.UNCOMMON, mage.cards.c.CovertTechnician.class)); cards.add(new SetCardInfo("Covert Technician", 49, Rarity.UNCOMMON, mage.cards.c.CovertTechnician.class));
cards.add(new SetCardInfo("Dokuchi Shadow-Walker", 94, Rarity.COMMON, mage.cards.d.DokuchiShadowWalker.class)); cards.add(new SetCardInfo("Dokuchi Shadow-Walker", 94, Rarity.COMMON, mage.cards.d.DokuchiShadowWalker.class));