[LTR] Implement There and Back Again

This commit is contained in:
theelk801 2023-06-02 09:02:51 -04:00
parent 6772a3956d
commit a4a995f615
5 changed files with 116 additions and 1 deletions

View file

@ -0,0 +1,71 @@
package mage.cards.t;
import mage.abilities.common.SagaAbility;
import mage.abilities.effects.Effects;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.combat.CantBlockTargetEffect;
import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
import mage.abilities.effects.keyword.TheRingTemptsYouEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SagaChapter;
import mage.constants.SubType;
import mage.filter.FilterCard;
import mage.game.permanent.token.SmaugToken;
import mage.target.common.TargetCardInLibrary;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ThereAndBackAgain extends CardImpl {
private static final FilterCard filter = new FilterCard("Mountain card");
static {
filter.add(SubType.MOUNTAIN.getPredicate());
}
public ThereAndBackAgain(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}{R}");
this.subtype.add(SubType.SAGA);
// (As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)
SagaAbility sagaAbility = new SagaAbility(this);
// I -- Up to one target creature can't block for as long as you control There and Back Again. The Ring tempts you.
sagaAbility.addChapterEffect(
this, SagaChapter.CHAPTER_I, SagaChapter.CHAPTER_I,
new Effects(
new CantBlockTargetEffect(Duration.WhileControlled), new TheRingTemptsYouEffect()
), new TargetCreaturePermanent(0, 1)
);
// II -- Search your library for a Mountain card, put it onto the battlefield, then shuffle.
sagaAbility.addChapterEffect(
this, SagaChapter.CHAPTER_II,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter))
);
// III -- Create Smaug, a legendary 6/6 red Dragon creature token with flying, haste, and "When this creature dies, create fourteen Treasure tokens."
sagaAbility.addChapterEffect(
this, SagaChapter.CHAPTER_III, new CreateTokenEffect(new SmaugToken())
);
this.addAbility(sagaAbility);
}
private ThereAndBackAgain(final ThereAndBackAgain card) {
super(card);
}
@Override
public ThereAndBackAgain copy() {
return new ThereAndBackAgain(this);
}
}

View file

@ -48,6 +48,8 @@ public final class WarOfTheLastAlliance extends CardImpl {
StaticFilters.FILTER_PERMANENT_CREATURES
), new TheRingTemptsYouEffect()
);
this.addAbility(sagaAbility);
}
private WarOfTheLastAlliance(final WarOfTheLastAlliance card) {

View file

@ -87,6 +87,7 @@ public final class TheLordOfTheRingsTalesOfMiddleEarth extends ExpansionSet {
cards.add(new SetCardInfo("The Bath Song", 40, Rarity.UNCOMMON, mage.cards.t.TheBathSong.class));
cards.add(new SetCardInfo("The One Ring", 246, Rarity.MYTHIC, mage.cards.t.TheOneRing.class));
cards.add(new SetCardInfo("The Shire", 260, Rarity.RARE, mage.cards.t.TheShire.class));
cards.add(new SetCardInfo("There and Back Again", 151, Rarity.RARE, mage.cards.t.ThereAndBackAgain.class));
cards.add(new SetCardInfo("Tom Bombadil", 234, Rarity.MYTHIC, mage.cards.t.TomBombadil.class));
cards.add(new SetCardInfo("Trailblazer's Boots", 398, Rarity.RARE, mage.cards.t.TrailblazersBoots.class));
cards.add(new SetCardInfo("War of the Last Alliance", 36, Rarity.RARE, mage.cards.w.WarOfTheLastAlliance.class));

View file

@ -13,7 +13,7 @@ import mage.constants.SuperType;
public final class KaroxBladewingDragonToken extends TokenImpl {
public KaroxBladewingDragonToken() {
super("Karox Bladewing Token", "legendary 4/4 red Dragon creature token with flying");
super("Karox Bladewing", "Karox Bladewing, a legendary 4/4 red Dragon creature token with flying");
this.power = new MageInt(4);
this.toughness = new MageInt(4);
this.supertype.add(SuperType.LEGENDARY);

View file

@ -0,0 +1,41 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.HasteAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
/**
* @author TheElk801
*/
public final class SmaugToken extends TokenImpl {
public SmaugToken() {
super("Smaug", "Smaug, a legendary 6/6 red Dragon creature token with flying, haste, and \"When this creature dies, create fourteen Treasure tokens.\"");
this.power = new MageInt(6);
this.toughness = new MageInt(6);
this.supertype.add(SuperType.LEGENDARY);
this.cardType.add(CardType.CREATURE);
this.subtype.add(SubType.DRAGON);
this.color.setRed(true);
this.addAbility(FlyingAbility.getInstance());
this.addAbility(HasteAbility.getInstance());
this.addAbility(new DiesSourceTriggeredAbility(
new CreateTokenEffect(new FoodToken(), 14)
).setTriggerPhrase("When this creature dies, "));
}
public SmaugToken(final SmaugToken token) {
super(token);
}
@Override
public SmaugToken copy() {
return new SmaugToken(this);
}
}