diff --git a/Mage.Sets/src/mage/cards/j/JollyGerbils.java b/Mage.Sets/src/mage/cards/j/JollyGerbils.java new file mode 100644 index 00000000000..a9327cc3010 --- /dev/null +++ b/Mage.Sets/src/mage/cards/j/JollyGerbils.java @@ -0,0 +1,68 @@ +package mage.cards.j; + +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class JollyGerbils extends CardImpl { + + public JollyGerbils(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add(SubType.HAMSTER); + this.subtype.add(SubType.CITIZEN); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Whenever you give a gift, draw a card. + this.addAbility(new JollyGerbilsTriggeredAbility()); + } + + private JollyGerbils(final JollyGerbils card) { + super(card); + } + + @Override + public JollyGerbils copy() { + return new JollyGerbils(this); + } +} + +class JollyGerbilsTriggeredAbility extends TriggeredAbilityImpl { + + JollyGerbilsTriggeredAbility() { + super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1)); + setTriggerPhrase("Whenever you give a gift, "); + } + + private JollyGerbilsTriggeredAbility(final JollyGerbilsTriggeredAbility ability) { + super(ability); + } + + @Override + public JollyGerbilsTriggeredAbility copy() { + return new JollyGerbilsTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.GAVE_GIFT; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return isControlledBy(event.getPlayerId()); + } +} diff --git a/Mage.Sets/src/mage/sets/Bloomburrow.java b/Mage.Sets/src/mage/sets/Bloomburrow.java index 6688d0e75ed..41b96dfd89b 100644 --- a/Mage.Sets/src/mage/sets/Bloomburrow.java +++ b/Mage.Sets/src/mage/sets/Bloomburrow.java @@ -102,6 +102,7 @@ public final class Bloomburrow extends ExpansionSet { cards.add(new SetCardInfo("Into the Flood Maw", 52, Rarity.UNCOMMON, mage.cards.i.IntoTheFloodMaw.class)); cards.add(new SetCardInfo("Iridescent Vinelasher", 99, Rarity.RARE, mage.cards.i.IridescentVinelasher.class)); cards.add(new SetCardInfo("Island", 266, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS)); + cards.add(new SetCardInfo("Jolly Gerbils", 19, Rarity.UNCOMMON, mage.cards.j.JollyGerbils.class)); cards.add(new SetCardInfo("Junkblade Bruiser", 220, Rarity.COMMON, mage.cards.j.JunkbladeBruiser.class)); cards.add(new SetCardInfo("Kindlespark Duo", 142, Rarity.COMMON, mage.cards.k.KindlesparkDuo.class)); cards.add(new SetCardInfo("Kitnap", 53, Rarity.RARE, mage.cards.k.Kitnap.class)); diff --git a/Mage/src/main/java/mage/abilities/keyword/GiftAbility.java b/Mage/src/main/java/mage/abilities/keyword/GiftAbility.java index 8bc17af7677..821c9d593e4 100644 --- a/Mage/src/main/java/mage/abilities/keyword/GiftAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/GiftAbility.java @@ -13,6 +13,7 @@ import mage.constants.GiftType; import mage.constants.Outcome; import mage.constants.Zone; import mage.game.Game; +import mage.game.events.GameEvent; import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetOpponent; @@ -170,6 +171,13 @@ class PromiseGiftEffect extends OneShotEffect { Player player = game.getPlayer(CardUtil.getSourceCostsTag( game, source, GiftAbility.GIFT_ACTIVATION_VALUE_KEY, (UUID) null )); - return player != null && giftType.applyGift(player, game, source); + if (player != null && giftType.applyGift(player, game, source)) { + game.fireEvent(GameEvent.getEvent( + GameEvent.EventType.GAVE_GIFT, player.getId(), + source, source.getControllerId() + )); + return true; + } + return false; } } diff --git a/Mage/src/main/java/mage/game/events/GameEvent.java b/Mage/src/main/java/mage/game/events/GameEvent.java index a02af598411..96029159101 100644 --- a/Mage/src/main/java/mage/game/events/GameEvent.java +++ b/Mage/src/main/java/mage/game/events/GameEvent.java @@ -668,6 +668,12 @@ public class GameEvent implements Serializable { playerId player who foraged */ FORAGED, + /* gave a gift + targetId the player who received the gift + sourceId of the ability + playerId player who gave the gift + */ + GAVE_GIFT, //custom events CUSTOM_EVENT }