diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/ArdentRecruit.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/ArdentRecruit.java index 79814294230..fb84d002c3c 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/ArdentRecruit.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/ArdentRecruit.java @@ -35,20 +35,20 @@ import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MetalcraftCondition; import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.cards.CardImpl; +import mage.constants.AbilityWord; /** * @author Loki */ public class ArdentRecruit extends CardImpl { - private final String myText = "Metalcraft - Ardent Recruit gets +2/+2 as long as you control three or more artifacts"; - public ArdentRecruit(UUID ownerId) { super(ownerId, 2, "Ardent Recruit", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}"); this.expansionSetCode = "MBS"; @@ -58,8 +58,10 @@ public class ArdentRecruit extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); ContinuousEffect boostSource = new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield); - ConditionalContinousEffect effect = new ConditionalContinousEffect(boostSource, MetalcraftCondition.getInstance(), myText); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + ConditionalContinousEffect effect = new ConditionalContinousEffect(boostSource, MetalcraftCondition.getInstance(), "Ardent Recruit gets +2/+2 as long as you control three or more artifacts"); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); + ability.setAbilityWord(AbilityWord.METALCRAFT); + this.addAbility(ability); } public ArdentRecruit(final ArdentRecruit card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenPsyche.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenPsyche.java index 4546dd0b2b5..f39af0971f2 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenPsyche.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MoltenPsyche.java @@ -73,8 +73,8 @@ class MoltenPsycheEffect extends OneShotEffect { public MoltenPsycheEffect() { super(Outcome.Neutral); - staticText = "Each player shuffles the cards from his or her hand into his or her library, then draws that many cards.\\n" + - "Metalcraft - If you control three or more artifacts, {this} deals damage to each opponent equal to the number of cards that player has drawn this turn."; + staticText = "Each player shuffles the cards from his or her hand into his or her library, then draws that many cards.\n" + + "Metalcraft - If you control three or more artifacts, {this} deals damage to each opponent equal to the number of cards that player has drawn this turn."; } public MoltenPsycheEffect(final MoltenPsycheEffect effect) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/VedalkenCertarch.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/VedalkenCertarch.java index 2c0d06fa2ff..f02712d7e57 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/VedalkenCertarch.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/VedalkenCertarch.java @@ -34,10 +34,12 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.MetalcraftActivatedAbility; +import mage.abilities.common.ActivateIfConditionActivatedAbility; +import mage.abilities.condition.common.MetalcraftCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; +import mage.constants.AbilityWord; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -68,8 +70,9 @@ public class VedalkenCertarch extends CardImpl { this.toughness = new MageInt(1); // Metalcraft - {T}: Tap target artifact, creature, or land. Activate this ability only if you control three or more artifacts. - Ability ability = new MetalcraftActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new TapSourceCost()); - ability.addTarget(new TargetPermanent(filter)); + Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new TapSourceCost(), MetalcraftCondition.getInstance()); + ability.setAbilityWord(AbilityWord.METALCRAFT); + ability.addTarget(new TargetPermanent(filter, true)); this.addAbility(ability); } diff --git a/Mage/src/mage/abilities/common/ActivateIfConditionActivatedAbility.java b/Mage/src/mage/abilities/common/ActivateIfConditionActivatedAbility.java index 86f8c599b4f..2eace80c586 100644 --- a/Mage/src/mage/abilities/common/ActivateIfConditionActivatedAbility.java +++ b/Mage/src/mage/abilities/common/ActivateIfConditionActivatedAbility.java @@ -43,7 +43,7 @@ import mage.game.Game; */ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { - private Condition condition; + private final Condition condition; public ActivateIfConditionActivatedAbility(Zone zone, Effect effect, Cost cost, Condition condition) { super(zone, effect, cost); diff --git a/Mage/src/mage/abilities/common/MetalcraftActivatedAbility.java b/Mage/src/mage/abilities/common/MetalcraftActivatedAbility.java deleted file mode 100644 index e9c546be198..00000000000 --- a/Mage/src/mage/abilities/common/MetalcraftActivatedAbility.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ - -package mage.abilities.common; - -import mage.constants.Zone; -import mage.abilities.ActivatedAbilityImpl; -import mage.abilities.costs.Cost; -import mage.abilities.costs.Costs; -import mage.abilities.costs.common.MetalcraftCost; -import mage.abilities.costs.mana.ManaCosts; -import mage.abilities.effects.Effect; - -/** - * - * @author BetaSteward_at_googlemail.com - */ -public class MetalcraftActivatedAbility extends ActivatedAbilityImpl { - - public MetalcraftActivatedAbility(Zone zone, Effect effect, ManaCosts cost) { - super(zone, effect, cost); - this.costs.add(new MetalcraftCost()); - } - - public MetalcraftActivatedAbility(Zone zone, Effect effect, Costs costs) { - super(zone, effect, costs); - this.costs.add(new MetalcraftCost()); - } - - public MetalcraftActivatedAbility(Zone zone, Effect effect, Cost cost) { - super(zone, effect, cost); - this.costs.add(new MetalcraftCost()); - } - - public MetalcraftActivatedAbility(MetalcraftActivatedAbility ability) { - super(ability); - } - - @Override - public MetalcraftActivatedAbility copy() { - return new MetalcraftActivatedAbility(this); - } - - @Override - public String getRule() { - return "Metalcraft - " + super.getRule(); - } - -} diff --git a/Mage/src/mage/abilities/condition/common/MetalcraftCondition.java b/Mage/src/mage/abilities/condition/common/MetalcraftCondition.java index 5d25319a7f1..57be4bdaf4c 100644 --- a/Mage/src/mage/abilities/condition/common/MetalcraftCondition.java +++ b/Mage/src/mage/abilities/condition/common/MetalcraftCondition.java @@ -20,7 +20,7 @@ public class MetalcraftCondition implements Condition { filter.add(new CardTypePredicate(CardType.ARTIFACT)); } - private static MetalcraftCondition fInstance = new MetalcraftCondition(); + private static final MetalcraftCondition fInstance = new MetalcraftCondition(); public static Condition getInstance() { return fInstance; @@ -30,4 +30,10 @@ public class MetalcraftCondition implements Condition { public boolean apply(Game game, Ability source) { return game.getBattlefield().contains(filter, source.getControllerId(), 3, game); } + + @Override + public String toString() { + return "you control three or more artifacts"; + } + }