From 9237b26b743e24aaf6d6759ae6886284f1b08907 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sun, 9 Apr 2023 09:10:32 -0400 Subject: [PATCH] [MOC] Implement Chivalric Alliance --- .../src/mage/cards/c/ChivalricAlliance.java | 46 +++++++++++++++++++ .../mage/sets/MarchOfTheMachineCommander.java | 1 + .../mage/abilities/keyword/DauntAbility.java | 4 ++ 3 files changed, 51 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/ChivalricAlliance.java diff --git a/Mage.Sets/src/mage/cards/c/ChivalricAlliance.java b/Mage.Sets/src/mage/cards/c/ChivalricAlliance.java new file mode 100644 index 00000000000..115f4305f39 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/ChivalricAlliance.java @@ -0,0 +1,46 @@ +package mage.cards.c; + +import mage.abilities.Ability; +import mage.abilities.common.AttacksWithCreaturesTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.permanent.token.KnightWhiteBlueToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ChivalricAlliance extends CardImpl { + + public ChivalricAlliance(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}"); + + // Whenever you attack with two or more creatures, draw a card. + this.addAbility(new AttacksWithCreaturesTriggeredAbility( + new DrawCardSourceControllerEffect(1), 2 + )); + + // {2}, Discard a card: Create a 2/2 white and blue Knight creature token with vigilance. + Ability ability = new SimpleActivatedAbility( + new CreateTokenEffect(new KnightWhiteBlueToken()), new GenericManaCost(2) + ); + ability.addCost(new DiscardCardCost()); + this.addAbility(ability); + } + + private ChivalricAlliance(final ChivalricAlliance card) { + super(card); + } + + @Override + public ChivalricAlliance copy() { + return new ChivalricAlliance(this); + } +} diff --git a/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java b/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java index a4e45753437..315d2912653 100644 --- a/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java +++ b/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java @@ -63,6 +63,7 @@ public final class MarchOfTheMachineCommander extends ExpansionSet { cards.add(new SetCardInfo("Chant of Vitu-Ghazi", 177, Rarity.UNCOMMON, mage.cards.c.ChantOfVituGhazi.class)); cards.add(new SetCardInfo("Chaos Warp", 273, Rarity.RARE, mage.cards.c.ChaosWarp.class)); cards.add(new SetCardInfo("Chasm Skulker", 218, Rarity.RARE, mage.cards.c.ChasmSkulker.class)); + cards.add(new SetCardInfo("Chivalric Alliance", 11, Rarity.RARE, mage.cards.c.ChivalricAlliance.class)); cards.add(new SetCardInfo("Choked Estuary", 394, Rarity.RARE, mage.cards.c.ChokedEstuary.class)); cards.add(new SetCardInfo("Cinder Glade", 395, Rarity.RARE, mage.cards.c.CinderGlade.class)); cards.add(new SetCardInfo("Cloud of Faeries", 219, Rarity.COMMON, mage.cards.c.CloudOfFaeries.class)); diff --git a/Mage/src/main/java/mage/abilities/keyword/DauntAbility.java b/Mage/src/main/java/mage/abilities/keyword/DauntAbility.java index 71ea5cc3104..ecdc8038a7a 100644 --- a/Mage/src/main/java/mage/abilities/keyword/DauntAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/DauntAbility.java @@ -18,6 +18,10 @@ public class DauntAbility extends SimpleEvasionAbility { filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3)); } + public static FilterCreaturePermanent getFilter() { + return filter; + } + public DauntAbility() { super(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)); }