diff --git a/Mage/src/mage/abilities/effects/ContinuousEffects.java b/Mage/src/mage/abilities/effects/ContinuousEffects.java index 11c7cbce8e1..b08a3fa92a0 100644 --- a/Mage/src/mage/abilities/effects/ContinuousEffects.java +++ b/Mage/src/mage/abilities/effects/ContinuousEffects.java @@ -156,7 +156,8 @@ public class ContinuousEffects implements Serializable { case WhileInGraveyard: HashSet abilities = layeredEffects.getAbility(effect.getId()); for (Ability ability: abilities) { - if (ability.isInUseableZone(game, null, false)) { + // If e.g. triggerd abilities (non static) created the effect, the ability must not be in usable zone (e.g. Unearth giving Haste effect) + if (!(ability instanceof StaticAbility) || ability.isInUseableZone(game, null, false)) { layerEffects.add(effect); break; } diff --git a/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java b/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java index 4611df4260f..353aeba46ae 100644 --- a/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java @@ -75,7 +75,7 @@ public class SacrificeTargetEffect extends OneShotEffect @Override public String getText(Mode mode) { - if ("".equals(staticText) && !mode.getTargets().isEmpty()) { + if (staticText.isEmpty() && !mode.getTargets().isEmpty()) { if (mode.getTargets().get(0).getNumberOfTargets() == 1) { return "The controller of target " + mode.getTargets().get(0).getTargetName() + " sacrifices it"; } else { diff --git a/Mage/src/mage/abilities/effects/common/continious/GainAbilitySourceEffect.java b/Mage/src/mage/abilities/effects/common/continious/GainAbilitySourceEffect.java index a18465d7c56..978705f07ee 100644 --- a/Mage/src/mage/abilities/effects/common/continious/GainAbilitySourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/GainAbilitySourceEffect.java @@ -28,12 +28,12 @@ package mage.abilities.effects.common.continious; +import mage.abilities.Ability; +import mage.abilities.effects.ContinuousEffectImpl; import mage.constants.Duration; import mage.constants.Layer; import mage.constants.Outcome; import mage.constants.SubLayer; -import mage.abilities.Ability; -import mage.abilities.effects.ContinuousEffectImpl; import mage.game.Game; import mage.game.permanent.Permanent; @@ -73,7 +73,7 @@ public class GainAbilitySourceEffect extends ContinuousEffectImpl { - protected boolean unearthed; - public UnearthAbility(ManaCosts costs) { super(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), costs); this.timing = TimingRule.SORCERY; @@ -64,7 +72,6 @@ public class UnearthAbility extends ActivatedAbilityImpl { public UnearthAbility(final UnearthAbility ability) { super(ability); - this.unearthed = ability.unearthed; } @Override @@ -72,13 +79,12 @@ public class UnearthAbility extends ActivatedAbilityImpl { return new UnearthAbility(this); } - public boolean isUnearthed() { - return unearthed; - } - @Override public String getRule() { - return "Unearth " + super.getRule(); + StringBuilder sb = new StringBuilder("Unearth ").append(this.getManaCosts().getText()); + sb.append(" (").append(this.getManaCosts().getText()); + sb.append(": Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)"); + return sb.toString(); } } @@ -133,8 +139,9 @@ class UnearthLeavesBattlefieldEffect extends ReplacementEffectImpl