From cdf42487a2e6337dc7432ec98586c2ccf6fed52e Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Wed, 23 Aug 2023 01:44:23 +0200 Subject: [PATCH] [WHO] Implement Candy Grapple (#10958) Co-authored-by: Evan Kranzler --- Mage.Sets/src/mage/cards/c/CandyGrapple.java | 47 ++++++++++++++++++++ Mage.Sets/src/mage/sets/WildsOfEldraine.java | 1 + 2 files changed, 48 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CandyGrapple.java diff --git a/Mage.Sets/src/mage/cards/c/CandyGrapple.java b/Mage.Sets/src/mage/cards/c/CandyGrapple.java new file mode 100644 index 00000000000..2697f0cacc9 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CandyGrapple.java @@ -0,0 +1,47 @@ +package mage.cards.c; + +import mage.abilities.condition.common.BargainedCondition; +import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.effects.common.AddContinuousEffectToGame; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.hint.common.BargainCostWasPaidHint; +import mage.abilities.keyword.BargainAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author Susucr + */ +public final class CandyGrapple extends CardImpl { + + public CandyGrapple(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}"); + + // Bargain + this.addAbility(new BargainAbility()); + + // Target creature gets -3/-3 until end of turn. If this spell was bargained, that creature gets -5/-5 until end of turn instead. + this.getSpellAbility().addEffect(new ConditionalOneShotEffect( + new AddContinuousEffectToGame(new BoostTargetEffect(-5, -5)), + new AddContinuousEffectToGame(new BoostTargetEffect(-3, -3)), + BargainedCondition.instance, + "Target creature gets -3/-3 until end of turn. If this spell was bargained, " + + "that creature gets -5/-5 until end of turn instead." + )); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addHint(BargainCostWasPaidHint.instance); + } + + private CandyGrapple(final CandyGrapple card) { + super(card); + } + + @Override + public CandyGrapple copy() { + return new CandyGrapple(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/WildsOfEldraine.java b/Mage.Sets/src/mage/sets/WildsOfEldraine.java index edd8828bbe9..abe1a50c337 100644 --- a/Mage.Sets/src/mage/sets/WildsOfEldraine.java +++ b/Mage.Sets/src/mage/sets/WildsOfEldraine.java @@ -40,6 +40,7 @@ public final class WildsOfEldraine extends ExpansionSet { cards.add(new SetCardInfo("Brave the Wilds", 165, Rarity.COMMON, mage.cards.b.BraveTheWilds.class)); cards.add(new SetCardInfo("Break the Spell", 5, Rarity.COMMON, mage.cards.b.BreakTheSpell.class)); cards.add(new SetCardInfo("Callous Sell-Sword", 221, Rarity.UNCOMMON, mage.cards.c.CallousSellSword.class)); + cards.add(new SetCardInfo("Candy Grapple", 83, Rarity.COMMON, mage.cards.c.CandyGrapple.class)); cards.add(new SetCardInfo("Candy Trail", 105, Rarity.COMMON, mage.cards.c.CandyTrail.class)); cards.add(new SetCardInfo("Chancellor of Tales", 45, Rarity.UNCOMMON, mage.cards.c.ChancellorOfTales.class)); cards.add(new SetCardInfo("Charmed Clothier", 6, Rarity.COMMON, mage.cards.c.CharmedClothier.class));