From fca6797c2f54eec3702e850872ff373ad1f7b625 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 11 Jan 2019 22:09:06 -0500 Subject: [PATCH] Implemented Screaming Shield --- .../src/mage/cards/s/ScreamingShield.java | 56 +++++++++++++++++++ .../src/mage/sets/RavnicaAllegiance.java | 1 + 2 files changed, 57 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/ScreamingShield.java diff --git a/Mage.Sets/src/mage/cards/s/ScreamingShield.java b/Mage.Sets/src/mage/cards/s/ScreamingShield.java new file mode 100644 index 0000000000..a31cb67e01 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/ScreamingShield.java @@ -0,0 +1,56 @@ +package mage.cards.s; + +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.target.TargetPlayer; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ScreamingShield extends CardImpl { + + public ScreamingShield(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); + + this.subtype.add(SubType.EQUIPMENT); + + // Equipped creature gets +0/+3 and has "{2}, {T}: Target player puts the top three cards of their library into their graveyard." + Ability toAdd = new SimpleActivatedAbility( + new PutLibraryIntoGraveTargetEffect(3), new GenericManaCost(2) + ); + toAdd.addCost(new TapSourceCost()); + toAdd.addTarget(new TargetPlayer()); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(0, 3)); + ability.addEffect(new GainAbilityAttachedEffect( + toAdd, AttachmentType.EQUIPMENT + ).setText("and has \"{2}, {T}: Target player puts the top three cards of their library into their graveyard.\"")); + this.addAbility(ability); + + // Equip {3} + this.addAbility(new EquipAbility(3)); + } + + private ScreamingShield(final ScreamingShield card) { + super(card); + } + + @Override + public ScreamingShield copy() { + return new ScreamingShield(this); + } +} +// AAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHH diff --git a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java index fff69d17b1..0ed6f5018d 100644 --- a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java +++ b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java @@ -225,6 +225,7 @@ public final class RavnicaAllegiance extends ExpansionSet { cards.add(new SetCardInfo("Savage Smash", 203, Rarity.COMMON, mage.cards.s.SavageSmash.class)); cards.add(new SetCardInfo("Scorchmark", 113, Rarity.COMMON, mage.cards.s.Scorchmark.class)); cards.add(new SetCardInfo("Scrabbling Claws", 238, Rarity.UNCOMMON, mage.cards.s.ScrabblingClaws.class)); + cards.add(new SetCardInfo("Screaming Shield", 239, Rarity.UNCOMMON, mage.cards.s.ScreamingShield.class)); cards.add(new SetCardInfo("Senate Courier", 50, Rarity.COMMON, mage.cards.s.SenateCourier.class)); cards.add(new SetCardInfo("Senate Griffin", 219, Rarity.COMMON, mage.cards.s.SenateGriffin.class)); cards.add(new SetCardInfo("Senate Guildmage", 204, Rarity.UNCOMMON, mage.cards.s.SenateGuildmage.class));