diff --git a/Mage.Sets/src/mage/cards/a/AethericAmplifier.java b/Mage.Sets/src/mage/cards/a/AethericAmplifier.java index 48737ded8e9..e27b7a83f98 100644 --- a/Mage.Sets/src/mage/cards/a/AethericAmplifier.java +++ b/Mage.Sets/src/mage/cards/a/AethericAmplifier.java @@ -1,12 +1,8 @@ package mage.cards.a; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - import mage.abilities.Ability; import mage.abilities.Mode; -import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; @@ -15,6 +11,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.TimingRule; import mage.counters.Counter; import mage.counters.CounterType; import mage.game.Game; @@ -22,6 +19,10 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + /** * @author sobiech */ @@ -35,8 +36,9 @@ public final class AethericAmplifier extends CardImpl { // {4}, {T}: Choose one. Activate only as a sorcery. // * Double the number of each kind of counter on target permanent. - final Ability ability = new ActivateAsSorceryActivatedAbility(new AethericAmplifierDoublePermanentEffect(), new GenericManaCost(4)) - .withShowActivateText(false); + Ability ability = new SimpleActivatedAbility( + new AethericAmplifierDoublePermanentEffect(), new GenericManaCost(4) + ).setTiming(TimingRule.SORCERY); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetPermanent()); ability.getModes().setChooseText("choose one. Activate only as a sorcery."); @@ -145,5 +147,3 @@ class AethericAmplifierDoubleControllerEffect extends OneShotEffect { return new AethericAmplifierDoubleControllerEffect(this); } } - - diff --git a/Mage.Sets/src/mage/cards/m/MoxiteRefinery.java b/Mage.Sets/src/mage/cards/m/MoxiteRefinery.java new file mode 100644 index 00000000000..d7d37d064d3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MoxiteRefinery.java @@ -0,0 +1,57 @@ +package mage.cards.m; + +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveVariableCountersTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.GetXValue; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TimingRule; +import mage.counters.CounterType; +import mage.filter.StaticFilters; +import mage.target.common.TargetArtifactPermanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class MoxiteRefinery extends CardImpl { + + public MoxiteRefinery(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); + + // {2}, {T}, Remove X counters from an artifact or creature you control: Choose one. Activate only as a sorcery. + // * Put X charge counters on target artifact. + Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect( + CounterType.CHARGE.createInstance(), GetXValue.instance + ), new GenericManaCost(2)).setTiming(TimingRule.SORCERY); + ability.addCost(new TapSourceCost()); + ability.addCost(new RemoveVariableCountersTargetCost( + StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_OR_CREATURE, CounterType.CHARGE + )); + ability.addTarget(new TargetArtifactPermanent()); + ability.getModes().setChooseText("choose one. Activate only as a sorcery."); + + // * Put X +1/+1 counters on target creature. + ability.addMode(new Mode(new AddCountersTargetEffect( + CounterType.P1P1.createInstance(), GetXValue.instance + )).addTarget(new TargetCreaturePermanent())); + this.addAbility(ability); + } + + private MoxiteRefinery(final MoxiteRefinery card) { + super(card); + } + + @Override + public MoxiteRefinery copy() { + return new MoxiteRefinery(this); + } +} diff --git a/Mage.Sets/src/mage/sets/EdgeOfEternitiesCommander.java b/Mage.Sets/src/mage/sets/EdgeOfEternitiesCommander.java index 98840348f57..1cc4140cbb0 100644 --- a/Mage.Sets/src/mage/sets/EdgeOfEternitiesCommander.java +++ b/Mage.Sets/src/mage/sets/EdgeOfEternitiesCommander.java @@ -116,6 +116,8 @@ public final class EdgeOfEternitiesCommander extends ExpansionSet { cards.add(new SetCardInfo("Mindless Automaton", 142, Rarity.UNCOMMON, mage.cards.m.MindlessAutomaton.class)); cards.add(new SetCardInfo("Moraug, Fury of Akoum", 89, Rarity.MYTHIC, mage.cards.m.MoraugFuryOfAkoum.class)); cards.add(new SetCardInfo("Mountain Valley", 61, Rarity.UNCOMMON, mage.cards.m.MountainValley.class)); + cards.add(new SetCardInfo("Moxite Refinery", 17, Rarity.RARE, mage.cards.m.MoxiteRefinery.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Moxite Refinery", 37, Rarity.RARE, mage.cards.m.MoxiteRefinery.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Multani, Yavimaya's Avatar", 100, Rarity.MYTHIC, mage.cards.m.MultaniYavimayasAvatar.class)); cards.add(new SetCardInfo("Myriad Landscape", 169, Rarity.UNCOMMON, mage.cards.m.MyriadLandscape.class)); cards.add(new SetCardInfo("Mystic Monastery", 170, Rarity.UNCOMMON, mage.cards.m.MysticMonastery.class)); diff --git a/Mage/src/main/java/mage/abilities/common/ActivateAsSorceryActivatedAbility.java b/Mage/src/main/java/mage/abilities/common/ActivateAsSorceryActivatedAbility.java index 4eb998547f3..e53490ee343 100644 --- a/Mage/src/main/java/mage/abilities/common/ActivateAsSorceryActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/ActivateAsSorceryActivatedAbility.java @@ -9,8 +9,6 @@ import mage.constants.Zone; public class ActivateAsSorceryActivatedAbility extends ActivatedAbilityImpl { - private boolean showActivateText = true; - public ActivateAsSorceryActivatedAbility(Effect effect, Cost cost) { this(Zone.BATTLEFIELD, effect, cost); } @@ -22,7 +20,6 @@ public class ActivateAsSorceryActivatedAbility extends ActivatedAbilityImpl { protected ActivateAsSorceryActivatedAbility(final ActivateAsSorceryActivatedAbility ability) { super(ability); - this.showActivateText = ability.showActivateText; } @Override @@ -30,18 +27,9 @@ public class ActivateAsSorceryActivatedAbility extends ActivatedAbilityImpl { return new ActivateAsSorceryActivatedAbility(this); } - public ActivateAsSorceryActivatedAbility withShowActivateText(boolean showActivateText) { - this.showActivateText = showActivateText; - return this; - } - @Override public String getRule() { String superRule = super.getRule(); - if (!showActivateText) { - return superRule; - } - String newText = (mayActivate == TargetController.OPPONENT ? " Only your opponents may activate this ability and only as a sorcery." : " Activate only as a sorcery.");