From 3ee1a0e53c21f9a02e9df8683881ed063ff227d5 Mon Sep 17 00:00:00 2001 From: Daniel Bomar Date: Thu, 3 Nov 2022 18:10:44 -0500 Subject: [PATCH] [BRO] Implemented Sardian Cliffstomper --- .../src/mage/cards/s/SardianCliffstomper.java | 70 +++++++++++++++++++ Mage.Sets/src/mage/sets/TheBrothersWar.java | 1 + 2 files changed, 71 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SardianCliffstomper.java diff --git a/Mage.Sets/src/mage/cards/s/SardianCliffstomper.java b/Mage.Sets/src/mage/cards/s/SardianCliffstomper.java new file mode 100644 index 0000000000..454204051e --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SardianCliffstomper.java @@ -0,0 +1,70 @@ +package mage.cards.s; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.game.Game; + +/** + * + * @author weirddan455 + */ +public final class SardianCliffstomper extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.MOUNTAIN); + private static final PermanentsOnBattlefieldCount count = new PermanentsOnBattlefieldCount(filter); + private static final SardianCliffstomperCondition condition = new SardianCliffstomperCondition(filter); + + public SardianCliffstomper(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add(SubType.MINOTAUR); + this.subtype.add(SubType.BARBARIAN); + this.power = new MageInt(0); + this.toughness = new MageInt(4); + + // As long as it's your turn and you control four or more Mountains, Sardian Cliffstomper gets +X/+0, where X is the number of Mountains you control. + this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( + new BoostSourceEffect(count, StaticValue.get(0), Duration.WhileOnBattlefield), + condition, + "As long as it's your turn and you control four or more Mountains, {this} gets +X/+0, where X is the number of Mountains you control." + ))); + } + + private SardianCliffstomper(final SardianCliffstomper card) { + super(card); + } + + @Override + public SardianCliffstomper copy() { + return new SardianCliffstomper(this); + } +} + +class SardianCliffstomperCondition implements Condition { + + private final FilterPermanent filter; + + public SardianCliffstomperCondition(FilterPermanent filter) { + this.filter = filter; + } + + @Override + public boolean apply(Game game, Ability source) { + return game.isActivePlayer(source.getControllerId()) && + game.getBattlefield().count(filter, source.getControllerId(), source, game) >= 4; + } +} diff --git a/Mage.Sets/src/mage/sets/TheBrothersWar.java b/Mage.Sets/src/mage/sets/TheBrothersWar.java index 7bf6ae500f..c43e10c2ed 100644 --- a/Mage.Sets/src/mage/sets/TheBrothersWar.java +++ b/Mage.Sets/src/mage/sets/TheBrothersWar.java @@ -126,6 +126,7 @@ public final class TheBrothersWar extends ExpansionSet { cards.add(new SetCardInfo("Reconstructed Thopter", 242, Rarity.UNCOMMON, mage.cards.r.ReconstructedThopter.class)); cards.add(new SetCardInfo("Recruitment Officer", 23, Rarity.UNCOMMON, mage.cards.r.RecruitmentOfficer.class)); cards.add(new SetCardInfo("Rust Goliath", 204, Rarity.COMMON, mage.cards.r.RustGoliath.class)); + cards.add(new SetCardInfo("Sardian Cliffstomper", 151, Rarity.UNCOMMON, mage.cards.s.SardianCliffstomper.class)); cards.add(new SetCardInfo("Scrapwork Cohort", 37, Rarity.COMMON, mage.cards.s.ScrapworkCohort.class)); cards.add(new SetCardInfo("Sibling Rivalry", 152, Rarity.COMMON, mage.cards.s.SiblingRivalry.class)); cards.add(new SetCardInfo("Siege Veteran", 25, Rarity.RARE, mage.cards.s.SiegeVeteran.class));