From 6ee766fdd7a00fd29c74d919e5b85c74b40b0a74 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 11 Jan 2020 00:07:14 -0500 Subject: [PATCH] Implemented Threnody Singer --- .../src/mage/cards/t/ThrenodySinger.java | 59 +++++++++++++++++++ .../src/mage/sets/TherosBeyondDeath.java | 1 + 2 files changed, 60 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/ThrenodySinger.java diff --git a/Mage.Sets/src/mage/cards/t/ThrenodySinger.java b/Mage.Sets/src/mage/cards/t/ThrenodySinger.java new file mode 100644 index 0000000000..e84813091e --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThrenodySinger.java @@ -0,0 +1,59 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.DevotionCount; +import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.target.common.TargetOpponentsCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ThrenodySinger extends CardImpl { + + private static final DynamicValue xValue = new SignInversionDynamicValue(DevotionCount.U); + + public ThrenodySinger(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); + + this.subtype.add(SubType.SIREN); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // Flash + this.addAbility(FlashAbility.getInstance()); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // When Threnody Singer enters the battlefield, target creature an opponent controls gets -X/-0 until end of turn, where X is your devotion to blue. + Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect( + xValue, StaticValue.get(0), Duration.EndOfTurn + ).setText("target creature an opponent controls gets -X/-0 until end of turn, where X is your devotion to blue")); + ability.addTarget(new TargetOpponentsCreaturePermanent()); + ability.addHint(DevotionCount.U.getHint()); + this.addAbility(ability); + } + + private ThrenodySinger(final ThrenodySinger card) { + super(card); + } + + @Override + public ThrenodySinger copy() { + return new ThrenodySinger(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java index af038011b6..fff056e684 100644 --- a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java +++ b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java @@ -239,6 +239,7 @@ public final class TherosBeyondDeath extends ExpansionSet { cards.add(new SetCardInfo("The First Iroan Games", 170, Rarity.RARE, mage.cards.t.TheFirstIroanGames.class)); cards.add(new SetCardInfo("The Triumph of Anax", 160, Rarity.UNCOMMON, mage.cards.t.TheTriumphOfAnax.class)); cards.add(new SetCardInfo("Thirst for Meaning", 74, Rarity.COMMON, mage.cards.t.ThirstForMeaning.class)); + cards.add(new SetCardInfo("Threnody Singer", 75, Rarity.UNCOMMON, mage.cards.t.ThrenodySinger.class)); cards.add(new SetCardInfo("Thrill of Possibility", 159, Rarity.COMMON, mage.cards.t.ThrillOfPossibility.class)); cards.add(new SetCardInfo("Thryx, the Sudden Storm", 76, Rarity.RARE, mage.cards.t.ThryxTheSuddenStorm.class)); cards.add(new SetCardInfo("Thundering Chariot", 239, Rarity.UNCOMMON, mage.cards.t.ThunderingChariot.class));