diff --git a/Mage.Sets/src/mage/sets/odyssey/Frightcrawler.java b/Mage.Sets/src/mage/sets/odyssey/Frightcrawler.java index c1aec8833e6..02e92754af8 100644 --- a/Mage.Sets/src/mage/sets/odyssey/Frightcrawler.java +++ b/Mage.Sets/src/mage/sets/odyssey/Frightcrawler.java @@ -65,7 +65,7 @@ public class Frightcrawler extends CardImpl { new ConditionalContinousEffect( new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), new CardsInControllerGraveCondition(7), - "

Threshold - If seven or more cards are in your graveyard, {this} gets +2/+2 " + "Threshold - If seven or more cards are in your graveyard, {this} gets +2/+2 " )); thresholdAbility.addEffect( new ConditionalContinousEffect( diff --git a/Mage.Sets/src/mage/sets/odyssey/MasterApothecary.java b/Mage.Sets/src/mage/sets/odyssey/MasterApothecary.java index 3e722f621f6..20e83cbbc0b 100644 --- a/Mage.Sets/src/mage/sets/odyssey/MasterApothecary.java +++ b/Mage.Sets/src/mage/sets/odyssey/MasterApothecary.java @@ -39,7 +39,9 @@ import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreatureOrPlayer; @@ -49,10 +51,11 @@ import mage.target.common.TargetCreatureOrPlayer; */ public class MasterApothecary extends CardImpl { - public static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Cleric"); + public static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an untapped Cleric you control"); static { filter.add(new SubtypePredicate("Cleric")); + filter.add(Predicates.not(new TappedPredicate())); } public MasterApothecary(UUID ownerId) { diff --git a/Mage.Sets/src/mage/sets/odyssey/MysticCrusader.java b/Mage.Sets/src/mage/sets/odyssey/MysticCrusader.java index b00a8cd39bb..b2a1232cf46 100644 --- a/Mage.Sets/src/mage/sets/odyssey/MysticCrusader.java +++ b/Mage.Sets/src/mage/sets/odyssey/MysticCrusader.java @@ -76,7 +76,7 @@ public class MysticCrusader extends CardImpl { // Threshold - As long as seven or more cards are in your graveyard, Mystic Crusader gets +1/+1 and has flying. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinousEffect( new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveCondition(7), "Threshold - As long as seven or more cards are in your graveyard, {this} gets +1/+1")); - ability.addEffect(new ConditionalContinousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), new CardsInControllerGraveCondition(7), " and has flying")); + ability.addEffect(new ConditionalContinousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), new CardsInControllerGraveCondition(7), "and has flying")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/odyssey/MysticPenitent.java b/Mage.Sets/src/mage/sets/odyssey/MysticPenitent.java index fd70c9d4764..585cf97edcf 100644 --- a/Mage.Sets/src/mage/sets/odyssey/MysticPenitent.java +++ b/Mage.Sets/src/mage/sets/odyssey/MysticPenitent.java @@ -65,7 +65,7 @@ public class MysticPenitent extends CardImpl { // Threshold - As long as seven or more cards are in your graveyard, Mystic Penitent gets +1/+1 and has flying. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinousEffect( new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveCondition(7), "Threshold - As long as seven or more cards are in your graveyard, {this} gets +1/+1")); - ability.addEffect(new ConditionalContinousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), new CardsInControllerGraveCondition(7), " and has flying")); + ability.addEffect(new ConditionalContinousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), new CardsInControllerGraveCondition(7), "and has flying")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/odyssey/MysticZealot.java b/Mage.Sets/src/mage/sets/odyssey/MysticZealot.java index 232eca609a7..7feaf251674 100644 --- a/Mage.Sets/src/mage/sets/odyssey/MysticZealot.java +++ b/Mage.Sets/src/mage/sets/odyssey/MysticZealot.java @@ -62,7 +62,7 @@ public class MysticZealot extends CardImpl { // Threshold - As long as seven or more cards are in your graveyard, Mystic Zealot gets +1/+1 and has flying. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinousEffect( new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new CardsInControllerGraveCondition(7), "Threshold - As long as seven or more cards are in your graveyard, {this} gets +1/+1")); - ability.addEffect(new ConditionalContinousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), new CardsInControllerGraveCondition(7), " and has flying")); + ability.addEffect(new ConditionalContinousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance()), new CardsInControllerGraveCondition(7), "and has flying")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/odyssey/PatrolHound.java b/Mage.Sets/src/mage/sets/odyssey/PatrolHound.java index 78ce2045cee..9416604873e 100644 --- a/Mage.Sets/src/mage/sets/odyssey/PatrolHound.java +++ b/Mage.Sets/src/mage/sets/odyssey/PatrolHound.java @@ -35,6 +35,7 @@ import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.constants.CardType; +import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; @@ -54,7 +55,7 @@ public class PatrolHound extends CardImpl { this.toughness = new MageInt(2); // Discard a card: Patrol Hound gains first strike until end of turn. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance()), new DiscardCardCost())); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new DiscardCardCost())); } public PatrolHound(final PatrolHound card) { diff --git a/Mage/src/mage/abilities/costs/common/TapTargetCost.java b/Mage/src/mage/abilities/costs/common/TapTargetCost.java index 8e95d2ea609..cacccb89a32 100644 --- a/Mage/src/mage/abilities/costs/common/TapTargetCost.java +++ b/Mage/src/mage/abilities/costs/common/TapTargetCost.java @@ -48,7 +48,11 @@ public class TapTargetCost extends CostImpl { public TapTargetCost(TargetControlledPermanent target) { this.target = target; - this.text = "Tap " + target.getMaxNumberOfTargets() + " " + target.getTargetName(); + this.text = + new StringBuilder("Tap ") + .append(target.getTargetName().startsWith("a ") || target.getTargetName().startsWith("an ") ? "":target.getMaxNumberOfTargets()) + .append(" ") + .append(target.getTargetName()).toString(); } public TapTargetCost(final TapTargetCost cost) { @@ -61,8 +65,9 @@ public class TapTargetCost extends CostImpl { if (target.choose(Outcome.Tap, controllerId, sourceId, game)) { for (UUID targetId: (List)target.getTargets()) { Permanent permanent = game.getPermanent(targetId); - if (permanent == null) + if (permanent == null) { return false; + } paid |= permanent.tap(game); } }