diff --git a/Mage.Sets/src/mage/cards/a/AquitectsWill.java b/Mage.Sets/src/mage/cards/a/AquitectsWill.java index e7a5d8e5362..2076f905aba 100644 --- a/Mage.Sets/src/mage/cards/a/AquitectsWill.java +++ b/Mage.Sets/src/mage/cards/a/AquitectsWill.java @@ -1,13 +1,15 @@ package mage.cards.a; -import java.util.List; -import java.util.Set; import mage.abilities.Ability; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.mana.BlueManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; @@ -17,12 +19,10 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetLandPermanent; +import java.util.List; +import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; -import mage.abilities.effects.ContinuousEffect; -import mage.abilities.effects.ContinuousEffectImpl; -import mage.abilities.effects.Effect; -import mage.abilities.mana.BlueManaAbility; /** * @author ilcartographer @@ -63,26 +63,21 @@ public final class AquitectsWill extends CardImpl { class AquitectsWillEffect extends ContinuousEffectImpl { AquitectsWillEffect() { - super(Duration.EndOfGame, Outcome.Benefit); + super(Duration.EndOfGame, Layer.TypeChangingEffects_4, SubLayer.NA, Outcome.Benefit); staticText = "That land is an Island in addition to its other types for as long as it has a flood counter on it"; } - AquitectsWillEffect(final AquitectsWillEffect effect) { + private AquitectsWillEffect(final AquitectsWillEffect effect) { super(effect); } - @Override - public boolean apply(Game game, Ability source) { - return false; - } - @Override public AquitectsWillEffect copy() { return new AquitectsWillEffect(this); } @Override - public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { + public boolean apply(Game game, Ability source) { Permanent land = game.getPermanent(this.targetPointer.getFirst(game, source)); if (land == null || land.getCounters(game).getCount(CounterType.FLOOD) < 1) { @@ -90,22 +85,13 @@ class AquitectsWillEffect extends ContinuousEffectImpl { return false; } // The land is an island intrinsically so the ability is added at layer 4, not layer 6 - if (land.getCounters(game).getCount(CounterType.FLOOD) > 0) { - switch (layer) { - case TypeChangingEffects_4: - land.addSubType(game, SubType.ISLAND); - land.addAbility(new BlueManaAbility(), source.getSourceId(), game); - break; - } + land.addSubType(game, SubType.ISLAND); + if (!land.getAbilities(game).containsClass(BlueManaAbility.class)) { + land.addAbility(new BlueManaAbility(), source.getSourceId(), game); } return true; } - @Override - public boolean hasLayer(Layer layer) { - return layer == Layer.TypeChangingEffects_4; - } - @Override public Set isDependentTo(List allEffectsInLayer) { return allEffectsInLayer diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AquitectsWillTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AquitectsWillTest.java index e196a295c7e..15037546e44 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AquitectsWillTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AquitectsWillTest.java @@ -18,7 +18,6 @@ public class AquitectsWillTest extends CardTestPlayerBase { private static final String recall = "Ancestral Recall"; private static final String hexmage = "Vampire Hexmage"; - @Ignore // TODO: this test currently fails, the mana option is there but can't be selected for some reason @Test public void testProduceBlueDuringCast() { addCard(Zone.BATTLEFIELD, playerA, "Island");