From b1e055df750b911a20cad498a2a35fcbd5e13a2a Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 21 Jul 2023 20:30:57 -0400 Subject: [PATCH] [CMM] Implement Boon of the Spirit Realm --- .../mage/cards/b/BoonOfTheSpiritRealm.java | 42 +++++++++++++++++++ Mage.Sets/src/mage/sets/CommanderMasters.java | 1 + .../main/java/mage/counters/CounterType.java | 1 + 3 files changed, 44 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/b/BoonOfTheSpiritRealm.java diff --git a/Mage.Sets/src/mage/cards/b/BoonOfTheSpiritRealm.java b/Mage.Sets/src/mage/cards/b/BoonOfTheSpiritRealm.java new file mode 100644 index 00000000000..557e4af87d1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BoonOfTheSpiritRealm.java @@ -0,0 +1,42 @@ +package mage.cards.b; + +import mage.abilities.abilityword.ConstellationAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.CountersSourceCount; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.counters.CounterType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class BoonOfTheSpiritRealm extends CardImpl { + + private static final DynamicValue xValue = new CountersSourceCount(CounterType.BLESSING); + + public BoonOfTheSpiritRealm(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}{W}"); + + // Constellation -- Whenever Boon of the Spirit Realm or another enchantment enters the battlefield under your control, put a blessing counter on Boon of the Spirit Realm. + this.addAbility(new ConstellationAbility(new AddCountersSourceEffect(CounterType.BLESSING.createInstance()))); + + // Creatures you control get +1/+1 for each blessing counter on Boon of the Spirit Realm. + this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(xValue, xValue, Duration.WhileOnBattlefield))); + } + + private BoonOfTheSpiritRealm(final BoonOfTheSpiritRealm card) { + super(card); + } + + @Override + public BoonOfTheSpiritRealm copy() { + return new BoonOfTheSpiritRealm(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderMasters.java b/Mage.Sets/src/mage/sets/CommanderMasters.java index a36ece4b8f7..12077b5b95c 100644 --- a/Mage.Sets/src/mage/sets/CommanderMasters.java +++ b/Mage.Sets/src/mage/sets/CommanderMasters.java @@ -62,6 +62,7 @@ public final class CommanderMasters extends ExpansionSet { cards.add(new SetCardInfo("Bonescythe Sliver", 815, Rarity.RARE, mage.cards.b.BonescytheSliver.class)); cards.add(new SetCardInfo("Bonesplitter Sliver", 874, Rarity.COMMON, mage.cards.b.BonesplitterSliver.class)); cards.add(new SetCardInfo("Boompile", 371, Rarity.RARE, mage.cards.b.Boompile.class)); + cards.add(new SetCardInfo("Boon of the Spirit Realm", 720, Rarity.RARE, mage.cards.b.BoonOfTheSpiritRealm.class)); cards.add(new SetCardInfo("Boros Signet", 942, Rarity.COMMON, mage.cards.b.BorosSignet.class)); cards.add(new SetCardInfo("Braids, Conjurer Adept", 76, Rarity.RARE, mage.cards.b.BraidsConjurerAdept.class)); cards.add(new SetCardInfo("Brass Knuckles", 372, Rarity.COMMON, mage.cards.b.BrassKnuckles.class)); diff --git a/Mage/src/main/java/mage/counters/CounterType.java b/Mage/src/main/java/mage/counters/CounterType.java index 0a69819ff47..37b51812130 100644 --- a/Mage/src/main/java/mage/counters/CounterType.java +++ b/Mage/src/main/java/mage/counters/CounterType.java @@ -23,6 +23,7 @@ public enum CounterType { ARROWHEAD("arrowhead"), AWAKENING("awakening"), BLAZE("blaze"), + BLESSING("blessing"), BLOOD("blood"), BLOODLINE("bloodline"), BOOK("book"),