From 63acb8de0cd86b40aee3f18c8d8c216c17a90271 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Thu, 8 Jan 2026 14:34:55 -0500 Subject: [PATCH] [ECL] Implement Thoughtweft Imbuer --- .../src/mage/cards/t/ThoughtweftImbuer.java | 50 +++++++++++++++++++ Mage.Sets/src/mage/sets/LorwynEclipsed.java | 1 + 2 files changed, 51 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/ThoughtweftImbuer.java diff --git a/Mage.Sets/src/mage/cards/t/ThoughtweftImbuer.java b/Mage.Sets/src/mage/cards/t/ThoughtweftImbuer.java new file mode 100644 index 00000000000..d6187039576 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThoughtweftImbuer.java @@ -0,0 +1,50 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.common.AttacksAloneControlledTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.common.FilterControlledPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ThoughtweftImbuer extends CardImpl { + + private static final DynamicValue xValue = new PermanentsOnBattlefieldCount( + new FilterControlledPermanent(SubType.KITHKIN), null + ); + private static final Hint hint = new ValueHint("Kithkin you control", xValue); + + public ThoughtweftImbuer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); + + this.subtype.add(SubType.KITHKIN); + this.subtype.add(SubType.ADVISOR); + this.power = new MageInt(0); + this.toughness = new MageInt(5); + + // Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of Kithkin you control. + this.addAbility(new AttacksAloneControlledTriggeredAbility( + new BoostTargetEffect(xValue, xValue), true, false + ).addHint(hint)); + } + + private ThoughtweftImbuer(final ThoughtweftImbuer card) { + super(card); + } + + @Override + public ThoughtweftImbuer copy() { + return new ThoughtweftImbuer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/LorwynEclipsed.java b/Mage.Sets/src/mage/sets/LorwynEclipsed.java index 2c00d0c3e01..e8cd5ecf21d 100644 --- a/Mage.Sets/src/mage/sets/LorwynEclipsed.java +++ b/Mage.Sets/src/mage/sets/LorwynEclipsed.java @@ -224,6 +224,7 @@ public final class LorwynEclipsed extends ExpansionSet { cards.add(new SetCardInfo("Temporal Cleansing", 78, Rarity.COMMON, mage.cards.t.TemporalCleansing.class)); cards.add(new SetCardInfo("Tend the Sprigs", 197, Rarity.COMMON, mage.cards.t.TendTheSprigs.class)); cards.add(new SetCardInfo("Thoughtweft Charge", 198, Rarity.UNCOMMON, mage.cards.t.ThoughtweftCharge.class)); + cards.add(new SetCardInfo("Thoughtweft Imbuer", 38, Rarity.UNCOMMON, mage.cards.t.ThoughtweftImbuer.class)); cards.add(new SetCardInfo("Thoughtweft Lieutenant", 246, Rarity.UNCOMMON, mage.cards.t.ThoughtweftLieutenant.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Thoughtweft Lieutenant", 343, Rarity.UNCOMMON, mage.cards.t.ThoughtweftLieutenant.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Tributary Vaulter", 40, Rarity.COMMON, mage.cards.t.TributaryVaulter.class));