From 3835e28a1819867834e73c63076fc9b063f2fe89 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 19 Jun 2019 20:46:30 -0400 Subject: [PATCH] Implemented Goblin Bird-Grabber --- .../src/mage/cards/g/GoblinBirdGrabber.java | 57 +++++++++++++++++++ Mage.Sets/src/mage/sets/CoreSet2020.java | 1 + 2 files changed, 58 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java diff --git a/Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java b/Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java new file mode 100644 index 00000000000..44362b97eab --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java @@ -0,0 +1,57 @@ +package mage.cards.g; + +import mage.MageInt; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +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.constants.Zone; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.mageobject.AbilityPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class GoblinBirdGrabber extends CardImpl { + + private static final FilterPermanent filter + = new FilterControlledCreaturePermanent("if you control a creature with flying"); + + static { + filter.add(new AbilityPredicate(FlyingAbility.class)); + } + + private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter); + + public GoblinBirdGrabber(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add(SubType.GOBLIN); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // {R}: Goblin Bird-Grabber gains flying until end of turn. Activate this ability only if you control a creature with flying. + this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect( + FlyingAbility.getInstance(), Duration.EndOfTurn + ), new ManaCostsImpl("{R}"), condition)); + } + + private GoblinBirdGrabber(final GoblinBirdGrabber card) { + super(card); + } + + @Override + public GoblinBirdGrabber copy() { + return new GoblinBirdGrabber(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CoreSet2020.java b/Mage.Sets/src/mage/sets/CoreSet2020.java index a92145ccf74..72dc4734ad9 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2020.java +++ b/Mage.Sets/src/mage/sets/CoreSet2020.java @@ -55,6 +55,7 @@ public final class CoreSet2020 extends ExpansionSet { cards.add(new SetCardInfo("Flame Sweep", 139, Rarity.UNCOMMON, mage.cards.f.FlameSweep.class)); cards.add(new SetCardInfo("Flood of Tears", 59, Rarity.RARE, mage.cards.f.FloodOfTears.class)); cards.add(new SetCardInfo("Fry", 140, Rarity.UNCOMMON, mage.cards.f.Fry.class)); + cards.add(new SetCardInfo("Goblin Bird-Grabber", 142, Rarity.COMMON, mage.cards.g.GoblinBirdGrabber.class)); cards.add(new SetCardInfo("Goblin Ringleader", 141, Rarity.UNCOMMON, mage.cards.g.GoblinRingleader.class)); cards.add(new SetCardInfo("Growth Cycle", 175, Rarity.COMMON, mage.cards.g.GrowthCycle.class)); cards.add(new SetCardInfo("Hanged Executioner", 22, Rarity.RARE, mage.cards.h.HangedExecutioner.class));