From 5633603e87b17d5aa7731539ac5f09de1c1f3e1e Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Fri, 11 Jan 2019 23:36:49 +0400 Subject: [PATCH 1/3] [RNA] implemented Bring to Trial --- Mage.Sets/src/mage/cards/b/BringToTrial.java | 42 +++++++++++++++++++ .../src/mage/sets/RavnicaAllegiance.java | 1 + 2 files changed, 43 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/b/BringToTrial.java diff --git a/Mage.Sets/src/mage/cards/b/BringToTrial.java b/Mage.Sets/src/mage/cards/b/BringToTrial.java new file mode 100644 index 00000000000..bf7b058150e --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BringToTrial.java @@ -0,0 +1,42 @@ +package mage.cards.b; + +import mage.abilities.effects.common.ExileTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author JayDi85 + */ +public final class BringToTrial extends CardImpl { + + static private final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 4 or greater"); + + static { + filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3)); + } + + public BringToTrial(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{W}"); + + + // Exile target creature with power 4 or greater. + this.getSpellAbility().addEffect(new ExileTargetEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); + } + + public BringToTrial(final BringToTrial card) { + super(card); + } + + @Override + public BringToTrial copy() { + return new BringToTrial(this); + } +} diff --git a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java index e992776ef0c..1cb769daf2d 100644 --- a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java +++ b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java @@ -56,6 +56,7 @@ public final class RavnicaAllegiance extends ExpansionSet { cards.add(new SetCardInfo("Blood Crypt", 245, Rarity.RARE, mage.cards.b.BloodCrypt.class)); cards.add(new SetCardInfo("Bolrac-Clan Crusher", 159, Rarity.UNCOMMON, mage.cards.b.BolracClanCrusher.class)); cards.add(new SetCardInfo("Breeding Pool", 246, Rarity.RARE, mage.cards.b.BreedingPool.class)); + cards.add(new SetCardInfo("Bring to Trial", 5, Rarity.COMMON, mage.cards.b.BringToTrial.class)); cards.add(new SetCardInfo("Burn Bright", 93, Rarity.COMMON, mage.cards.b.BurnBright.class)); cards.add(new SetCardInfo("Burning-Tree Vandal", 94, Rarity.COMMON, mage.cards.b.BurningTreeVandal.class)); cards.add(new SetCardInfo("Captive Audience", 160, Rarity.MYTHIC, mage.cards.c.CaptiveAudience.class)); From 93f42f67b6e5496c5e5eeee5f697fefa2e5a6cc1 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sat, 12 Jan 2019 00:13:36 +0400 Subject: [PATCH 2/3] [RNA] implemented Arrester's Zeal --- Mage.Sets/src/mage/cards/a/ArrestersZeal.java | 70 +++++++++++++++++++ .../src/mage/sets/RavnicaAllegiance.java | 1 + 2 files changed, 71 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/ArrestersZeal.java diff --git a/Mage.Sets/src/mage/cards/a/ArrestersZeal.java b/Mage.Sets/src/mage/cards/a/ArrestersZeal.java new file mode 100644 index 00000000000..9d488e442a4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/ArrestersZeal.java @@ -0,0 +1,70 @@ +package mage.cards.a; + +import mage.abilities.Ability; +import mage.abilities.condition.common.AddendumCondition; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.game.Game; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author JayDi85 + */ +public final class ArrestersZeal extends CardImpl { + + public ArrestersZeal(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}"); + + + // Target creature gets +2/+2 until end of turn. + this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + + // Addendum — If you cast this spell during your main phase, that creature gains flying until end of turn. + this.getSpellAbility().addEffect(new ArrestersZealEffect()); + } + + public ArrestersZeal(final ArrestersZeal card) { + super(card); + } + + @Override + public ArrestersZeal copy() { + return new ArrestersZeal(this); + } +} + +class ArrestersZealEffect extends OneShotEffect { + + ArrestersZealEffect() { + super(Outcome.Benefit); + staticText = "
Addendum — If you cast this spell during your main phase, that creature gains flying until end of turn."; + } + + private ArrestersZealEffect(final ArrestersZealEffect effect) { + super(effect); + } + + @Override + public ArrestersZealEffect copy() { + return new ArrestersZealEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + if (!AddendumCondition.instance.apply(game, source)) { + return false; + } + game.addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), source); + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java index f0948a9dc0c..fc6ce1b9215 100644 --- a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java +++ b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java @@ -37,6 +37,7 @@ public final class RavnicaAllegiance extends ExpansionSet { cards.add(new SetCardInfo("Amplifire", 92, Rarity.RARE, mage.cards.a.Amplifire.class)); cards.add(new SetCardInfo("Angel of Grace", 1, Rarity.MYTHIC, mage.cards.a.AngelOfGrace.class)); cards.add(new SetCardInfo("Angelic Exaltation", 2, Rarity.UNCOMMON, mage.cards.a.AngelicExaltation.class)); + cards.add(new SetCardInfo("Arrester's Zeal", 4, Rarity.COMMON, mage.cards.a.ArrestersZeal.class)); cards.add(new SetCardInfo("Archway Angel", 3, Rarity.UNCOMMON, mage.cards.a.ArchwayAngel.class)); cards.add(new SetCardInfo("Arrester's Admonition", 31, Rarity.COMMON, mage.cards.a.ArrestersAdmonition.class)); cards.add(new SetCardInfo("Awaken the Erstwhile", 61, Rarity.RARE, mage.cards.a.AwakenTheErstwhile.class)); From 1c4787c5175c4748b39331937cf8ddc949c8e40d Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sat, 12 Jan 2019 00:21:37 +0400 Subject: [PATCH 3/3] [RNA] implemented Civic Stalwart --- Mage.Sets/src/mage/cards/c/CivicStalwart.java | 40 +++++++++++++++++++ .../src/mage/sets/RavnicaAllegiance.java | 1 + 2 files changed, 41 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CivicStalwart.java diff --git a/Mage.Sets/src/mage/cards/c/CivicStalwart.java b/Mage.Sets/src/mage/cards/c/CivicStalwart.java new file mode 100644 index 00000000000..b9f6fecc0e6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CivicStalwart.java @@ -0,0 +1,40 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.common.FilterCreaturePermanent; + +import java.util.UUID; + +/** + * @author JayDi85 + */ +public final class CivicStalwart extends CardImpl { + + public CivicStalwart(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); + this.subtype.add(SubType.ELEPHANT); + this.subtype.add(SubType.SOLDIER); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Civic Stalwart enters the battlefield, creatures you control get +1/+1 until end of turn. + this.addAbility(new EntersBattlefieldTriggeredAbility( + new BoostControlledEffect(1, 1, Duration.EndOfTurn, new FilterCreaturePermanent("creatures")))); + } + + public CivicStalwart(final CivicStalwart card) { + super(card); + } + + @Override + public CivicStalwart copy() { + return new CivicStalwart(this); + } +} diff --git a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java index fc6ce1b9215..835200b1032 100644 --- a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java +++ b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java @@ -65,6 +65,7 @@ public final class RavnicaAllegiance extends ExpansionSet { cards.add(new SetCardInfo("Cavalcade of Calamity", 95, Rarity.UNCOMMON, mage.cards.c.CavalcadeOfCalamity.class)); cards.add(new SetCardInfo("Charging War Boar", 271, Rarity.UNCOMMON, mage.cards.c.ChargingWarBoar.class)); cards.add(new SetCardInfo("Cindervines", 161, Rarity.RARE, mage.cards.c.Cindervines.class)); + cards.add(new SetCardInfo("Civic Stalwart", 6, Rarity.COMMON, mage.cards.c.CivicStalwart.class)); cards.add(new SetCardInfo("Clamor Shaman", 96, Rarity.UNCOMMON, mage.cards.c.ClamorShaman.class)); cards.add(new SetCardInfo("Clan Guildmage", 162, Rarity.UNCOMMON, mage.cards.c.ClanGuildmage.class)); cards.add(new SetCardInfo("Collision // Colossus", 223, Rarity.UNCOMMON, mage.cards.c.CollisionColossus.class));