diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 80007185ec7..eca33a3afec 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -1670,21 +1670,22 @@ public class Player extends GameEntity implements Comparable { // Replacement effects final Map repRunParams = AbilityKey.mapFromAffected(this); repRunParams.put(AbilityKey.Number, n); - repRunParams.put(AbilityKey.Destination, destination); - - switch (getGame().getReplacementHandler().run(ReplacementType.Mill, repRunParams)) { - case NotReplaced: - break; - case Updated: - // check if this is still the affected player - if (this.equals(repRunParams.get(AbilityKey.Affected))) { - n = (int) repRunParams.get(AbilityKey.Number); - } else { - return milled; + + if (destination == ZoneType.Graveyard && !bottom) { + switch (getGame().getReplacementHandler().run(ReplacementType.Mill, repRunParams)) { + case NotReplaced: + break; + case Updated: + // check if this is still the affected player + if (this.equals(repRunParams.get(AbilityKey.Affected))) { + n = (int) repRunParams.get(AbilityKey.Number); + } else { + return milled; + } + break; + default: + return milled; } - break; - default: - return milled; } final int max = Math.min(n, lib.size()); diff --git a/forge-game/src/main/java/forge/game/replacement/ReplaceMill.java b/forge-game/src/main/java/forge/game/replacement/ReplaceMill.java index 608081f6204..e2aa8cf2009 100644 --- a/forge-game/src/main/java/forge/game/replacement/ReplaceMill.java +++ b/forge-game/src/main/java/forge/game/replacement/ReplaceMill.java @@ -20,8 +20,6 @@ package forge.game.replacement; import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; -import forge.game.zone.ZoneType; - import java.util.Map; /** @@ -46,9 +44,6 @@ public class ReplaceMill extends ReplacementEffect { @Override public boolean canReplace(Map runParams) { - if (ZoneType.Graveyard != ((ZoneType) runParams.get(AbilityKey.Destination))) { - return false; - } if (hasParam("ValidPlayer")) { if (!matchesValid(runParams.get(AbilityKey.Affected), getParam("ValidPlayer").split(","), getHostCard())) { return false;