From 44a9c2722b1c7eb916d05e71766237ec20b0f660 Mon Sep 17 00:00:00 2001 From: Muz Date: Sat, 10 Jan 2026 16:12:22 -0600 Subject: [PATCH] [ECL] Implement Soulbright Seeker (#14226) --- .../src/mage/cards/s/SoulbrightSeeker.java | 70 +++++++++++++++++++ Mage.Sets/src/mage/sets/LorwynEclipsed.java | 1 + 2 files changed, 71 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SoulbrightSeeker.java diff --git a/Mage.Sets/src/mage/cards/s/SoulbrightSeeker.java b/Mage.Sets/src/mage/cards/s/SoulbrightSeeker.java new file mode 100644 index 00000000000..beb0962f081 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SoulbrightSeeker.java @@ -0,0 +1,70 @@ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.OrCost; +import mage.abilities.costs.common.BeholdCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.IfAbilityHasResolvedXTimesEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.mana.BasicManaEffect; +import mage.abilities.hint.common.AbilityResolutionCountHint; +import mage.abilities.keyword.TrampleAbility; +import mage.constants.SubType; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; +import mage.watchers.common.AbilityResolvedWatcher; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.BeholdType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; + +/** + * + * @author muz + */ +public final class SoulbrightSeeker extends CardImpl { + + public SoulbrightSeeker(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); + + this.subtype.add(SubType.ELEMENTAL); + this.subtype.add(SubType.SORCERER); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // As an additional cost to cast this spell, behold an Elemental or pay {2}. + this.getSpellAbility().addCost(new OrCost("behold an Elemental or pay {2}", + new BeholdCost(BeholdType.ELEMENTAL), + new GenericManaCost(2) + )); + + // {R}: Target creature you control gains trample until end of turn. If this is the third time this ability has resolved this turn, add {R}{R}{R}{R}. + Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect( + TrampleAbility.getInstance(), Duration.EndOfTurn + ), new ManaCostsImpl<>("{R}")); + ability.addEffect( + new IfAbilityHasResolvedXTimesEffect( + Outcome.PutManaInPool, 3, new BasicManaEffect(Mana.RedMana(4)) + ).setText("If this is the third time this ability has resolved this turn, add {R}{R}{R}{R}") + ); + ability.addTarget(new TargetControlledCreaturePermanent()); + ability.addHint(AbilityResolutionCountHint.instance); + this.addAbility(ability, new AbilityResolvedWatcher()); + } + + private SoulbrightSeeker(final SoulbrightSeeker card) { + super(card); + } + + @Override + public SoulbrightSeeker copy() { + return new SoulbrightSeeker(this); + } +} diff --git a/Mage.Sets/src/mage/sets/LorwynEclipsed.java b/Mage.Sets/src/mage/sets/LorwynEclipsed.java index 938a753e8f6..385a00b2dd6 100644 --- a/Mage.Sets/src/mage/sets/LorwynEclipsed.java +++ b/Mage.Sets/src/mage/sets/LorwynEclipsed.java @@ -279,6 +279,7 @@ public final class LorwynEclipsed extends ExpansionSet { cards.add(new SetCardInfo("Sizzling Changeling", 155, Rarity.UNCOMMON, mage.cards.s.SizzlingChangeling.class)); cards.add(new SetCardInfo("Slumbering Walker", 302, Rarity.RARE, mage.cards.s.SlumberingWalker.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Slumbering Walker", 35, Rarity.RARE, mage.cards.s.SlumberingWalker.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Soulbright Seeker", 157, Rarity.UNCOMMON, mage.cards.s.SoulbrightSeeker.class)); cards.add(new SetCardInfo("Sourbread Auntie", 158, Rarity.UNCOMMON, mage.cards.s.SourbreadAuntie.class)); cards.add(new SetCardInfo("Spell Snare", 71, Rarity.UNCOMMON, mage.cards.s.SpellSnare.class)); cards.add(new SetCardInfo("Spiral into Solitude", 36, Rarity.COMMON, mage.cards.s.SpiralIntoSolitude.class));