From f0f9c4b752d301a26bbce07eb0c585bfafbf1670 Mon Sep 17 00:00:00 2001 From: Jeff Wadsworth Date: Tue, 2 Jan 2024 17:32:39 -0600 Subject: [PATCH] Added Admiral Brass, Unsinkable --- .../mage/cards/a/AdmiralBrassUnsinkable.java | 74 +++++++++++++++++++ .../sets/LostCavernsOfIxalanCommander.java | 1 + 2 files changed, 75 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/AdmiralBrassUnsinkable.java diff --git a/Mage.Sets/src/mage/cards/a/AdmiralBrassUnsinkable.java b/Mage.Sets/src/mage/cards/a/AdmiralBrassUnsinkable.java new file mode 100644 index 00000000000..e844273ba25 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AdmiralBrassUnsinkable.java @@ -0,0 +1,74 @@ +package mage.cards.a; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BeginningOfCombatTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.MillCardsControllerEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldWithCounterTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.continuous.SetBasePowerToughnessTargetEffect; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.counters.CounterType; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author jeffwadsworth + */ +public final class AdmiralBrassUnsinkable extends CardImpl { + + private static final FilterCreatureCard filter = new FilterCreatureCard("pirate creature card from your graveyard"); + + static { + filter.add(SubType.PIRATE.getPredicate()); + } + + public AdmiralBrassUnsinkable(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{B}{R}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.PIRATE); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Admiral Brass, Unsinkable enters the battlefield, mill four cards. + this.addAbility(new EntersBattlefieldTriggeredAbility( + new MillCardsControllerEffect(4), false) + ); + + // At the beginning of combat on your turn, you may return target Pirate creature card from your graveyard + // to the battlefield with a finality counter on it. It has base power and toughness 4/4. + // It gains haste until end of turn. (If a creature with a finality counter on it would die, exile it instead.) + Effect returnFromGraveyardEffect = new ReturnFromGraveyardToBattlefieldWithCounterTargetEffect(CounterType.FINALITY.createInstance()); + BeginningOfCombatTriggeredAbility ability = new BeginningOfCombatTriggeredAbility( + returnFromGraveyardEffect, + TargetController.YOU, + true + ); + ability.addEffect(new SetBasePowerToughnessTargetEffect(4, 4, Duration.WhileOnBattlefield).setText("It has base power and toughness 4/4.")); + ability.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn).setText("It gains haste until end of turn. (If a creature with a finality counter on it would die, exile it instead.)")); + ability.addTarget(new TargetCardInYourGraveyard(filter)); + this.addAbility(ability); + + } + + private AdmiralBrassUnsinkable(final AdmiralBrassUnsinkable card) { + super(card); + } + + @Override + public AdmiralBrassUnsinkable copy() { + return new AdmiralBrassUnsinkable(this); + } +} diff --git a/Mage.Sets/src/mage/sets/LostCavernsOfIxalanCommander.java b/Mage.Sets/src/mage/sets/LostCavernsOfIxalanCommander.java index 37e4599409b..98220286444 100644 --- a/Mage.Sets/src/mage/sets/LostCavernsOfIxalanCommander.java +++ b/Mage.Sets/src/mage/sets/LostCavernsOfIxalanCommander.java @@ -22,6 +22,7 @@ public final class LostCavernsOfIxalanCommander extends ExpansionSet { this.hasBasicLands = false; cards.add(new SetCardInfo("Admiral Beckett Brass", 264, Rarity.MYTHIC, mage.cards.a.AdmiralBeckettBrass.class)); + cards.add(new SetCardInfo("Admiral Brass, Unsinkable", 1, Rarity.MYTHIC, mage.cards.a.AdmiralBrassUnsinkable.class)); cards.add(new SetCardInfo("Aetherize", 142, Rarity.UNCOMMON, mage.cards.a.Aetherize.class)); cards.add(new SetCardInfo("Akroma's Will", 125, Rarity.RARE, mage.cards.a.AkromasWill.class)); cards.add(new SetCardInfo("Alchemist's Refuge", 318, Rarity.RARE, mage.cards.a.AlchemistsRefuge.class));