From dfb337671bf1c686b8fc3be4293f236f62aa064e Mon Sep 17 00:00:00 2001 From: Sean Walsh <40175938+stwalsh4118@users.noreply.github.com> Date: Sat, 12 Aug 2023 23:54:01 -0500 Subject: [PATCH] [40K] Implement Belisarius Cawl (#10064) * Implement Belisarius Cawl * minor cleanup --------- Co-authored-by: xenohedron --- .../src/mage/cards/b/BelisariusCawl.java | 63 +++++++++++++++++++ Mage.Sets/src/mage/sets/Warhammer40000.java | 4 +- 2 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/b/BelisariusCawl.java diff --git a/Mage.Sets/src/mage/cards/b/BelisariusCawl.java b/Mage.Sets/src/mage/cards/b/BelisariusCawl.java new file mode 100644 index 00000000000..bedfdea141a --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BelisariusCawl.java @@ -0,0 +1,63 @@ +package mage.cards.b; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.common.TapTargetCost; +import mage.abilities.costs.common.TapVariableTargetCost; +import mage.abilities.dynamicvalue.common.GetXValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.StaticFilters; +import mage.filter.common.FilterControlledArtifactPermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.game.permanent.token.WhiteAstartesWarriorToken; +import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; + +/** + * @author @stwalsh4118 + */ +public final class BelisariusCawl extends CardImpl { + + private static final FilterControlledArtifactPermanent filter = new FilterControlledArtifactPermanent("untapped artifacts you control"); + + static { + filter.add(TappedPredicate.UNTAPPED); + } + + public BelisariusCawl(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}{W}{U}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + + // Ultima Founding -- {T}, Tap two untapped artifacts you control: Create a 2/2 white Astartes Warrior creature token with vigilance. + Effect effect = new CreateTokenEffect(new WhiteAstartesWarriorToken()); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); + ability.addCost(new TapTargetCost(new TargetControlledPermanent(2, 2, filter, true))); + this.addAbility(ability.withFlavorWord("Ultima Founding")); + + // Master of Machines -- {T}, Tap X untapped creatures you control: Look at the top X cards of your library. You may reveal an artifact card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LookLibraryAndPickControllerEffect(GetXValue.instance, 1, StaticFilters.FILTER_CARD_ARTIFACT, PutCards.HAND, PutCards.BOTTOM_RANDOM, true), new TapSourceCost()); + ability.addCost(new TapVariableTargetCost(StaticFilters.FILTER_CONTROLLED_UNTAPPED_CREATURES)); + this.addAbility(ability.withFlavorWord("Master of Machines")); + } + + private BelisariusCawl(final BelisariusCawl card) { + super(card); + } + + @Override + public BelisariusCawl copy() { + return new BelisariusCawl(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Warhammer40000.java b/Mage.Sets/src/mage/sets/Warhammer40000.java index 34257f950a9..363243dc013 100644 --- a/Mage.Sets/src/mage/sets/Warhammer40000.java +++ b/Mage.Sets/src/mage/sets/Warhammer40000.java @@ -4,9 +4,6 @@ import mage.cards.ExpansionSet; import mage.constants.Rarity; import mage.constants.SetType; -import java.util.Arrays; -import java.util.List; - /** * @author TheElk801 */ @@ -41,6 +38,7 @@ public final class Warhammer40000 extends ExpansionSet { cards.add(new SetCardInfo("Bastion Protector", 182, Rarity.RARE, mage.cards.b.BastionProtector.class)); cards.add(new SetCardInfo("Be'lakor, the Dark Master", 6, Rarity.MYTHIC, mage.cards.b.BelakorTheDarkMaster.class)); cards.add(new SetCardInfo("Beacon of Unrest", 194, Rarity.RARE, mage.cards.b.BeaconOfUnrest.class)); + cards.add(new SetCardInfo("Belisarius Cawl", 106, Rarity.RARE, mage.cards.b.BelisariusCawl.class)); cards.add(new SetCardInfo("Bile Blight", 195, Rarity.UNCOMMON, mage.cards.b.BileBlight.class)); cards.add(new SetCardInfo("Biophagus", 87, Rarity.RARE, mage.cards.b.Biophagus.class)); cards.add(new SetCardInfo("Biotransference", 30, Rarity.RARE, mage.cards.b.Biotransference.class));