From a38a09fcde9df86d1c23ab282499e795129727de Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Mon, 6 Sep 2021 18:55:05 -0400 Subject: [PATCH] [MID] Implemented Ritual Guardian --- .../src/mage/cards/c/CandlelitCavalry.java | 7 ++- .../src/mage/cards/r/RitualGuardian.java | 48 +++++++++++++++++++ .../mage/cards/s/SigardaChampionOfLight.java | 10 ++-- .../src/mage/sets/InnistradMidnightHunt.java | 1 + ...ditionalInterveningIfTriggeredAbility.java | 2 +- 5 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/r/RitualGuardian.java diff --git a/Mage.Sets/src/mage/cards/c/CandlelitCavalry.java b/Mage.Sets/src/mage/cards/c/CandlelitCavalry.java index e9f8733d9a6..4ac67894243 100644 --- a/Mage.Sets/src/mage/cards/c/CandlelitCavalry.java +++ b/Mage.Sets/src/mage/cards/c/CandlelitCavalry.java @@ -32,10 +32,9 @@ public final class CandlelitCavalry extends CardImpl { new GainAbilitySourceEffect( TrampleAbility.getInstance(), Duration.EndOfTurn ), TargetController.YOU, false - ), CovenCondition.instance, AbilityWord.COVEN.formatWord() + - "At the beginning of combat on your turn, if you control three or more creatures " + - "with different powers, {this} gains trample until end of turn." - ).addHint(CovenHint.instance)); + ), CovenCondition.instance, "At the beginning of combat on your turn, if you control " + + "three or more creatures with different powers, {this} gains trample until end of turn." + ).addHint(CovenHint.instance).setAbilityWord(AbilityWord.COVEN)); } private CandlelitCavalry(final CandlelitCavalry card) { diff --git a/Mage.Sets/src/mage/cards/r/RitualGuardian.java b/Mage.Sets/src/mage/cards/r/RitualGuardian.java new file mode 100644 index 00000000000..5bb079e24ba --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RitualGuardian.java @@ -0,0 +1,48 @@ +package mage.cards.r; + +import mage.MageInt; +import mage.abilities.common.BeginningOfCombatTriggeredAbility; +import mage.abilities.condition.common.CovenCondition; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.hint.common.CovenHint; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class RitualGuardian extends CardImpl { + + public RitualGuardian(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.SOLDIER); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Coven — At the beginning of combat on your turn, if you control three or more creatures with different powers, Ritual Guardian gains lifelink until end of turn. + this.addAbility(new ConditionalInterveningIfTriggeredAbility( + new BeginningOfCombatTriggeredAbility( + new GainAbilitySourceEffect( + LifelinkAbility.getInstance(), Duration.EndOfTurn + ), TargetController.YOU, false + ), CovenCondition.instance, "At the beginning of combat on your turn, if you control three " + + "or more creatures with different powers, {this} gains lifelink until end of turn." + ).addHint(CovenHint.instance).setAbilityWord(AbilityWord.COVEN)); + } + + private RitualGuardian(final RitualGuardian card) { + super(card); + } + + @Override + public RitualGuardian copy() { + return new RitualGuardian(this); + } +} diff --git a/Mage.Sets/src/mage/cards/s/SigardaChampionOfLight.java b/Mage.Sets/src/mage/cards/s/SigardaChampionOfLight.java index d793c80da57..51b3ab9f0cd 100644 --- a/Mage.Sets/src/mage/cards/s/SigardaChampionOfLight.java +++ b/Mage.Sets/src/mage/cards/s/SigardaChampionOfLight.java @@ -56,11 +56,11 @@ public final class SigardaChampionOfLight extends CardImpl { new AttacksTriggeredAbility(new LookLibraryAndPickControllerEffect( StaticValue.get(5), false, StaticValue.get(1), filter2, Zone.LIBRARY, false, true, false, Zone.HAND, true - ).setBackInRandomOrder(true)), CovenCondition.instance, AbilityWord.COVEN.formatWord() + - "Whenever {this} attacks, if you control three or more creatures with different powers, " + - "look at the top five cards of your library. You may reveal a Human creature card from among them " + - "and put it into your hand. Put the rest on the bottom of your library in a random order." - ).addHint(CovenHint.instance)); + ).setBackInRandomOrder(true)), CovenCondition.instance, "Whenever {this} attacks, " + + "if you control three or more creatures with different powers, look at the top five cards " + + "of your library. You may reveal a Human creature card from among them and put it into your hand. " + + "Put the rest on the bottom of your library in a random order." + ).addHint(CovenHint.instance).setAbilityWord(AbilityWord.COVEN)); } private SigardaChampionOfLight(final SigardaChampionOfLight card) { diff --git a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java index 1d545be4028..b18f2e6f38d 100644 --- a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java +++ b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java @@ -74,6 +74,7 @@ public final class InnistradMidnightHunt extends ExpansionSet { cards.add(new SetCardInfo("Poppet Factory", 71, Rarity.MYTHIC, mage.cards.p.PoppetFactory.class)); cards.add(new SetCardInfo("Poppet Stitcher", 71, Rarity.MYTHIC, mage.cards.p.PoppetStitcher.class)); cards.add(new SetCardInfo("Rite of Harmony", 236, Rarity.RARE, mage.cards.r.RiteOfHarmony.class)); + cards.add(new SetCardInfo("Ritual Guardian", 30, Rarity.COMMON, mage.cards.r.RitualGuardian.class)); cards.add(new SetCardInfo("Rockfall Vale", 266, Rarity.RARE, mage.cards.r.RockfallVale.class)); cards.add(new SetCardInfo("Saryth, the Viper's Fang", 197, Rarity.RARE, mage.cards.s.SarythTheVipersFang.class)); cards.add(new SetCardInfo("Secrets of the Key", 73, Rarity.COMMON, mage.cards.s.SecretsOfTheKey.class)); diff --git a/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java b/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java index 8bfcb3a40a4..1982d401044 100644 --- a/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java @@ -78,7 +78,7 @@ public class ConditionalInterveningIfTriggeredAbility extends TriggeredAbilityIm if (abilityText == null || abilityText.isEmpty()) { return ability.getRule(); } - return abilityText; + return (abilityWord != null ? abilityWord.formatWord() : "") + abilityText; } @Override