diff --git a/Mage.Sets/src/mage/cards/b/BrionStoutarm.java b/Mage.Sets/src/mage/cards/b/BrionStoutarm.java index f4ad0f30562..5304e4540e8 100644 --- a/Mage.Sets/src/mage/cards/b/BrionStoutarm.java +++ b/Mage.Sets/src/mage/cards/b/BrionStoutarm.java @@ -3,21 +3,18 @@ package mage.cards.b; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; +import mage.abilities.dynamicvalue.common.SacrificeCostCreaturesPower; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Outcome; import mage.constants.SubType; import mage.constants.SuperType; import mage.filter.StaticFilters; -import mage.game.Game; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetPlayerOrPlaneswalker; @@ -39,8 +36,10 @@ public final class BrionStoutarm extends CardImpl { // Lifelink this.addAbility(LifelinkAbility.getInstance()); - // {R}, {tap}, Sacrifice a creature other than Brion Stoutarm: Brion Stoutarm deals damage equal to the sacrificed creature's power to target player. - Ability ability = new SimpleActivatedAbility(new BrionStoutarmEffect(), new ManaCostsImpl<>("{R}")); + // {R}, {T}, Sacrifice a creature other than Brion Stoutarm: Brion Stoutarm deals damage + // equal to the sacrificed creature's power to target player or planeswalker. + Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(SacrificeCostCreaturesPower.instance) + .setText("{this} deals damage equal to the sacrificed creature's power to target player or planeswalker"), new ManaCostsImpl<>("{R}")); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE))); ability.addTarget(new TargetPlayerOrPlaneswalker()); @@ -56,35 +55,3 @@ public final class BrionStoutarm extends CardImpl { return new BrionStoutarm(this); } } - -class BrionStoutarmEffect extends OneShotEffect { - - public BrionStoutarmEffect() { - super(Outcome.Benefit); - this.staticText = "{this} deals damage equal to the sacrificed creature's power to target player or planeswalker"; - } - - public BrionStoutarmEffect(final BrionStoutarmEffect effect) { - super(effect); - } - - @Override - public BrionStoutarmEffect copy() { - return new BrionStoutarmEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - int amount = 0; - for (Cost cost : source.getCosts()) { - if (cost instanceof SacrificeTargetCost && !((SacrificeTargetCost) cost).getPermanents().isEmpty()) { - amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getPower().getValue(); - break; - } - } - if (amount > 0) { - return new DamageTargetEffect(amount).apply(game, source); - } - return true; - } -}