diff --git a/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java b/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java index bc97bb8c73b..2baf093c3e7 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java @@ -1,4 +1,3 @@ - package mage.cards.a; import java.util.UUID; @@ -31,13 +30,14 @@ public final class ArcaneTeachings extends CardImpl { TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); - Ability ability = new EnchantAbility(auraTarget); - this.addAbility(ability); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield))); + this.addAbility(new EnchantAbility(auraTarget)); + + Ability staticAbility = new SimpleStaticAbility(new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)); Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost()); gainedAbility.addTarget(new TargetAnyTarget()); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA) - .setText("and has \"" + gainedAbility.getRule("This creature") + '\"'))); + staticAbility.addEffect(new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA) + .setText("and has \"" + gainedAbility.getRule("This creature") + '\"')); + this.addAbility(staticAbility); } private ArcaneTeachings(final ArcaneTeachings card) { diff --git a/Mage.Sets/src/mage/cards/b/BillFernyBreeSwindler.java b/Mage.Sets/src/mage/cards/b/BillFernyBreeSwindler.java index 1b9dbbea771..313560e5825 100644 --- a/Mage.Sets/src/mage/cards/b/BillFernyBreeSwindler.java +++ b/Mage.Sets/src/mage/cards/b/BillFernyBreeSwindler.java @@ -3,7 +3,7 @@ package mage.cards.b; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; -import mage.abilities.common.BecomesBlockedAllTriggeredAbility; +import mage.abilities.common.BecomesBlockedSourceTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; @@ -38,7 +38,7 @@ public final class BillFernyBreeSwindler extends CardImpl { this.toughness = new MageInt(1); // Whenever Bill Ferny, Bree Swindler becomes blocked, choose one -- - Ability ability = new BecomesBlockedAllTriggeredAbility( + Ability ability = new BecomesBlockedSourceTriggeredAbility( // * Create a Treasure token. new CreateTokenEffect(new TreasureToken()), false ); @@ -100,4 +100,4 @@ class BillFernyEffect extends OneShotEffect { } return false; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/e/ElvishChampion.java b/Mage.Sets/src/mage/cards/e/ElvishChampion.java index cec3d104990..ead11db6478 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishChampion.java +++ b/Mage.Sets/src/mage/cards/e/ElvishChampion.java @@ -3,6 +3,7 @@ package mage.cards.e; import java.util.UUID; import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -12,7 +13,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; /** @@ -34,9 +34,10 @@ public final class ElvishChampion extends CardImpl { this.toughness = new MageInt(2); // Other Elf creatures get +1/+1 and have forestwalk. (They can't be blocked as long as defending player controls a Forest.) - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new ForestwalkAbility(), Duration.WhileOnBattlefield, filter, true) - .setText("and have forestwalk"))); + Ability ability = new SimpleStaticAbility(new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true)); + ability.addEffect(new GainAbilityAllEffect(new ForestwalkAbility(), Duration.WhileOnBattlefield, filter, true) + .setText("and have forestwalk")); + this.addAbility(ability); } private ElvishChampion(final ElvishChampion card) { diff --git a/Mage.Sets/src/mage/cards/f/FieldMarshal.java b/Mage.Sets/src/mage/cards/f/FieldMarshal.java index 5452a90313b..3c61d0a8b53 100644 --- a/Mage.Sets/src/mage/cards/f/FieldMarshal.java +++ b/Mage.Sets/src/mage/cards/f/FieldMarshal.java @@ -1,8 +1,8 @@ - package mage.cards.f; import java.util.UUID; import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostAllEffect; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; @@ -12,7 +12,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; /** @@ -33,9 +32,10 @@ public final class FieldMarshal extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, true) - .setText("and have first strike"))); + Ability ability = new SimpleStaticAbility(new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true)); + ability.addEffect(new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, true) + .setText("and have first strike")); + this.addAbility(ability); } private FieldMarshal(final FieldMarshal card) { diff --git a/Mage.Sets/src/mage/cards/g/GlorfindelDauntlessRescuer.java b/Mage.Sets/src/mage/cards/g/GlorfindelDauntlessRescuer.java index 2bba9f134dc..70edc2ea630 100644 --- a/Mage.Sets/src/mage/cards/g/GlorfindelDauntlessRescuer.java +++ b/Mage.Sets/src/mage/cards/g/GlorfindelDauntlessRescuer.java @@ -42,7 +42,7 @@ public final class GlorfindelDauntlessRescuer extends CardImpl { Mode mode = new Mode( new BoostSourceEffect(1, 1, Duration.EndOfTurn).setText("") ); - mode.addEffect(new CantBeBlockedByMoreThanOneSourceEffect()); + mode.addEffect(new CantBeBlockedByMoreThanOneSourceEffect(1, Duration.EndOfTurn)); ability.addMode(mode); ability.getModes().setChooseText("choose one and {this} gets +1/+1 until end of turn."); diff --git a/Mage.Sets/src/mage/cards/m/MoggSquad.java b/Mage.Sets/src/mage/cards/m/MoggSquad.java index 5b96398b974..188a1176870 100644 --- a/Mage.Sets/src/mage/cards/m/MoggSquad.java +++ b/Mage.Sets/src/mage/cards/m/MoggSquad.java @@ -24,7 +24,7 @@ import mage.filter.predicate.mageobject.AnotherPredicate; */ public final class MoggSquad extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each other creature on the battlefield"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creature on the battlefield"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage/src/main/java/mage/abilities/common/CastOnlyIfConditionIsTrueEffect.java b/Mage/src/main/java/mage/abilities/common/CastOnlyIfConditionIsTrueEffect.java index 1b280f1493c..f98d5435a90 100644 --- a/Mage/src/main/java/mage/abilities/common/CastOnlyIfConditionIsTrueEffect.java +++ b/Mage/src/main/java/mage/abilities/common/CastOnlyIfConditionIsTrueEffect.java @@ -49,7 +49,7 @@ public class CastOnlyIfConditionIsTrueEffect extends ContinuousRuleModifyingEffe } private String setText() { - StringBuilder sb = new StringBuilder("cast this spell only "); + StringBuilder sb = new StringBuilder("cast this spell only if "); if (condition != null) { sb.append(condition); } diff --git a/Mage/src/main/java/mage/abilities/condition/common/ControlsPermanentsComparedToOpponentsCondition.java b/Mage/src/main/java/mage/abilities/condition/common/ControlsPermanentsComparedToOpponentsCondition.java index 5a9e308f3b3..0c7a360f897 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/ControlsPermanentsComparedToOpponentsCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/ControlsPermanentsComparedToOpponentsCondition.java @@ -40,12 +40,9 @@ public class ControlsPermanentsComparedToOpponentsCondition implements Condition @Override public String toString() { switch (type) { - case EQUAL_TO: return String.format("equal %s to each opponent", filterPermanent.getMessage()); - case FEWER_THAN: return String.format("fewer %s than each opponent", filterPermanent.getMessage()); - case MORE_THAN: return String.format("more %s than each opponent", filterPermanent.getMessage()); - case OR_LESS: return String.format("fewer or equal %s than each opponent", filterPermanent.getMessage()); - case OR_GREATER: return String.format("more or equal %s than each opponent", filterPermanent.getMessage()); - default: throw new IllegalArgumentException("comparison rules for " + type + " missing"); + case FEWER_THAN: return String.format("you control fewer %s than each opponent", filterPermanent.getMessage()); + case MORE_THAN: return String.format("you control more %s than each opponent", filterPermanent.getMessage()); + default: return ""; } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/CantBeBlockedByMoreThanOneSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/CantBeBlockedByMoreThanOneSourceEffect.java index 737511b0e8a..cb6a7545126 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/CantBeBlockedByMoreThanOneSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/CantBeBlockedByMoreThanOneSourceEffect.java @@ -32,7 +32,8 @@ public class CantBeBlockedByMoreThanOneSourceEffect extends ContinuousEffectImpl public CantBeBlockedByMoreThanOneSourceEffect(int amount, Duration duration) { super(duration, Outcome.Benefit); this.amount = amount; - staticText = "{this} can't be blocked by more than " + CardUtil.numberToText(amount) + " creature" + (amount > 1 ? "s" : ""); + staticText = "{this} can't be blocked by more than " + CardUtil.numberToText(amount) + " creature" + (amount > 1 ? "s" : "") + + (duration == Duration.EndOfTurn ? " each combat this turn" : ""); } public CantBeBlockedByMoreThanOneSourceEffect(final CantBeBlockedByMoreThanOneSourceEffect effect) { @@ -49,10 +50,8 @@ public class CantBeBlockedByMoreThanOneSourceEffect extends ContinuousEffectImpl public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent perm = game.getPermanent(source.getSourceId()); if (perm != null) { - switch (layer) { - case RulesEffects: - perm.setMaxBlockedBy(amount); - break; + if (layer == Layer.RulesEffects) { + perm.setMaxBlockedBy(amount); } return true; }