From 75e95ee7b52da1cc0e2f7f1d9e5afd1b9a3f8fc6 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sat, 5 Aug 2023 14:50:49 -0400 Subject: [PATCH] [WOE] Implement Restless Fortress --- .../src/mage/cards/r/RestlessFortress.java | 58 +++++++++++++++++++ Mage.Sets/src/mage/sets/WildsOfEldraine.java | 1 + 2 files changed, 59 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/r/RestlessFortress.java diff --git a/Mage.Sets/src/mage/cards/r/RestlessFortress.java b/Mage.Sets/src/mage/cards/r/RestlessFortress.java new file mode 100644 index 00000000000..164fa7d0684 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RestlessFortress.java @@ -0,0 +1,58 @@ +package mage.cards.r; + +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeDefendingPlayerEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.game.permanent.token.custom.CreatureToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class RestlessFortress extends CardImpl { + + public RestlessFortress(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + // Restless Fortress enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // {T}: Add {W} or {B}. + this.addAbility(new WhiteManaAbility()); + this.addAbility(new BlackManaAbility()); + + // {2}{W}{B}: Restless Fortress becomes a 1/4 white and black Nightmare creature until end of turn. It's still a land. + this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect( + new CreatureToken(1, 4, "1/4 white and black Nightmare creature") + .withColor("WB").withSubType(SubType.NIGHTMARE), + CardType.LAND, Duration.EndOfTurn + ), new ManaCostsImpl<>("{2}{W}{B}"))); + + // Whenever Restless Fortress attacks, defending player loses 2 life and you gain 2 life. + Ability ability = new AttacksTriggeredAbility(new LoseLifeDefendingPlayerEffect(2, true), false); + ability.addEffect(new GainLifeEffect(2).concatBy("and")); + this.addAbility(ability); + } + + private RestlessFortress(final RestlessFortress card) { + super(card); + } + + @Override + public RestlessFortress copy() { + return new RestlessFortress(this); + } +} diff --git a/Mage.Sets/src/mage/sets/WildsOfEldraine.java b/Mage.Sets/src/mage/sets/WildsOfEldraine.java index 91a5141e280..055ea464c12 100644 --- a/Mage.Sets/src/mage/sets/WildsOfEldraine.java +++ b/Mage.Sets/src/mage/sets/WildsOfEldraine.java @@ -25,6 +25,7 @@ public final class WildsOfEldraine extends ExpansionSet { cards.add(new SetCardInfo("Island", 263, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Mountain", 265, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Plains", 262, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Restless Fortress", 259, Rarity.RARE, mage.cards.r.RestlessFortress.class)); cards.add(new SetCardInfo("Sleight of Hand", 67, Rarity.COMMON, mage.cards.s.SleightOfHand.class)); cards.add(new SetCardInfo("Swamp", 264, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); }