From 040d22db01b439a43c05925db7fe2a563929a823 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 11 Jul 2025 16:29:49 -0400 Subject: [PATCH] [EOE] Implement Sunstar Chaplain --- .../src/mage/cards/s/SunstarChaplain.java | 72 +++++++++++++++++++ Mage.Sets/src/mage/sets/EdgeOfEternities.java | 2 + 2 files changed, 74 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SunstarChaplain.java diff --git a/Mage.Sets/src/mage/cards/s/SunstarChaplain.java b/Mage.Sets/src/mage/cards/s/SunstarChaplain.java new file mode 100644 index 00000000000..7d7f214d031 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SunstarChaplain.java @@ -0,0 +1,72 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.RemoveCounterCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.TapTargetEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.SubType; +import mage.counters.CounterType; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.TargetPermanent; +import mage.target.common.TargetControlledCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SunstarChaplain extends CardImpl { + + private static final FilterPermanent filter + = new FilterControlledCreaturePermanent("you control two or more tapped creatures"); + + static { + filter.add(TappedPredicate.TAPPED); + } + + private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN,1); + + public SunstarChaplain(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.CLERIC); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // At the beginning of your end step, if you control two or more tapped creatures, put a +1/+1 counter on target creature you control. + Ability ability = new BeginningOfEndStepTriggeredAbility( + new AddCountersTargetEffect(CounterType.P1P1.createInstance()) + ).withInterveningIf(condition); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + // {2}, Remove a +1/+1 counter from a creature you control: Tap target artifact or creature. + ability = new SimpleActivatedAbility(new TapTargetEffect(), new GenericManaCost(2)); + ability.addCost(new RemoveCounterCost(new TargetControlledCreaturePermanent(), CounterType.P1P1)); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_CREATURE)); + this.addAbility(ability); + } + + private SunstarChaplain(final SunstarChaplain card) { + super(card); + } + + @Override + public SunstarChaplain copy() { + return new SunstarChaplain(this); + } +} diff --git a/Mage.Sets/src/mage/sets/EdgeOfEternities.java b/Mage.Sets/src/mage/sets/EdgeOfEternities.java index c99369b9c28..5a8c94cdeee 100644 --- a/Mage.Sets/src/mage/sets/EdgeOfEternities.java +++ b/Mage.Sets/src/mage/sets/EdgeOfEternities.java @@ -184,6 +184,8 @@ public final class EdgeOfEternities extends ExpansionSet { cards.add(new SetCardInfo("Stomping Ground", 378, Rarity.RARE, mage.cards.s.StompingGround.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Sunset Saboteur", 116, Rarity.RARE, mage.cards.s.SunsetSaboteur.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Sunset Saboteur", 334, Rarity.RARE, mage.cards.s.SunsetSaboteur.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Sunstar Chaplain", 324, Rarity.RARE, mage.cards.s.SunstarChaplain.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Sunstar Chaplain", 40, Rarity.RARE, mage.cards.s.SunstarChaplain.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Sunstar Expansionist", 41, Rarity.UNCOMMON, mage.cards.s.SunstarExpansionist.class)); cards.add(new SetCardInfo("Susur Secundi, Void Altar", 259, Rarity.MYTHIC, mage.cards.s.SusurSecundiVoidAltar.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Susur Secundi, Void Altar", 284, Rarity.MYTHIC, mage.cards.s.SusurSecundiVoidAltar.class, NON_FULL_USE_VARIOUS));