mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 03:22:00 -08:00
[NEO] Implemented Boseiju Reaches Skyward
This commit is contained in:
parent
2f189c1dec
commit
14c8ead72f
3 changed files with 121 additions and 0 deletions
72
Mage.Sets/src/mage/cards/b/BoseijuReachesSkyward.java
Normal file
72
Mage.Sets/src/mage/cards/b/BoseijuReachesSkyward.java
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
47
Mage.Sets/src/mage/cards/b/BranchOfBoseiju.java
Normal file
47
Mage.Sets/src/mage/cards/b/BranchOfBoseiju.java
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue