From 409ec4b3b231f766918d4373419f6d4b4d2d7485 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sat, 24 Feb 2024 16:24:00 -0500 Subject: [PATCH] [BLB] Implement Mabel, Heir to Cragflame --- .../mage/cards/m/MabelHeirToCragflame.java | 51 +++++++++++++++++++ Mage.Sets/src/mage/sets/Bloomburrow.java | 1 + .../game/permanent/token/CragflameToken.java | 43 ++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/m/MabelHeirToCragflame.java create mode 100644 Mage/src/main/java/mage/game/permanent/token/CragflameToken.java diff --git a/Mage.Sets/src/mage/cards/m/MabelHeirToCragflame.java b/Mage.Sets/src/mage/cards/m/MabelHeirToCragflame.java new file mode 100644 index 00000000000..0bb3feabec5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MabelHeirToCragflame.java @@ -0,0 +1,51 @@ +package mage.cards.m; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.permanent.token.CragflameToken; + +/** + * + * @author TheElk801 + */ +public final class MabelHeirToCragflame extends CardImpl { + + private static final FilterCreaturePermanent filter=new FilterCreaturePermanent(SubType.MOUSE,"Mice"); + public MabelHeirToCragflame(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{W}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.MOUSE); + this.subtype.add(SubType.SOLDIER); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Other Mice you control get +1/+1. + this.addAbility(new SimpleStaticAbility(new BoostControlledEffect( + 1,1, Duration.WhileOnBattlefield,filter,true + ))); + + // When Mabel, Heir to Cragflame enters, create Cragflame, a legendary colorless Equipment artifact token with "Equipped creature gets +1/+1 and has vigilance, trample, and haste" and equip {2}. + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new CragflameToken()))); + } + + private MabelHeirToCragflame(final MabelHeirToCragflame card) { + super(card); + } + + @Override + public MabelHeirToCragflame copy() { + return new MabelHeirToCragflame(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Bloomburrow.java b/Mage.Sets/src/mage/sets/Bloomburrow.java index 387ede0d70d..79b5ef67806 100644 --- a/Mage.Sets/src/mage/sets/Bloomburrow.java +++ b/Mage.Sets/src/mage/sets/Bloomburrow.java @@ -21,6 +21,7 @@ public final class Bloomburrow extends ExpansionSet { this.hasBasicLands = true; this.hasBoosters = false; // temporary + cards.add(new SetCardInfo("Mabel, Heir to Cragflame", 224, Rarity.RARE, mage.cards.m.MabelHeirToCragflame.class)); cards.add(new SetCardInfo("Mountain", 274, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/CragflameToken.java b/Mage/src/main/java/mage/game/permanent/token/CragflameToken.java new file mode 100644 index 00000000000..999a21b0109 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CragflameToken.java @@ -0,0 +1,43 @@ +package mage.game.permanent.token; + +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.constants.*; + +public final class CragflameToken extends TokenImpl { + + public CragflameToken() { + super("Cragflame", "Cragflame, a legendary colorless Equipment artifact token with \"Equipped creature gets +1/+1 and has vigilance, trample, and haste\" and equip {2}"); + supertype.add(SuperType.LEGENDARY); + cardType.add(CardType.ARTIFACT); + subtype.add(SubType.EQUIPMENT); + + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1)); + ability.addEffect(new GainAbilityAttachedEffect( + VigilanceAbility.getInstance(), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield + ).setText("and has vigilance")); + ability.addEffect(new GainAbilityAttachedEffect( + TrampleAbility.getInstance(), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield + ).setText(", trample")); + ability.addEffect(new GainAbilityAttachedEffect( + HasteAbility.getInstance(), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield + ).setText(", and haste")); + this.addAbility(ability); + + this.addAbility(new EquipAbility(2)); + } + + private CragflameToken(final CragflameToken token) { + super(token); + } + + public CragflameToken copy() { + return new CragflameToken(this); + } +}